刽子手游戏(Hangman Judge, UVa 489)
2024-08-31 01:57:39
刽子手游戏其实是一款猜单词游戏,游戏规则是这样的:计算机想一个单词让你猜,你每次可以猜一个字母。如果单词里有那个字母,所有该字母会显示出来;如果没有那个字母,则计算机会在一幅“刽子手”画上填一笔。这幅画一共需要7笔就能完成,因此你最多只能错6次。注意,猜一个已经猜过的字母也算错。
在本题中,你的任务是编写一个“裁判”程 序,输入单词和玩家的猜测,判断玩家赢了 (You win.)、输了(You lose.)还是放弃了 (You chickened out.)。每组数据包含3行,第1行是游戏编号(-1为输入结束标记),第2行是计算机想的单词,第3行是玩家的猜测。后两行保证只含小写字母。
样例输入:
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<cstdio>
#include<cstring>
#define maxn 10010
int left,chance;
char s1[maxn],s2[maxn];
int win,lose;
void guess(char a){
int flag=;
for(int i=;i<strlen(s1);i++){
if(a==s1[i]) {
s1[i]=' ',left--;
flag=;
}
}
if(!flag) chance--;
if(!left) win=;
if(!chance) lose=;
}
int main(){
int count=;
while(){
scanf("%d",&count);
if(count==-) break;
scanf("%s%s",s1,s2);
win=;
lose=;
printf("Round %d\n",count);
int n=strlen(s2);
left=strlen(s1);
//printf("%d\n",left);
chance=;
for(int i=;i<n;i++){
guess(s2[i]);
if(lose||win) break;
}
//guess(s1,s2);
if(win)printf("You win.\n");
else if(lose) printf("You lose.\n");
else printf("You chickened out.\n");
}
return ;
}
最新文章
- S5PV210_uart stdio移植
- .NET 事件
- lua table integer index 特性
- tornado api 简单模板
- json与jsonp小结
- mysql 2003 10038 连接不上的解决
- Effective java笔记6--异常
- Linux开机执行bash脚本
- BootStrap2学习日记10---单选框和复选框
- Java中获取完整的访问url
- Base64 编码
- [BZOJ 3531] [Sdoi2014] 旅行 【离线+LCT】
- QuaZip实现多文件打包
- MagicalRecord(简化CoreData操作)
- C++----练习--整型赋值时的溢出
- BZOJ 1632: [Usaco2007 Feb]Lilypad Pond
- BZOJ 1858: [Scoi2010]序列操作( 线段树 )
- Ubuntu升级后apache所有的失败,以解决虚拟文件夹的设置
- Effective C++ 第二版 1)const和inline 2)iostream
- ArcGIS 网络分析[1] 介绍与博文目录【更新中】
热门文章
- addSubview和insertSubview 区别
- LeetCode 171. Excel Sheet Column Number (Excel 表格列数字)
- SpringBoot之Web开发——webjars&;静态资源映射规则
- Spark SQL Catalyst源代码分析之UDF
- PX4/Pixhawk---高速成为开发人员(Windows)
- javaBean注意事项
- P1402 酒店之王 网络流
- 洛谷 P1083 [ NOIP 2012 ] 借教室 —— 线段树 / 二分差分数组
- 洛谷P1250种树(贪心)
- [Swift通天遁地]三、手势与图表-(2)监听手势事件自由拖动图像视图