#ifndef __GAME_H__#define __GAME_H__ #define ROW 10#define COL 10#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h>
void init_board(char board[ROW][COL], int row, int col);
void display_board(char board[ROW][COL], int row, int col);
void player_move(char board[ROW][COL], int row, int col);
void computer_move(char board[ROW][COL], int row, int col);
char judge_win(char board[ROW][COL], int row, int col);
#endif
game.c
#define _CRT_SECURE_NO_WARNINGS 1#include"game.h"void init_board(char board[ROW][COL], int row, int col)
{
memset(board, ' ', col*row*sizeof(board[0][0]));
}
void display_board(char board[ROW][COL], int row, int col)
{
int i = 0;
int j = 0;
for(i=0; i<row; i++)
{
for(j=0; j<col-1; j++)
{
printf(" %c |", board[i][j]);
}
printf(" %c ",board[i][j]);
printf("\n");
for(j=0; j<row-1; j++)
{
if(i < row-1)
printf("---|");
}
if(i < row-1 )
printf("---");
printf("\n");
}
}
staticint is_full(char board[ROW][COL], int row, int col)
{
int i = 0;
int j = 0;
for (i=0; i<row; i++)
{
for (j=1; j<col; j++)
{
if (board[i][j] == ' ')
return0;
}
}
return1;
}
char judge_win(char board[ROW][COL], int row, int col)
{
int i=0;
int j=0;
for (i=0;i<row;i++)
{
for (j=0;j<=col-5;j++)
{
if (board[i][j]==board[i][j+1]
&&board[i][j+1]==board[i][j+2]
&&board[i][j+2]==board[i][j+3]
&&board[i][j+3]==board[i][j+4]
&&board[i][j+4] != ' ')
{
return board[i][j];
}
}
}
for (i=0;i<col;i++)
{
for (j=0;j<=row-5;j++)
{
if ( board[i][j]==board[i+1][j]
&&board[i+1][j]==board[i+2][j]
&&board[i+2][j]==board[i+3][j]
&&board[i+3][j]==board[i+4][j]
&&board[i+4][j]!=' ')
{
return board[i][j];
}
}
}
for (i=0;i<=row-5;i++)
{
for (j=0;j<=col-5;j++)
{
if (board[i][j]==board[i+1][j+1]
&&board[i+1][j+1]==board[i+2][j+2]
&&board[i+2][j+2]==board[i+3][j+3]
&&board[i+3][j+3]==board[i+4][j+4]
&&board[i+4][j+4]!=' ')
{
return board[i][j];
}
}
}
for (i=0;i<=row-5;i++)
{
for (j=col;j>=col-5;j--)
{
if (board[i][j]==board[i+1][j-1]&&
board[i+1][j-1]==board[i+2][j-2]&&
board[i+2][j-2]==board[i+3][j-3]&&
board[i+3][j-3]==board[i+4][j-4]&&
board[i][j]!=' ')
{
return board[i][j];
}
}
}
if (is_full(board,row,col))
{
return'q';
}
return' ';
}
void computer_move(char board[ROW][COL],int row,int col)
{
printf("电脑下\n");
while(1)
{
int x = rand()%row;
int y = rand()%col;
if(board[x][y] == ' ')
{
board[x][y] = '0';
break;
}
}
}
void player_move(char board[ROW][COL], int row, int col)
{
int x = 0;
int y = 0;
printf("玩家下\n");
printf("请输入坐标:");
while(1)
{
scanf("%d %d", &x, &y);
if((x<=row)&&(x>=1)&&(y<=col)&&(y>=1))
{
if(board[x-1][y-1] == ' ')
{
board[x-1][y-1] = 'X';
break;
}
elseprintf("输入错误,请重新输入\n");
}
elseprintf("输入错误,请重新输入\n");
}
}