삼자기 게임 C 언어 시뮬레이션 실현

3457 단어 플레이C 언어
game.h
#ifndef __ADD_H__
#define __ADD_H__

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>



void game();
void com_move(char a[3][3]);
void play_move(char a[3][3]);
void init(char a[3][3]);
void print(char a[3][3]);
char check_win(char a[3][3]);
int is_full(char a[3][3]);//        

#endif //__ADD_H__




test.c
#define _CRT_SECURE_NO_WARNINGS 1

#include "game.h"

void menu()
{
	printf("**********************************
"); printf("****** 1.game 2.exit *******
"); printf("**********************************
"); } void test() { int input = 0; srand((unsigned int)time(NULL)); while(1) { menu(); scanf("%d",&input); switch(input) { case 1: game(); break; case 2: exit(1); break; default: printf("
"); break; } } } int main() { test(); return 0; }

game.c
#define _CRT_SECURE_NO_WARNINGS 1


#include "game.h"




//     ,      
void init(char a[3][3])
{
	
	int i = 0;
	int j = 0;
	
	//memset(a,' ',row*col*sizeof(char))		<string.h>
	//           ,  ,  
	for(i = 0;i < 3;i++)
	{
		for(j=0;j<3;j++)
		{
			a[i][j]=' ';
		}
	}
}


//    
void print(char a[3][3])
{
	int i = 0;
	for(i = 0;i<3;i++)
	{
			printf(" %c | %c | %c 
",a[i][0],a[i][1],a[i][2]); if ( 2!=i) printf("-----------
"); } printf("
"); } void player_move(char a[3][3]) { int x = 0; int y = 0; while(1) { printf(" :
"); scanf("%d%d",&x,&y); if(x>=0&&x<=2&&y>=0&&y<=2) { if(' '==a[x][y]) { a[x][y]='x'; break; } else { printf("
"); } } else printf("
"); } } void com_move(char a[3][3]) { int x = 0; int y = 0; while(1) { x = rand()%3; y = rand()%3; if(' '==a[x][y]) { a[x][y] = '0'; break; } } } char check_win(char a[3][3]) { int i = 0; for(i=0;i<3;i++) { if ((a[i][0]==a[i][1])&&(a[i][1]==a[i][2])&&(a[i][0]!=' ')) // return a[i][0]; if ((a[0][i]==a[1][i])&&(a[1][i]==a[2][i])&&(a[0][i]!=' ')) // return a[0][i]; if ((a[0][0]==a[1][1])&&(a[1][1]==a[2][2])&&(a[0][0]!=' ')) return a[0][0]; if ((a[0][2]==a[1][1])&&(a[1][1]==a[2][0])&&(a[1][1]!=' ')) return a[1][1]; } if(is_full(a)==1) { return 'q';// q } return 'r';// } int is_full(char a[3][3]) { int i =0; int j = 0; for(i = 0; i<3;i++) { for(j=0;j<3;j++) { if(a[i][j]==' ') { return 0;// 0 } } } return 1;// 1 } void game() { char a[3][3] = {0}; char win = 0; init(a); print(a); do { // player_move(a); print(a); win = check_win(a); if(win != 'r' ) { break; } // com_move(a); print(a); win = check_win(a); // win ' ' if(win != 'r') { break; } }while(1); if(win == '0') printf("
"); else if(win == 'x') printf("
"); else if(win == 'q') printf("
"); }

좋은 웹페이지 즐겨찾기