uva489

题意见紫书

代码很久以前写,不太简洁

因此再贴一个刘汝佳代码

#include<iostream>
#include<cstring>
using namespace std;
const int N=26;
int vis[10][N];
bool flag;
bool sum(int *a)
{
    for(int i=0;i<N;i++)
    if(a[i]) return false;
    return true;
}
int main()
{
    int loop,ans=0,cnt;
    string str;
    while(cin>>loop&&loop>0)
    {
        flag=false;
        memset(vis,0,sizeof(vis));
        cin>>str;
        for(int i=0;i<str.length();i++)
        {
            vis[0][str[i]-‘a‘]=1;
            vis[1][str[i]-‘a‘]=1;
            vis[2][str[i]-‘a‘]=1;
        }
        cin.clear();
        cin>>str;
        cnt=0;

        for(int i=0;i<str.length();i++)
        {
            if(vis[1][str[i]-‘a‘]) vis[1][str[i]-‘a‘]=0;
            if(vis[2][str[i]-‘a‘]==0) cnt++,vis[2][str[i]-‘a‘]=1;
            if(cnt==7) {
                cout<<"Round "<<loop<<endl;
                cout<<"You lose."<<endl;
                flag=1;break;
            }
            if(sum(vis[1])) {
                cout<<"Round "<<loop<<endl;
                cout<<"You win."<<endl;
                flag=1;break;
            }
        }
        if(!flag)
        {
            cout<<"Round "<<loop<<endl;
            cout<<"You chickened out."<<endl;
        }
    }
}

刘汝佳

// UVa489 Hangman Judge
// Rujia Liu
#include<stdio.h>
#include<string.h>
#define maxn 100
int left, chance;
char s[maxn], s2[maxn];
int win, lose;

void guess(char ch) {
  int bad = 1;
  for(int i = 0; i < strlen(s); i++)
    if(s[i] == ch) { left--; s[i] = ‘ ‘; bad = 0; }
  if(bad) --chance;
  if(!chance) lose = 1;
  if(!left) win = 1;
}

int main() {
  int rnd;
  while(scanf("%d%s%s", &rnd, s, s2) == 3 && rnd != -1) {
    printf("Round %d\n", rnd);
    win = lose = 0;
    left = strlen(s);
    chance = 7;
    for(int i = 0; i < strlen(s2); i++) {
      guess(s2[i]);
      if(win || lose) break;
    }
    if(win) printf("You win.\n");
    else if(lose) printf("You lose.\n");
    else printf("You chickened out.\n");
  }
  return 0;
}

原文地址:https://www.cnblogs.com/033000-/p/10037368.html

时间: 2024-10-14 01:15:58

uva489的相关文章

UVA489 Hangman Judge

题意:给一个小写字母序列,然后猜测一串序列,每猜到一个字母第一个序列的所以这个字母就显示出来,如果没有猜到就画一笔,画到七笔后就算输,所有字母都显示出来后就算赢,如果没画到7笔并且用来猜测的序列字母已用完,则输出You chickened out #include <iostream> #include<stdio.h> #include<string> #include<cstring> #include<cmath> #include<

uva489 Hangman Judge (模拟)

题目链接: 啊哈哈,选我选我 思路是:对猜测的字符串进行扫描..看最后猜错的次数是不是大于等于7,还有就是已经踩过的数字在猜算错误,所以用map判一下重即可..如果知道这个坑,那么就是水马题.  Hangman Judge  In ``Hangman Judge,'' you are to write a program that judges a series of Hangman games. For each game, the answer to the puzzle is given

【紫书】uva489&#183;坑OJ

题目链接:https://vjudge.net/problem/UVA-489 题意:给出两行字符串,第一行是标准答案,第二行是玩家猜的串.玩家每次猜一个,猜对一个,标准答案中所有该字符都算被猜到.猜错的次数不能到达七次.多次因同一个字符猜错算猜错一次(这个条件没有用). 猜对,没猜对且错了七次,没猜对但还没错到七次 分别输出 You win. You lose. You chickened out. 题解:模拟,莫名奇妙wa了一个小时.各种修改. 以至于找到了一组数据,oj检测不出来,手算明显

uva-489 刽子手游戏

[刽子手游戏]规则如下: 计算机想一个单词让你猜,你每次可以猜一个字母,如果单词里有这个字母,所有该字母都会显示出来: 如果没有那个字母,计算机将会在一幅"刽子手"画上面画上一笔,这幅画只需要7笔就能完成, 所以你最多只能猜错6次,不然就输定了! 注意:猜一个已经猜过的字母也算猜错. 这个题是要求我们写一个裁判程序.多组输入,每组输入有三行,第一行是1个数,第二行是计算机给出的单词,第三行是玩家的猜测. 代码如下: #include<cstdio> #include<

uva489(需要考虑周全)

这个题是简单题,但是我的思路本身不周全,忽略了一种比较“无理”的情况,而导致WA多次.我是把猜的串全扫一遍以后判断出结果,但是实际上可能是前面已经全猜对了,但是这个选手是个逗比,已经猜对了还要猜,而且后面还又猜错了几次,导致最后猜错的总次数大于7.这种情况下应该也算win的.所以如果已经全猜对了,就跳出,不要再看g串后面的了.这种不太正常的输入也是符合题目要求的,不能不考虑.以后要注意这些陷阱. #include<iostream> #include<cstdio> #includ

刽子手游戏(UVa489)

题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=430 C++11代码如下: 1 #include<iostream> 2 #include<string.h> 3 using namespace std; 4 char ans[100], test[100]; 5 6 int main() { 7

算法练习(一)

昨天是个值得纪念的日子,我数学建模拿了推荐国家一等奖的名额,希望最后能顺利拿到国一吧.现在大三已经开学一个月了.这一个月因为社会实践评优的事情真的很忙,还好最后拿到了可能拿到的所有的奖项.结果自己把科研助手这件事给耽误了,今天去找马老师,结果马老师的实验室人已经满了.所以没办法,我可能又要去找其他老师了. 今年国家奖学金的名额里面没有我,没有就算了吧.卧薪尝胆,好好学习,这一学期至关重要.所以自己现在就要开始准备保研的机试,现在的训练非常重要,无论如何,这是自己未来要走的一步路.我现在最重要的就

UVa 489 Hangman Judge(字符串)

 Hangman Judge  In ``Hangman Judge,'' you are to write a program that judges a series of Hangman games. For each game, the answer to the puzzle is given as well as the guesses. Rules are the same as the classic game of hangman, and are given as follo

算法竞赛入门经典 第四章

[√ ] UVA1339 古老的密码 Ancient Cipher [√ ] UVA489 刽子手的游戏 Hangman Judge [√ ] UVA133 救济金发放 The Dole Queue [√ ] UVA213 信息解码 Message Decoding [√ ] UVA512 追踪电子表格中的单元格 Spreadsheet Tracking [√ ] UVA12412 师兄帮帮忙 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)