这个题目确实很简单,但是作者的方法更加简单,本来自己想将所有的字母先标记,然后判断的时候把遇到判断删除的字母标记去掉,这样想法要再开一个数组,但是作者想法很不错,直接将满足条件可是删掉的字母改成空格,这样即满足去掉标记又满足后面判断要求~
题目
题目:猜单词游戏, 游戏规则:计算机想一个单词让玩家猜,玩家每次可以猜一个字母。 如果单词里有那个字母,单词中的所有该字母都算猜对;如果没有那个字母,则猜错一次,最多只能错6次。 注意,猜一个已经猜过的字母也算错。输入给出正确单词和玩家的猜测,判断玩家赢、 输还是放弃。 每组数据包含3行,第1行是游戏编号(-1为输入结束标记),第2行是计算机想的单词,第3行是玩家的猜测。 后两行保证只含小写字母。
样例输入
1
cheese
chese
2
cheese
abcdefg
3
cheese
abcdefgij
-1
样例输出
Round 1
You win.
Round 2
You chickened out.
Round 3
You lose.
关键点:
1.对于猜对的字母的处理.
2.对于赢,输和放弃的满足条件不清楚.
(ps.如果将所有的字母都猜完了,且此时没有错过7次及以上,就算赢
如果错误到达7次,就算输了;其它的算放弃了~)
关键代码
void guess(char ch)
{
int flag=1;
for(int i=0;i<l1;i++)
if(s1[i]==ch)
{
sum--;
s1[i]=' ';
flag=0;
}