#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. Java中枚举的用法

    public enum Week { DAY1("周一", 0.9), DAY2("周二", 0.9), DAY3("周三", 0.8), ...

  2. [PyTorch 学习笔记] 6.2 Normalization

    本章代码: https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson6/bn_and_initialize.py https: ...

  3. Readme for Software engineering

    作业任务: 软件工程 软件工程 作业要求 作业要求 作业目标 博客园.github注册 自我介绍 软工5问 自我介绍: 广东工业大学计算机学院18级信息安全二班 广东工业大学AD攻防工作室成员& ...

  4. Hexo + Github Pages搭建个人网站主页

    1.GitHub创建个人仓库 登录GitHub创建账号,同时拥有一个自己设定的用户名(username).点击New Repositories创建仓库.仓库名必须为username.github.io ...

  5. 动手编写—动态数组(Java实现)

    目录 数组基础回顾 自定义动态数组 动态数组的设计 抽象父类接口设计 抽象父类设计 动态数组之DynamicArray 补充数组缩容 全局的关系图 声明 数组基础回顾 1.数组是一种常见的数据结构,用 ...

  6. 第3章 01 python数字类型即操作

    浮点数类型 通过round函数比较浮点数之间的比较关系 复数类型 数值运算函数 小结 天天向上的力量 千分之一的力量 千分之五和百分之一的力量 在1的基础上增加天天向上的参数 在1的基础上减去天天向下 ...

  7. linux之磁盘整理

    yum安装的时候报错没有磁盘空间,需要整理 就需要查看下目前的磁盘使用情况 首先是df -hl查看从磁盘使用 可以到根目录下看看文件夹大小 du -sh * 或者下面的命令 接下来我们要删除东西整理磁 ...

  8. CCNP:重发布及实验

    重发布(又:重分布.重分发):一台设备同时运行于两个协议或两个进程,默认从两端学习到的路由条目不共享:重发布技术就是人为的进行共享. 一  满足: 1.必须存在ASBR --- 自治系统边界路由器-- ...

  9. 转载:pycharm IDE 导入自定义模块

    http://www.mamicode.com/info-detail-2241193.html

  10. Cookies题解

    来源:<算法竞赛进阶指南> Describe: 有M块饼干要分给N个孩子.当有k个孩子分到的饼干数比第i个孩子分到的多时,会产生g[i]*k的贡献.求最小的贡献及任意一种方案. Solut ...