码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 489 Hangman Judge

时间:2015-06-09 23:30:58      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

题目大意:
这是一个猜单词的游戏。
输入回合数(但回合数为-1的时候停止)
再输入一个待猜的单词B
最后输入你猜的单词组合A。

这个猜单词比较有意思的地方是他一个一个判断。
从你输入的A中,按照顺序一个一个字母来判断。
当B中有这个字母的时候,这个字母就被标记(所有在B中相同的都被标记)。
当B中没有这个字母的时候,就统计一次错。

若 所以字母都被标记了则获胜, 错误达到7次则失败。
若 判断完错误还不足7次, 也没标记完,则视为放弃。

★一定要注意是一个一个判断

Sample Input

1
cheese
chese
2
cheese
abcdefg
3
cheese
abcdefgij
-1

Sample Output

Round 1
You win.
Round 2
You chickened out.
Round 3
You lose.

代码如下:

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. using namespace std;
  5. int main () {
  6. int times;
  7. while (scanf("%d", &times) == 1 && times != -1) {
  8. char s[100];
  9. int a[26] = {0}, b[26] = {0};
  10. scanf("%s", s);
  11. int len = strlen(s);
  12. for (int i = 0; i != len; ++i)
  13. a[s[i] - ‘a‘] = 1;
  14. scanf("%s", s);
  15. len = strlen(s);
  16. int cnt = 0;
  17. bool flag = false;
  18. for (int i = 0; i != len; ++i) {
  19. if (!a[s[i] - ‘a‘]) {
  20. if (++cnt >= 7) {
  21. printf("Round %d\nYou lose.\n", times);
  22. flag = true;
  23. break;
  24. }
  25. }
  26. else {
  27. a[s[i] - ‘a‘] = -1;
  28. bool ok = true;
  29. for (int j = 0; j != 26; ++j) {
  30. if (a[j] == 1) {
  31. ok = false;
  32. break;
  33. }
  34. }
  35. if (ok) {
  36. printf("Round %d\nYou win.\n", times);
  37. flag = true;
  38. break;
  39. }
  40. }
  41. }
  42. if (!flag)
  43. printf("Round %d\nYou chickened out.\n", times);
  44. }
  45. return 0;
  46. }

题目还是比较水的。




UVa 489 Hangman Judge

标签:

原文地址:http://www.cnblogs.com/liangyongrui/p/4564696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!