《C语言程序设计》期未项目考核封皮及目录由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“目标考核封面及目录”。
广西机电职业技术学院
C语言程序设
项目名称: 猜拳游戏 学 生: 深蓝 授课教师: 方校长 系 别: 互联网管理
专 业:
2011年6月5日
计
猜拳游戏 摘要
【游戏规则】:
1.游戏分为五局,每局您可以猜拳依次分胜负平三种结果。
2.游戏中您可以输入1,2,3,4分别代表石头,剪刀,布。
3.石头比剪刀大,剪刀比布大,布必石头大。
【游戏选项】:〖石头〗 〖剪刀〗 〖布〗
【第1局】 请出拳1 这一局,您出的是〖石头〗,电脑出的是〖剪刀〗,O(∩_∩)O哈哈~您赢了!
【第2局】请出拳2 这一局,您出的是〖剪刀〗,电脑出的是〖石头〗,{{{(>_
【第3局】 请出拳3 这一局,您出的是〖布〗,电脑出的是〖剪刀〗,{{{(>_
【第4局】 请出拳1 这一局您出的是〖石头〗,电脑出的是〖剪刀〗O(∩_∩)O哈哈~您赢了!
【第5局】 请出拳3 这一局您出的是〖布〗,电脑出的是〖剪刀〗{{{(>_
【猜拳结果】您输了!
您的成绩是:2胜3负0平!电脑的成绩:3胜2负0平!
不服气吗?请输入y或则Y再来,输入其它则离开!
请输入:y 【第1局】请出拳2 这一局您出的是〖剪刀〗,电脑出的是〖石头〗{{{(>_
【第2局】请出拳2 这一局您出的是〖剪刀〗,电脑出的是〖剪刀〗,平局!
【第3局】请出拳3 这一局您出的是〖布〗,电脑出的是〖剪刀〗,{{{(>_
【第4局】请出拳1 这一局您出的是〖石头〗,电脑出的是〖布〗,{{{(>_
【第5局】请出拳3 这一局您出的是〖布〗,电脑出的是〖剪刀〗,{{{(>_
【猜拳结果】您输了!
您的成绩:0胜4负1平 电脑的成绩:4胜0负1平
请输入y
【第1局】请出拳1 这一局您出的是〖石头〗,电脑出的是〖石头〗,平局!
【第2局】请出拳1 这一局您出的是〖石头〗,电脑出的是〖剪刀〗,O(∩_∩)O哈哈~您赢了!【第3局】请出拳1 这一局您出的是〖石头〗,电脑出的是〖剪刀〗,O(∩_∩)O哈哈~您赢了!【第4局】请出拳1 这一局您出的是〖石头〗,电脑出的是〖布〗,{{{(>__
您的成绩:2胜2负1平 电脑的成绩:2胜2负1平 打成平手,再来一次吗? 请输入y 【第1局】请出拳1 这一局,您出的是〖石头〗,电脑出的是〖剪刀〗。O(∩_∩)O哈哈~您赢了!【第2局】请出拳1 这一局您出的是〖石头〗,电脑出的是〖布〗,{{{(>_
您的成绩:3胜1负1平 电脑的成绩:1胜3负1平 您的运气不错!需要再来一次吗(y/n)?
目 录
摘要
1原程序代码„„„„„„„„„„„„„„„„„„„„„„„„„„„„1 2程序代码出处 „„„„„„„„„„„„„„„„„„„„„„„„„„„„5 3程序功能及构成等„„„„„„„„„„„„„„„„„„„„„„„„„„„5 4原程序代码中最好模块及相应分析„„„„„„„„„„„„„„„„„„„„„6 5原程序可变动处及变动描述与相应变动代码„„„„„„„„„„„„„„6 6变动处相应知识点描述„„„„„„„„„„„„„„„„„„„„„„„„„„7 7变动处思路的描述„„„„„„„„„„„„„„„„„„„„„„„„„7 8变动后整个项目程序代码及相关结论„„„„„„„„„„„„„„„„„„„8
1原程序代码
/* 猜拳游戏 */
#include #include #include #include #include
void main(){ int user;//接受用户输入(存放)
int computer;//存放随机产生(存放)int i;//控制循环(存放)
int sum[2][3]={0};//累加分数(存放)char ch;//判断是否继续(存放)int *p=&sum[0][0];//指针初始化 // 使用系统时钟初始化种子值 srand(time(NULL));
// 使用system函数调用windows操作系统的dos命令 system(“color 9e”);
//欢迎界面
printf(“nnnnnnntttt”);printf(“欢 ”);Sleep(300);//休眠函数 printf(“迎 ”);Sleep(300);printf(“进 ”);Sleep(300);printf(“入 ”);Sleep(300);printf(“猜 ”);Sleep(300);printf(“拳 ”);Sleep(300);printf(“游 ”);Sleep(300);printf(“戏 ”);
//加载界面
printf(“nnnnntt”);printf(“请稍等,已加载:”);printf(“1%%”);for(i=2;i
//游戏界面输出
printf(“t ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆n”);printf(“t☆※※※※※※※※猜※拳※游※戏※※※※※☆n”);printf(“t ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆nn”);printf(“tttttt 软件1班n”);printf(“------------------------------n”);printf(“『游戏规则』:n”);printf(“t1.游戏分为5局,每局您可以猜拳5次,分胜、负、平三种结果。n”);printf(“t2.游戏中您可以输入
1、2、3分别代表石头、剪刀、布。n”);printf(“t3.石头比剪刀大,剪刀比布大,布比石头大。n”);printf(“t4.五局结束后您可以选择再来5次或直接退出游戏。nn”);printf(“『游戏选项』:n”);printf(“t1.〖石头〗nt2.〖剪刀〗nt3.〖 布 〗nn”);loop2: { //清空变量
for(i=0;i
//控制游戏进行5次 for(i=1;i
printf(“【第%d局】:n”, i);// 电脑出拳(产生1-3的随机数)computer = rand()% 3 + 1;//用户输入
printf(“t请出拳:”);scanf(“%d”,&user);
//判断输赢,外层为判断用户,内层判断电脑 switch(user){ case 1:switch(computer)//当用户输入1时的判断 { case 1:printf(“t这%d局,您出的是〖石头〗,电脑出的是〖石头〗,平局!n”,i);sum[0][2]++;sum[1][2]++;break;case 2:printf(“t这%d局,您出的是〖石头〗,电脑出的是〖剪刀〗,oo~~您赢了!n”,i);sum[0][0]++;sum[1][1]++;break;case 3:printf(“t这%d局,您出的是〖石头〗,电脑出的是〖 布 〗,>_
case 2:switch(computer)//当用户输入2时的判断 { case 1:printf(”t这%d局,您出的是〖剪刀〗,电脑出的是〖石头〗,>_o~~您赢了!n“,i);sum[0][0]++;sum[1][1]++;break;}break;
case 3:switch(computer)//当用户输入3时的判断 { case 1:printf(”t这%d局,您出的是〖 布 〗,电脑出的是〖石头〗,oo~~您赢了!n“,i);sum[0][0]++;sum[1][1]++;
break;case 2:printf(”t这%d局,您出的是〖 布 〗,电脑出的是〖剪刀〗,>_
default:printf(“t〖提示〗:出错了,只能选择1、2、3!n”);goto loop1;//当用户输入错误时的跳向上面loop1标号处,用户重新输入选择 }//loop1标号结束
}//最外层switch语句结束 }//循环结束
//判断全部局数
if(sum[0][0] > sum[1][0])//用户胜利的输出情况 { printf(“【猜拳结果】您赢了!n”);printf(“---------------n”);printf(“您的成绩是:%d胜 %d负 %d平n”,sum[0][0],sum[0][1],sum[0][2]);printf(“电脑的成绩:%d胜 %d负 %d平n”,sum[1][0],sum[1][1],sum[1][2]);printf(“您这次运气不错,需要再来一次吗(Y or N)?n”);}
else if(sum[0][0]
else if(sum[0][0] == sum[1][0])//用户失败的输出情况 { printf(“【猜拳结果】平局!n”);printf(“---------------n”);printf(“您的成绩是:%d胜 %d负 %d平n”,sum[0][0],sum[0][1],sum[0][2]);printf(“电脑的成绩:%d胜 %d负 %d平n”,sum[1][0],sum[1][1],sum[1][2]);
printf(“需要再来一次吗(Y or N)?n”);}
//提示用户输入
printf(“请输入:”);fflush(stdin);//清空缓存 scanf(“%c”,&ch);system(“ cls ”);//清屏
//判断用户是否继续
if(ch=='Y' || ch== 'y')goto loop2;// 当用户选择继续时,跳向上面loop2标号处,继续游戏 else printf(“输入任意键退出!n”);}//loop2结束 }//main()结束
2程序代码出处
.http://user.qzone.qq.com/154506372?ADUIN=734430457&ADSESSION=1307593968&ADTAG=CLIENT.QQ.2785_FriendInfo_PersonalInfo.0&ptlang=20
523程序功能及构成等
实现一个猜拳游戏。游戏分为5局,每局用户可以猜拳一次,分胜、负、平三种结果。游戏中用户可以出剪刀、石头、布三种拳。五局结束后,统计用户胜、负、平的次数,并显示最终游戏结果(输了、赢了、还是平了?)和每局游戏结果。用户可以选择再来一次或退出游戏。猜拳
用户输入1-3数字,输入数字后判断是否在1-3之间,如果不在则提示用户重新输入,这里需要使用循环实现
电脑生成1-3的随机数实现猜拳,使用随函数生成 比较
根据游戏规则比较用户和电脑出的拳,将比较结果记录下来 循环
使用循环实现一轮5局
使用循环实现循环游戏,输出非‘y’结束游戏
• • • • • • • • • • • • •
4原程序代码中最好模块及相应分析
用户出拳循环判断是否在1-3之间
//出拳,若用户出拳不正确就重新出拳
while(user3){
printf(“【第%d局】nt请出拳:”,i+1);fflush(stdin);
scanf(“%d”,&user);
//判断出拳是否正确,若不正确给出提示
if(user 3){
printf(“t〖提示〗:出错了,只能选择(石头)、(剪刀)、(布)!n”);} }
5原程序可变动处及变动描述与相应变动代码 • 比较用户与电脑出拳结果
• switch(user)//判断用户出拳,计算用户出拳是赢了还是输了
• {
• case 1:
printf(“t这一局,您出的是〖石头〗,”);•
if(computer == 2){
win ++;//用户胜局+1
printf(“电脑出的是〖剪刀〗,O(∩_∩)O~~ 您赢了!n”);•
else{
failed ++;//用户败局+1 •
printf(“电脑出的是〖布〗,%>_<% 您输了!n”);•
}
break;• case 2: •
......•
break;• }
6变动处相应知识点描述
}
• 循环游戏 • do • {
• • • • • • • • • • • if(win-failed
printf(“不服气吗?请输入y或者Y再来,输入其它则离开!n”);} else {
printf(“您这次运气不错!需要再来一次吗(y/n)?n”);}
printf(“请输入:”);
fflush(stdin);//清空缓存
}while(scanf(“%c”,&in),in=='y' || in == 'Y');
7变动处思路的描述 •
总共时间(200分钟)
– 阶段1(30分钟)
设计游戏界面、理清游戏思路,打印游戏标题、规则
– 阶段2(65分钟)
实现电脑及用户出拳及比较
– 阶段3(25分钟)
实现统计并显示游戏结果
– 阶段4(25分钟)
实现游戏循环运行
– 阶段5(25分钟)
反复运行、调试程序,解决bug
8变动后整个项目程序代码及相关结论
实现思路及关键代码:
创建cpp文件
搭建程序框架
定义变量
输出欢迎界面及游戏规则
int i,computer,user,win,failed;char in;printf(“t ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆n”);printf(“t☆※※※※※※※※猜※拳※游※戏※※※※※※※※☆n”);printf(“t ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆nn”);需求说明:
实现用户出拳并显示 实现电脑出拳并显示
电脑出拳用产生1~3的随机数实现(使用随机函数srand(time(null)))产生1:显示“电脑出拳: 剪刀” 产生2:显示”电脑出拳: 石头” 产生3:显示“电脑出拳: 布”
电脑出拳后将电脑出拳与用户出拳比较,如果用户赢则将win变量加1,如果用户输则将failed变量加1,否则平局,然后显示这一局是用户输了或赢了
5局之后比较如果win变量大于failed变量则用户赢,如果failed大于win则用户输,否则平手,并显示统计结果
*