AOAPC I: Beginning Algorithm Contests (Rujia Liu) ::Volume 0. Getting Started
Description
一个人被判死刑,但是要执刑之前,他还有一次玩游戏得生存的机会。
他要玩一个猜字符游戏,出题人给一个单词,要求猜出单词中出现的字符。
他只有7次猜错的机会。
输入他猜的字符,输出他游戏的结果(赢了、输了还是游戏还未结束)。
Type
Water
Analysis
用一个bool数组记录有哪些字符出现,然后模拟猜测过程。
一旦出结果就直接弹出,如果整个字符串猜完后都未出结果,那就是没结果……
Solution
// UVaOJ 489 // Hangman Judge // by A Code Rabbit #include <cstdio> #include <cstring> int num_round; char solution[10000]; char guess[10000]; bool letter[26]; int main() { while (scanf("%d", &num_round) && num_round != -1) { getchar(); gets(solution); gets(guess); memset(letter, false, sizeof(letter)); int cnt_letter = 0; for (int i = 0; i < strlen(solution); i++) if (!letter[solution[i] - 'a']) { letter[solution[i] - 'a'] = true; cnt_letter++; } int cnt_wrong = 0; bool end = false; for (int i = 0; i < strlen(guess); i++) { if (letter[guess[i] - 'a']) { cnt_letter--; letter[guess[i] - 'a'] = false; } else { cnt_wrong++; } if (!cnt_letter || cnt_wrong >= 7) { printf("Round %d\n", num_round); printf("%s\n", cnt_letter ? "You lose." : "You win."); end = true; break; } } if (!end) printf("Round %d\nYou chickened out.\n", num_round); } return 0; }