uva489Hangman Judge
来源:互联网 发布:记忆最佳时间段在 知乎 编辑:程序博客网 时间:2024/06/01 20:47
angman Judge是一个猜英文单字的小游戏(在电子字典中常会看到),游戏规则如下:
1.答案单字写在纸上(每个字符一张纸),并且被盖起来,玩家每次猜一个英文字符(letter)。
2.如果这个英文字符猜中(在答案的英文单字中有出现),被猜中的字符就被翻开。例如:答案是book,如果你猜o,book中的两个o就会被视为已猜中。
3.如果这个英文字符未出现在答案的单字中,就会在hangman的图中多加一划。要完成hangman图共需7划,如下图。注意:同一个猜错的字符只能再图上画一划,例如:答案是book,第一次你猜a(未猜中)会在图上画一划,但第二次以后再猜a并不会再多画。
4.如果在hangman图完成之前,玩家已猜中所有答案中的字符,则玩家赢(win)。
5.如果玩家尚未猜中所有答案中的字符而hangman图完成了,,则玩家输(lose)。
6.如果玩家在还没输赢的情况之下就不玩了,那我们说玩家胆小放弃了(chicken out).
下面是我的代码:
#include <stdio.h>#include <string.h>#define MAXN 1010char s[MAXN], t[MAXN];int win, lose, chance, left, lens, lent;void guess(char c){ int bad, i; bad = 1; for(i=0; i<lens; i++) if(s[i] == c) { left--; if(left == 0) { win = 1; return; } s[i] = '\0'; bad = 0; } if(bad==1) { chance--; if(chance==0) lose=1; }}int main(void){ int n, i; while(scanf("%d%s%s", &n, s, t) != EOF) { if(n==-1) break; left = lens = strlen(s); lent = strlen(t); win = lose = 0; chance = 7; for(i=0; i<lent; i++) { guess(t[i]); if(win || lose) break; } printf("Round %d\n",n); if(win==1) printf("You win.\n"); else if(lose==1) printf("You lose.\n"); else printf("You chickened out.\n"); } return 0;}
0 0
- uva489Hangman Judge
- 算法竞赛入门经典 UVa489Hangman Judge
- judge
- Judge
- Online Judge
- Hangman Judge
- Online Judge
- Hangman Judge
- Hangman Judge
- Hangman Judge
- Hangman Judge
- Hangman Judge
- HDU_1073Online Judge
- Online Judge
- Online Judge
- Hangman Judge
- hrbust2214 Judge
- Hangman Judge
- 八大排序算法之堆排序
- 湖大C语言设计练习题
- css hack基础理解
- 颜色Colours的使用
- linux 命令复习
- uva489Hangman Judge
- ZOJ3607-Lazier Salesgirl (暴力)
- 斐波那契数列直接计算公式
- Android开发模式:MVP Vs MVVM
- sql的拼接
- Codeforces Round #409 (Div. 2) C. Voltage Keepsake 二分
- 关于分治消除删除操作影响的小记
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- miniui实现jsp主页面打开新页面(不同标签)方法总结