井字棋游戏设计需求
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言复习
●输入函数scanf,注意在scanf之前要调用fflush(stdin);函数
●输出函数printf以及打印格式
●循环语句for while
●判断分支语句if-else
●断点调试
井字棋游戏设计需求
1.建立一个控制台程序实现游戏;
2.建立如下的变量
char ChessBoard[3][3] = {0};
int nCurrentPlayer = 0; // 1代表1#玩家。2代表2#玩家
int nCurrentRow = -1; //当前输入的行
int nCurrentCol = -1; //当前输入的列
int nOneWin = 0; //1#玩家胜利数
int nTwoWin = 0; //2#玩家胜利数
int nDrawGame = 0; //和局
3.游戏一开始,输出“xxx班xx同学(学号xxxxxxxx)欢迎您使用井字棋游戏”。
4.新开始一局游戏,把棋盘的9个棋子全部清空为0.
5.屏幕提示当前是1#玩家或者2#玩家,两个玩家(分别定义为1#和2#)分别轮流通过键
盘输入放置棋子;
6.对键盘输入的正确错误进行判断,包括:
●输入的坐标是否越界?
●输入的坐标是否已经有棋子了?
●是否有一个玩家放置棋子后就连成一线而胜利?
●是否放满了9个棋子仍然没有玩家获胜?本局平局则为平局。
是否输入了退出游戏的命令?如果是,则再次询问确定是否要退出。
7.每一次轮到一个玩家输入前,先输出显示现在的棋盘上的棋子。
8.对胜局、平局进行统计。
9.胜利一局后,显示1#胜局数、2#胜局数,平局数。
10.胜利一局后,询问是否要继续开始新的一局。
11.AI预测。每轮到一个玩家落子,在显示完当前棋盘状态后且输入坐标前,预测该玩家
在(m,n)位置落子即可获胜。(选作)
12.程序注释,要求:
每一个变量的注释
每一个函数注释
每一个循环注释
每一个if-else分支语句注释
注释可以采用/* */ 或者// 来注释
13.不允许
不允许使用汉语拼音
不允许使用中文作为工程名、变量名、函数名
考核内容:
1.源代码,要求能运行出结果,有详细注释,逻辑清晰。工程名称以MyChessxxxx命名,
其中xxxx是自己的学号。
2.源代码程序第一行以注释的形式写上自己的学号、姓名、班级。
3.答辩成绩,最后一次课逐个答辩。
char ChessBoard[3][3] = {0};
int nCurrentPlayer = 1; // 1代表1#玩家。2代表2#玩家
int nCurrentRow = -1;
int nCurrentCol = -1;
int nOneWin = 0;
int nTwoWin = 0;
int nDrawGame = 0; //和局
//UINT nOne
void ClearChessBoard(); //把棋盘的9个棋子全部清空为0. void ShowChessBoard(); //显示9个棋子
void DoInput(); //获取键盘输入//bool可以改为int; bool IsOutRange( ); //检测是否越界
bool IsHasChess(); //检查当前位置是否已经有棋子了int WhoWin(); //检查谁获胜
bool IsFull(); //是否棋盘满了
bool IsExitCmd(); //是否是退出命令
void Statistics(int win); //统计胜败和
void SetNextPlayer(); //设置为下一个玩家
void Predict(); //预测