《井字棋游戏课程设计总结报告.docx》由会员分享,可在线阅读,更多相关《井字棋游戏课程设计总结报告.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机信息学院C 语言课程设计(短一)指导书附件二 封面格式C 语言课程设计总结报告题目井字棋指导教师院系计算机与信息工程学院专业计算机科学与技术班级学号姓名成绩1附件三 目录格式目 录第一章 系统功能说明1第二章 使用说明221 安装手册322 使用手册4第三章 程序结构531 程序结构说明.6 32 重要数据说明.7 33 函数清单8第四章 系统设计难点及其解决方法9第五章 不足之处.102第一章 系统功能说明井字游戏的游戏界面是一个 3*3 的格子,系统提示玩家输入棋子的坐标来表示要下的棋子的位置,如果玩家输入的坐标所在位置已经有棋子或者该坐标已经超出了游戏坐标的范围,就提示玩家重新输入
2、坐标,。当有三个棋子在一条直线上的时候就结束游戏,并输出哪个玩家赢了。3第二章 使用说明2.1 安装手册将游戏压缩文件下载到指定文件夹,解压文件到当前文件夹,双击文件名为“井字棋游戏.EXE”的图标即可进入游戏。2.2 使用手册游戏规则:玩家 1 和玩家 2 各自输入自己的棋子坐标,来表示棋子的位置。如果某个玩家有三个棋子连成一条直线,则该玩家胜利,游戏结束。4第三章 程序结构31 程序结构说明先定义变量,然后画出井字棋盘,再利用一个for 循环输出每一步的结果,输出结果之后改变玩家的序号,接下来就是语句,提示玩家输入棋子的坐标,之后再判断输入的棋子的位置是否有效(即是否超出游戏的范围或该位置
3、已经有棋子占据了。接着用 if 语句来判断游戏是否结束,结束的条件有两个,一:某个玩家赢了;二:有效的游戏次数已经达到了九次。最后输出游戏的结果。32 重要数据说明玩家输入的坐标必须都是在 0 到 2 里面的(包括 0 和 2)。33 函数清单#include void main()int hang,lie,count=0,player,ying=0;/变量的定义char weizhi33= -,-,-, -,-,-, -,-,- ;/画出棋盘for(int i=0;i=9&ying=0;i+) /每一步的输出处理printf(nn);printf(0 1 2n);printf(0 %c %c
4、 %cn,weizhi00,weizhi01,weizhi02); printf(1 %c %c %cn,weizhi10,weizhi11,weizhi12); printf(2 %c %c %cn,weizhi20,weizhi21,weizhi22);player=i%2+1;/更改玩家的序doprintf(n 玩家%d:请输入您的棋子位置(%c) : ,player,(player=1) ? 1:2);scanf(%d%d,&hang,&lie); /输入坐标即可if(weizhihanglie=1|weizhihanglie=2)printf(n 对不起!这个位置已经有棋子了,请您再
5、输入棋子的位置:n); /do 语句结束while(hang2|lie2|weizhihanglie=1|weizhihanglie=2); /如果 weizhihanglie这个位置被占据或超出题目范围的话,不做任何处理weizhihanglie=(player=1)? 1:2; /如果没超出范围的话,就将该位置的符号改为相应的玩家的符号.count+; /每接受一个有效的坐标之后,就记数if(weizhi00=weizhi11&weizhi00=weizhi22&weizhi22!=-)|(weizhi02=weizhi11&weizhi02=weizhi20&weizhi20!=-)|5
6、(weizhi00=weizhi10&weizhi20=weizhi10&weizhi10!=-)| (weizhi01=weizhi11&weizhi21=weizhi11&weizhi11!=-)| (weizhi02=weizhi12&weizhi22=weizhi02&weizhi02!=-)| (weizhi00=weizhi01&weizhi00=weizhi02&weizhi02!=-)| (weizhi10=weizhi11&weizhi12=weizhi11&weizhi11!=-)| (weizhi20=weizhi21&weizhi22=weizhi21&weizhi21
7、!=-)/列出所有可能出现的情况,判断玩家是否已赢(即是否有三个棋子在一条直线上)ying=player;/判断是哪个玩家赢了break;/for 语句到此结束elseif (count=9) break;/当游戏进行了九次的时候就结束printf(nn); /输出部分printf(%c %c %cn,weizhi00,weizhi01,weizhi02); printf(%c %c %cn,weizhi10,weizhi11,weizhi12); printf(%c %c %cn,weizhi20,weizhi21,weizhi22);if(ying=0)printf(n 实力相当!此局平局
8、!n);elseprintf(n 恭喜玩家%d!您赢了!nn,ying);/整个函数结束6第四章 系统设计难点及其解决方法井字棋游戏程序设计的难点有以下方面:1:判断玩家输入的坐标时候有效及坐标的位置是否已经被占据。利用 while 语句进行判断即可。2:判断游戏是否已经结束。解决的方法:通过记数的方法和列出所有可能存在的游戏结束的情况。7第五章 不足之处游戏界面太单一,输出的棋盘太小等等。8表1 进度安排表C语言课程设计进度表选题名称:井字棋班级: 计101本学号:10104010116姓名:卓明镜任课教师: 曹红一、系统设计 起始时间及计划完成时间:2011年6月24日上午至2011年6月
9、27日下午二、系统实现 起始时间及计划完成时间:2011年6月28日上午至2011年6月29日下午三、测试起始时间及计划完成时间:2011年6月29日上午至2011年6月29日下午9表 2 中期报告表C语言课程设计中期报告(系统设计)选题名称:井字棋班级: 计101本学号: 101040101016姓名:卓明镜任课教师: 曹红起始时间及计划完成时间:6月24日6月29日一、题目(问题)描述要求:1实现一个可两个人玩的井字棋游戏。说明:1井字棋”的棋盘很简单,是一个 33 的格子,很像中国文字中的“井”字,所以得名“井字棋”。“井字棋”游戏的规则与“五子棋”十分类似,“五子棋”的规则是一方首先五
10、子连成一线就胜利;“井字棋”是一方首先三子连成一线就胜利。2棋盘可能一个33 的二维数组表示,玩家可以通过输入坐标(X,Y)来表示下在何处,如果上面有棋子则需重下,如果两方不能赢则为平局。二、问题分析 :棋盘格式是3*3的矩阵格式,所以可以用二维数组来表示棋盘的各个位置,再对各个位置进行初始化,玩家可通过输入坐标(hang,lie)来表示下在何处,之后只要有一方先三子连成一条直线就表示该玩家胜利并结束,否则为平局。三、系统设计1程序总体结构:先使用一个for循环输出3*3的棋盘格式,然后提示玩家输入棋子位置,接着就是判断该位置是否已经有棋子,如果有,则提示玩家再输入棋子的位置,否则,判断玩家是否最后再输出最后棋盘的结果。2界面设计 :界面背景是黑色的,左上角是 3*3 的棋盘格式,玩家可以通过输入坐标(hang,lie)来表示下在何处,如果上面有棋子则需重下,如果两方不能赢则为平局则棋盘上对应的位置就会显示该玩家的代表符号,每走一步,就会显示新的棋盘。10