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