• 刽子手游戏(Hangman Judge, UVa 489)


    刽子手游戏其实是一款猜单词游戏,游戏规则是这样的:计算机想一个单词让你猜,你每次可以猜一个字母。如果单词里有那个字母,所有该字母会显示出来;如果没有那个字母,则计算机会在一幅“刽子手”画上填一笔。这幅画一共需要7笔就能完成,因此你最多只能错6次。注意,猜一个已经猜过的字母也算错。

    在本题中,你的任务是编写一个“裁判”程 序,输入单词和玩家的猜测,判断玩家赢了 (You win.)、输了(You lose.)还是放弃了 (You chickened out.)。每组数据包含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.

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #define maxn 10010
    int    left,chance;  
    char s1[maxn],s2[maxn]; 
    int win,lose; 
    void guess(char a){ 
        int flag=0;
        for(int i=0;i<strlen(s1);i++){
            if(a==s1[i]) {
                s1[i]=' ',left--;
                flag=1;
            }    
        }
        if(!flag) chance--;
        if(!left) win=1;
        if(!chance) lose=1;
    }
    int main(){
        int count=0;
        while(1){
            scanf("%d",&count);        
            if(count==-1) break;
            scanf("%s%s",s1,s2);
            win=0;
            lose=0;
            printf("Round %d
    ",count);
            int n=strlen(s2);
            left=strlen(s1);
            //printf("%d
    ",left);
            chance=7;
            for(int i=0;i<n;i++){
                guess(s2[i]);
                if(lose||win) break;
            } 
            //guess(s1,s2);
            if(win)printf("You win.
    ");
            else if(lose) printf("You lose.
    ");
            else printf("You chickened out.
    ");
        }
        return 0;
    } 
  • 相关阅读:
    Screen-后台运行
    Env:ctags和Taglist安装与配置
    Env:Cscope安装与配置
    Env:VIM配置
    Env:zsh和fish安装和使用
    UIWebView与JS的深度交互-b
    利用Multipeer Connectivity框架进行WiFi传输-b
    iOS上绘制自然的签名-b
    1行代码为每个Controller自定义“TabBar”-b
    视频边下边播--缓存播放数据流-b
  • 原文地址:https://www.cnblogs.com/LOW-ctfer/p/10387779.html
Copyright © 2020-2023  润新知