【题目】

Hangman Judge是一个猜英文单字的小游戏(在电子字典中常会看到),游戏规则如下:
1、答案单字写在纸上(每个字元一张纸),并且被盖起来,玩家每次猜一个英文字元(letter)。
2、如果这个英文字元猜中(在答案的英文单字中有出现),被猜中的字元就被翻开。例如:答案是book,如果你猜o,book中的两个o就会被视为已猜中。
3、如果这个英文字元未出现在答案的单字中,就会在hangman的图中多加一划。要完成hangman图共需7划,如下图。注意:同一个猜错的字元只能再图上画一划,例如:答案是book,第一次你猜a(未猜中)会在图上画一划,但第二次以后再猜a并不会再多画。
4、如果在hangman图完成之前,玩家已猜中所有答案中的字元,则玩家赢(win)。
5、如果玩家尚未猜中所有答案中的字元而hangman图完成了,,则玩家输(lose)。
6、如果玩家在还没输赢的情况之下就不玩了,那我们说玩家胆小放弃了(chicken out)

 ______   |  |     |  O     | /|\    |  |     | / \    __|_       |   |______|_________|

你的任务就是要写一个程序根据答案及玩家输入的猜测来判断玩家是赢、输、或放弃。

【输入】

会有好几组测试数据,每一组有3列。第一列为一个数字n,代表第几回合,第二列为这一回合的答案,第三列为这一回合玩家输入的猜测。如果n = -1代表输入结束。

【输出】

请输出每一回合及游戏结果。游戏结果只有三种可能:
You win.
You lose.
You chickened out.
请参考样例输出。

【样例输入】

1
cheese
chese
2
cheese
abcdefg
3
cheese
abcdefgij
-1【样例输出】
Round 1
You win.
Round 2
You chickened out.
Round 3
You lose.
#include <iostream>
#include <stdio.h>
#include <string.h>
#define maxn 100
int left,chance;//还需要猜测left个位置,错chance次之后就会输
int win,lose;// win=1表示已经赢了,lose=1表示输了
char s[maxn],s2[maxn];//答案是字符串s,玩家猜的字母序列是s2
int main ()
{void guess (char ch);int rnd;while(scanf("%d",&rnd)==1 && rnd!=-1){scanf("%s%s",s,s2);printf("Round %d\n",rnd);win=lose=0;left=strlen(s);chance=7;for(int i=0;i<strlen(s2);i++){guess(s2[i]);if(win || lose)    break;}//根据结果进行输出if(win)    printf("You win.\n");else if(lose) printf("You lose.\n");else   printf("You chickened out.\n");}return 0;
}
void guess (char ch)
{int bad=1;for(int i=0;i<strlen(s);i++){if(ch==s[i]){left--;s[i]=' ';bad=0; }}if(bad)  chance--;if(!chance)    lose=1;if(!left)   win=1;
}

【ACM】UVa 489 刽子手游戏(自顶向下)相关推荐

  1. C++ 刽子手游戏(Hangman Judge, UVa 489)(算法竞赛入门经典例题4-2)

    题目:刽子手游戏是一个简单的猜单词游戏,每次可以猜一个字母,如果单词内有这个字母,此单词内所有该字母都会显示,如果没有该字母,则记一笔错误,若满7笔错误,则输掉()猜已经猜出的单词也算错误).本题编写 ...

  2. UVa 489 Hangman Judge

    又是一个星期五, 开始发UVa的代码了啊! 比较忙的我没有太多练习题目的时间,所以就简简单单的找了一道水题来做,这道题没什么可以说的,所以就直接附上代码 地址在vjudge.net或UVa上 //yi ...

  3. UVA - 489 ​​​​​​​Hangman Judge

    Hangman Judge UVA - 489 题目传送门 PS.此题Udebug有毒,即使100组样例全过,但还是WA,心塞. 这是我自己的代码,悲催的WA了 #include <cstdio ...

  4. 使用JavaFX完成刽子手游戏

    使用JavaFX完成刽子手游戏 1.1 题目说明 1.2 分析过程 本题让我画一个小人,首先使用new Arc()命令绘制半个椭圆当基座,然后使用new Line()绘制线条,line1和line2绘 ...

  5. Hangman Judge, UVa 489

    刽子手游戏其实是一款猜单词游戏,如图4- 1所示.游戏规则是这样的:计算机想一个单词 让你猜,你每次可以猜一个字母.如果单词里有 那个字母,所有该字母会显示出来:如果没有那 个字母,则计算机会在一幅& ...

  6. 蓝桥杯 真题 救济金发放、分糖果、刽子手游戏

    题目 n(n<20)个人站成一圈,逆时针编号为1-n.有两个官员,A从1开始逆时针数,B从n开始顺时针数.在每一轮中,官员A数k个就停下来,官员B数m个就停下来(注意有可能两个官员停在同一个人上 ...

  7. UVa 489,紫书P79,刽子手游戏

    题目链接:https://uva.onlinejudge.org/external/4/489.pdf 这个题很像之前的一个拓扑排序的题目,思路类似咯. 程序模块化: 每次判断一个字母,lose,wi ...

  8. 刽子手游戏(Hangman Judeg,Uva 489)

    学习心得!(顺便说一下,今天学会了游泳,超级开心!!) 思路:1.在一行里把猜测单词里可能存在的字母全部输入 2.交给计算机来判断,如果超过7次机会,则lose,还有字母没猜完的,chickened ...

  9. Hangman Judge UVA - 489

    https://vjudge.net/problem/UVA-489 也是用来练自顶向下编程,练习用函数来解题的,还是先定好思路,写大体框架,再扩展每个函数的功能. 不难,具体代码里有注解. #inc ...

最新文章

  1. mysql 5.7和8.0区别_前沿观察 | MySQL性能基准测试对比:5.7 VS 8.0
  2. str045漏洞提权linux,Linux运维知识之CVE-2016-5195 Dirtycow: Linux内核提权漏洞
  3. 奇异值分解SVD与在降维中的应用
  4. 屏幕颜色拾取器 (VC++)
  5. JMeter使用教程(一)
  6. 惠普m1216硒鼓清零步骤_显示耗材余量错误怎么解决呢,一招搞定
  7. 我就是要用MD5!不用不行!那么,怎么防止被拖库后泄露用户密码?
  8. 使用凤凰在6303C里开启Java软件在后台运行!
  9. 二维平面中二维向量的叉乘 得到的向量,x、y方向上的分量必定为0
  10. 土巴兔上市未卜,群核科技换个姿势能否撑起“3D云设计第一股”?
  11. php短信接口开发(http协议)
  12. MATLAB图像处理学习日记之图像的自定义裁剪imcrop操作
  13. 源码看JAVA【五】Byte
  14. Node.js Websocket 井字棋游戏
  15. uniapp使用高德地图微信小程序SDK生成地图轨迹
  16. 低智商和高智商的9个表现是什么
  17. Android 简单音乐播放器开发
  18. 港科夜闻|香港科大汪扬教授、李泽湘教授受邀出席2022年粤港澳大湾区青少年公益年会创科大咖说,分享大湾区未来创新机遇...
  19. memory:arm 分区layout以及虚拟内存布局-小结
  20. GPRS连接阿里云物联网平台四

热门文章

  1. 计算机系统的分类补充完整,数据库系统原(理B)13春A卷.doc
  2. Html,Css,Javascript是什么?
  3. Java多线程001——一图读懂线程与进程
  4. 【oracle】dblink创建
  5. #大学#SQL基础学习笔记(02)
  6. 发现一个“佛系记账本”
  7. js同时打开两个连接
  8. pycharm第一个Python程序
  9. 71 mac boook pro 无 gpu 下caffe 安装
  10. ServletResponse-中文名的下载