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