三连珠-C++
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++课程设计实验报告
姓名郑嵘学号912104210427 班级9121042104任课教师赵琦时间 4月20日 17:01—17:30
题目 2.2三连珠游戏评定难易级别 B
1.实验内容:
1.1 程序功能介绍
该程序是TICTACTOE游戏,棋盘为3×3,3个棋子连起来即为赢。输入参数时,若输入的数字超出边界或在已有的地方再输入,则提示出错,要求重新输入。
1.2 程序设计要求
(1)讲程序改写成类
(2)将棋盘扩充成4×4
(3)统计输赢结果并打印输出
(4)选作:使游戏更生动。(输赢条件相同)
2. 源程序结构流程框图与说明(含新增子函数的结构框图)
3. 基本数据结构
Cgobang 棋子类
包含成员如下:
private :
int FirstPlayer; //第一位玩家赢的次数
int SecongPlaer; //第二位玩家赢的次数
int Draws; //平局的次数
char board[4] //棋盘
public :
void PrintInfo(void) //输出游戏提示信息void Setcoord(int F,int S,int D,char B,int R,int C) void PrintBoard(void) //输出棋盘
void PromptTurnO(int&x, int&y) //选择'O'的玩家下棋
void PromptTurnX(int&x, int&y) //选择'X'的玩家下棋
void IfError(int&x, int&y) //如果玩家输入坐标
出错,则提示错误,重新输入int GetFull(int k) //判断棋盘是否落满棋盘
int Judge(char k) //判断是否连成一线,
是返回1,否返回0
void PrintStats(int F, int S, int D) //输出统计的胜
负信息
void ChoiceOfChar(char&choice) //询问用户是否再玩一局
4. 程序运行结果界面
图 1. 初始界面
图2. O赢棋
5. 课程设计遇到的技术问题与解决思路
问题1:怎样将if 语句改成for 循环语句?
解决办法:将3×3和4×4三子连成一线的各种情况都写出,利用数学归纳法总结出循环语句的条件。
问题2:如何在循环语句中直接用SportsOnBoard?(调试时出现错误)
解决办法:查找书本后知道可以将SportsOnBoard 定义为全局变量,解决了问题。
图3.结果统计