uvaoj 489 - Hangman Judge(逻辑+写代码能力)

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=430

猜单词游戏。计算机给出一个字符串让你猜,每次猜一个字母。如果字符串中有那个字母,所有该字母都会显示出来。猜错7次就输了,全猜完算赢。到最后也没猜完,算放弃。

这题主要考逻辑能力。每次猜一个字母,就判断一次是已经赢了,还是输了。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int leftt,chance;//left表示还剩多少没有猜对,chance表示还有几次可以猜错
 4 char s[200],s2[200];
 5 int win,lose;
 6 void guess(char ch)
 7 {
 8     int bad=1;
 9     for(int i=0; i<strlen(s); i++)
10     {
11         if(ch==s[i])
12         {
13             leftt--;
14             s[i]=' ';
15             bad=0;
16         }
17     }
18     if(bad)chance--;
19     if(!leftt)win=1;
20     if(!chance)lose=1;
21 }
22 int main()
23 {
24     int rnd;
25     while(~scanf("%d",&rnd),rnd!=-1)
26     {
27         scanf("%s %s",s,s2);
28         printf("Round %d\n",rnd);
29         win=lose=0;
30         leftt=strlen(s);
31         chance=7;
32         for(int i=0; i<strlen(s2); i++)
33         {
34             guess(s2[i]);
35             if(win||lose)break;
36         }
37         if(win)printf("You win.\n");
38         else if(lose)printf("You lose.\n");
39         else
40             printf("You chickened out.\n");
41         memset(s,'\0',sizeof(s));
42         memset(s2,'\0',sizeof(s2));
43     }
44     return 0;
45 }

 

转载于:https://www.cnblogs.com/fqfzs/p/9947710.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值