程序逻辑c语言项目答辩猜拳游戏,项目实战1 猜拳游戏C语言.ppt

项目实战1 猜拳游戏C语言

* 中国职业教育联盟课程体系 * 程序逻辑及C语言编程 项目实战一 猜拳游戏 * * 中国职业教育联盟课程体系 中国职业教育联盟课程体系 成就百万精英 1.1需求描述 实现一个猜拳游戏。游戏分为5局,每局用户可以猜拳一次, 分胜、负、平三种结果。游戏中用户可以出石头、剪刀、布三种拳。 五局结束后,统计用户胜、负、平的次数, 并显示最终游戏结果(输了、赢了,还是平了?)和每局游戏结果。 用户可以选择再来一次或退出游戏 游戏运行效果 1.2问题分析 在游戏中只有三种拳式,即石头、剪刀、布。我们可以先将这三种拳式进行编号(如1、2、3),定义一个变量用于存储用户当前局次的出拳,并提示用户怎么出拳 游戏运行效果 1、思考:用户如何出拳 ? 定义变量表示用户出拳: 接收用户输入,即用户出拳: 提示信息如下: printf("\t2.游戏中您可以输入1、2、3分别代表出石头、剪刀、布。\n"); int user=0;//表示用户的出拳,默认为0表示未出拳 scanf(“%d”,&user); 还要验证用户输入是否在规定范围内 代码提示: while(user<1 || user>3) { … //省略 scanf("%d",&user); //判断出拳是否正确,若不正确给出提示 if(user <1 || user >3) { printf("\t〖提示〗:出错了,只能选择1(石头)、2(剪刀)、3(布)!\n"); } …//省略 } 1.2问题分析 电脑也只能出石头、剪刀、布三种拳式中的一种。为了比较用户和电脑出拳,电脑和用户拳式的编号要一致 2、思考:电脑如何出拳 ? 我们在这里用C语言中的一个库函数rand来产生随机数 computer = rand()%3+1; //随机产生1、2、3之中任意一个数 在C语言中通过srand()函数为rand()函数提供种子(即上述中的特定数)。所以在使用rand()产生随机数之前,应该调用srand函数为rand()函数提供种子 //产生随机数表示电脑出拳 srand(time(NULL)); computer = rand()%3+1; //产生1、2、3之中任意一个数 1.2问题分析 游戏运行效果 首先定义全局变量来存储用户胜、负的次数,比如使用win代表赢的次数、failed代表输的次数,平局的次数可以通过5-win-failed计算出来。在每一局中,如果用户赢了,则win++;如果用户输了,则failed++ 3、思考:如何统计游戏结果 ? 代码提示: //输出猜拳结果 printf("\n\n【猜拳结果】"); if(…) //省略 { printf("您赢了!"); } else if(…) //省略 { printf("平手!"); } else { printf("您输了!"); } printf("\n-------------------------------------------------------\n"); printf("\t您的成绩:%d胜 %d败 %d平!\n\n",win,failed,5-win-failed); printf("\t电脑的成绩:%d胜 %d败 %d平!",…); //省略 printf("\n-------------------------------------------------------\n"); 1.2问题分析 代码提示: 可以将整个游戏实现部分用do-while或者while循环包含起来。当游戏结束后提示用户是否再玩一次?如果用户选择继续,则再执行游戏实现部分代码一次,反复这样就可以实现了 4、思考:如何循环游戏 ? do { …//游戏实现部分省略 if(win-failed<=0) { printf("不服气吗?请输入y或者Y再来,输入其它则离开!\n"); } else { printf("您这次运气不错!需要再来一次吗(y/n)?\n"); } printf("请输入:"); fflush(stdin);//清空缓存 }while(scanf("%c",&in),in=='y' || in == 'Y'); 1.2问题分析 游戏运行效果 根据石头比剪刀大,剪刀比布大,布比石头大的游戏规则,我们可以用条件语句来判断用户出拳与电脑出拳的关系 5、思考:如何比较用户和电脑出拳的胜、负、平 ? 代码提示: //如果用户和电脑出拳相同,则为平局 if(user == computer) {//平局 printf("\t这一局,您和电脑打成平手!\n"); cont

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值