<span style="font-size:18px;">#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define ROWS 3
#define COLS 3
void game();
void put_photo(char arr[ROWS][COLS],int row,int col);
void player_go(char arr[ROWS][COLS],int row,int col);
void computer_go(char arr[ROWS][COLS],int row,int col);
char chcek_win(char arr[ROWS][COLS],int row,int col);
int is_full(char arr[ROWS][COLS],int row,int col);</span>
#include "game.h"
void put_photo(char arr[ROWS][COLS],int row,int col)
{
int i = 0;
printf("_ _ _ _ _ _ \n");
for(i = 0;i < row; i++ )
{
printf("_%c_|_%c_|_%c_",arr[i][0],arr[i][1],arr[i][2]);
printf("\n");
}
}
void player_go(char arr[ROWS][COLS],int row,int col)
{
int x = 0;
int y = 0;
while(1)
{
printf("请输入行和列:\n");
scanf("%d%d",&x,&y);
x--;
y--;
if(( x>=0 )&&( x<row )&&( y>=0 )&&( y<row ))
{
if (arr[x][y]==' ')
{
arr[x][y]='X';
break;
}
else
printf("非法输入,请重新输入:\n");
}
else
{
printf("输入错误,请重新输入:\n");
}
}
}
void computer_go(char arr[ROWS][COLS],int row,int col)
{
while(1)
{
int x = rand()%3;
int y = rand()%3;
if(arr[x][y]==' ')
{
arr[x][y]='0';
break;
}
}
}
char chcek_win(char arr[ROWS][COLS],int row,int col)
{
int i = 0;
int j = 0;
for(i=0; i<row; i++)
{
if((arr[i][0] == arr[i][1]) && (arr[i][1] == arr[i][2]) && (arr[i][2] !=' '))
return arr[i][0];
}
for(i=0; i<col; i++)
{
if((arr[0][i] == arr[1][i]) && (arr[1][i] == arr[2][i]) && (arr[2][i] != ' '))
return arr[0][i];
}
if((arr[0][0] == arr[1][1]) && (arr[1][1] == arr[2][2]) && (arr[2][2] != ' '))
return arr[0][0];
if((arr[0][2] == arr[1][1]) && (arr[1][1] == arr[2][0]) && (arr[2][0] != ' '))
return arr[0][2];
if(is_full(arr,row,col) == 1)
return 'q';
return ' ';
}
int is_full(char arr[ROWS][COLS],int row,int col)
{
int x = 0;
int y = 0;
for(x=0;x<row;x++)
{
for(y=0;y<row;y++)
{
if(arr[x][y]==' ')
return 0;
}
}
return 1;
}
<span style="font-size:18px;">#include "game.h"
void menu()
{
printf("--------------------\n");
printf("| 1.play game |\n");
printf("| 2.exist game |\n");
printf("--------------------\n");
}
int main()
{
int input = 0;
do
{
menu();
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 2:
printf("退出游戏中\n");
break;
default:
printf("输出错误,请重新输入\n");
}
} while (input);
system("pause");
return 0;
}
void game()
{
char board[ROWS][COLS];
char ret = 0;
memset(board , ' ' , ROWS*COLS*sizeof(char));
srand((unsigned int )time(NULL));
put_photo(board,ROWS,COLS);
while(1)
{
player_go(board,ROWS,COLS);
put_photo(board,ROWS,COLS);
if((ret=chcek_win(board,ROWS,COLS)) != ' ')
break;
printf("\n");
computer_go(board,ROWS,COLS);
put_photo(board,ROWS,COLS);
if((ret=chcek_win(board,ROWS,COLS)) != ' ')
break;
/*put_photo(board,ROWS,COLS);*/
}
if(ret == 'X')
printf("恭喜玩家赢得胜利:\n");
if(ret == '0')
printf("呵呵,你个傻逼\n");
if(ret == 'q')
printf("平局\n");
}
</span>