#include<stdio.h>
#include<string.h>
int ok ,no;
int left ,chance;
char s[20] ,s2[20];
void guess(char ch)
{
int i ,bad = 1;
for(i = 0;i < strlen(s);i++)
{
if(ch == s[i])
{
left--;
bad = 0;
s[i] = ' ';
}
}
if(bad) chance--;
if(!left)
{
ok = 1;
}
else if(!chance)
{
no = 1;
}
}
int main()
{
int rnd;
while(scanf("%d" ,&rnd) == 1 && rnd != -1)
{
scanf("%s %s" ,s ,s2);
ok = no = 0;
left = strlen(s);
chance = 7;
printf("Round %d\n" ,rnd);
int i;
for(i = 0;i < strlen(s2);i++)
{
guess(s2[i]);
if(ok || no) break;
}
if(ok)
{
printf("You win.\n");
}
else if(no)
{
printf("You lose.\n");
}
else
{
printf("You chickened out.\n");
} }
return 0;
}

1.大体思路是构思一个guess函数 让每一个猜测的字符和正确的字符串单个一一比较 如果一样的话 就让剩余要猜测的字符数量(left)减一;

不一样的就让猜测机会(chance)减一

但这思路有问题 导致我多次WA     猜错的时候让机会减一就有问题 因为不管每个猜测字符都要与所有正确字符比较 必然会有错误的 这样机会就会多减少很多 所以一开始不管我输入什么数据得出的结果都是You lose  应该设置一个一开始为真的bad 如果在正确字符串中找到一个和猜测字符一样的 就让bad为假 这样只要有一个一样的 bad就是假 没有一样的bad就为真 这样依靠bad来控制chance的加减就很nice

正确时也不能只让left减一 因为猜测字符可以重复(脑残设定)   要让猜对的字符消失 这样防止第二次猜上一次猜对的那个字符时 left多减了一倍

2.自定义函数和main函数里都要用的字符都要全局声明 不然就要用指针(不会

例题4-2 刽子手游戏(Hangman Judge, UVa 489)的更多相关文章

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

    刽子手游戏其实是一款猜单词游戏,游戏规则是这样的:计算机想一个单词让你猜,你每次可以猜一个字母.如果单词里有那个字母,所有该字母会显示出来:如果没有那个字母,则计算机会在一幅“刽子手”画上填一笔.这幅 ...

  2. Hangman Judge UVA - 489

    In ``Hangman Judge,'' you are to write a program that judges a series of Hangman games. For each gam ...

  3. UVa 489 Hangman Judge(字符串)

     Hangman Judge  In ``Hangman Judge,'' you are to write a program that judges a series of Hangman gam ...

  4. 4_2 刽子手游戏(UVa489)<自顶向下逐步求精法>

    Hangman Judge是一个猜英文单字的小游戏(在电子字典中常会看到),游戏规则如下:1.答案单字写在纸上(每个字元一张纸),并且被盖起来,玩家每次猜一个英文字元(letter).2.如果这个英文 ...

  5. [贪心]D. 【例题4】国王游戏

    D . [ 例 题 4 ] 国 王 游 戏 D. [例题4]国王游戏 D.[例题4]国王游戏 解析 贪心思想,考虑交换后的值比交换前的小. 然后数据规模用高精度 Code #include <b ...

  6. [递推]D. 【例题4】传球游戏

    D . [ 例 题 4 ] 传 球 游 戏 D. [例题4]传球游戏 D.[例题4]传球游戏 题目解析 设 t ( i , j ) t(i,j) t(i,j)为过了 j j j轮,轮到 i i i手上 ...

  7. UVa 489 HangmanJudge --- 水题

    UVa 489 题目大意:计算机给定一个单词让你猜,你猜一个字母,若单词中存在你猜测的字母,则会显示出来,否则算出错, 你最多只能出错7次(第6次错还能继续猜,第7次错就算你失败),另注意猜一个已经猜 ...

  8. UVa 489 刽子手游戏

    游戏规则,计算机想一个单词让你猜,你每次可以猜一个字母,如果单词里有那个字母,所有该字母都会显示出来,如果没有那个字母则计算机会在一副"刽子手"画上填一笔,这幅画一共需要7笔就能完 ...

  9. uva 489 Hangman Judge

    大意:电脑想个单词,玩家来猜.玩家输入一个个字母,若答案里有这个字母,则显示该单词中所有该字母.最终目标是显示答案所有字母.猜错7次,死: 注意特殊条件:1.玩家不断重复错误的字母,只算一次猜错.2. ...

随机推荐

  1. 高可用服务之Keepalived邮件通知配置

    上一篇博客我们了解了keepalived的架构以及安装.VIP的配置和高可用相关配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13634755.html: ...

  2. 4.FFMPEG-AVFrame

    在ffmpeg中,解码前的数据结构体为AVPacket(参考:3.AVPacket使用),而解码后的数据为AVFrame(视频的YUV, RGB, 音频的PCM,数据量更大) 1.AVFrame介绍 ...

  3. transition实现图片轮播

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  4. CSS -- 元素简介

    一.元素分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <div>.<p>.<h1 ...

  5. Python中的枚举enumerate

  6. sql中的join

    首先准备数据 有以下数据,三张表:role(角色表).hero(英雄表).skill(技能表),我们以英雄联盟的数据做示例 一个hero对应一个role(我们这里暂定) 一个role可以对应多个her ...

  7. 抢先学鸿蒙(HarmonyOS)2.0,你就是下一个大咖!

        1. 你不知道的鸿蒙(HarmonyOS)   2020年9月10日,华为开发者大会发布了鸿蒙(HarmonyOS)2.0.我在2020-9-11日也发布了全球首套鸿蒙2.0 App开发视频课 ...

  8. 你想要的Java资料这里都有!!!

    你想要的Java资料这里都有!!!  [复制链接]       1.资源标题:程序员的SQL金典(完整) 资源地址:http://down.51cto.com/data/2207566 2.资源标题: ...

  9. RCTF 2019 web

    写在正文前 神仙题,压根不会. 听说跟着神仙的思路走一遍印象会深点,Just mo it .2333 正文 nextphp 整体思路:phpinfo得知存在preload.php文件,并与opcach ...

  10. vsCode 搭建Java开发环境

    1.安装扩展 Java Extension Pack Spring Boot Extension Pack 2.配置Maven 打开设置 搜索maven 找到并打开  在 settings.json ...