UVa 489 Hangman Judge

题目大意:
这是一个猜单词的游戏。
输入回合数(但回合数为-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)