c语言大作业井字棋程序,C语言编写井字棋.doc

井字旗C语言程序:

运行环境:Turbo C/C++for Windows集成实验与学习环境#define MAX 3

#define Status int

#define HUMAN_WIN 0 //人取得了胜利

#define DRAW 1 //平局

#define PLAYING 2 //没有决出胜负,正在进行游戏

#define COMPUTER_WIN 3 //电脑取得了胜利

#define HUMAN 0 //人

#define COMPUTER 1 //机器

#define EMPTY 2 //空

#define FALSE 0 //假

#define TRUE 1 //真

#include

#include "malloc.h"

//记录一步棋所需的所有信息:行数,列数,判断值

typedef struct

{

int column;

int row;

int val;

}Nodes;

int board[MAX][MAX];

//InitBoard初始化棋盘

Status InitBoard()

{

int row,column;

for(row=0; row

for(column=0; column

board[row][column]=EMPTY;

return TRUE;

}

//PostionIsEmpty判断在棋盘上在给定的置是否为空

Status PositionIsEmpty(int row , int column)

{

if(board[row][column]==2)

return TRUE;

else

return FALSE;

}

//Place在指定的地方落子

Status Place(int row,int column, int piece)

{

board[row][column]=piece;

return TRUE;

}

//BoardIsFull判断棋盘是否己满

Status BoardIsFull()

{

int i=0,j=0;

for(i=0;i

for(j=0;j

{

if(board[i][j] ==2)

return FALSE;

}

return TRUE;

}

//IsWin判断是否有一方己经胜利

Status IsWin( int side )

{

int row, column;

//判断一行

for( row = 0; row < MAX; row++ )

{

for( column = 0; column < MAX; column++ )

if( board[ row ][ column ] != side )

break;

if( column >= MAX )

return TRUE;

}

//判断一列

for( column = 0; column < MAX; column++ )

{

for( row = 0; row < MAX; row++ )

if( board[ row ][ column ] != side )

break;

if( row >= MAX )

return TRUE;

}

//判断主对角线

if( board[ 1 ][ 1 ] == side && board[ 2 ][ 2 ] == side

&& board[ 0 ][ 0 ] == side )

return TRUE;

//判断副对角线

if( board[ 0 ][ 2 ] == side && board[ 1 ][ 1 ] == side

&& board[ 2 ][ 0 ] == side )

return TRUE;

return FALSE;

}

//PositonValue返回落子后的状态


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部