游戏规则,计算机想一个单词让你猜,你每次可以猜一个字母,如果单词里有那个字母,所有该字母都会显示出来,如果没有那个字母
则计算机会在一副“刽子手”画上填一笔,这幅画一共需要7笔就能完成,因此你最多只能错6次。注意猜一个已经猜过的字母也算错。
在本题中,你的任务是编写一个“裁判”程序,输入单词和玩家的猜测,判断玩家赢了,(You win.)、输了(You lose.)、还是放弃了(You chickened out.)
每组包含3行,第一行是游戏编号(-1为输入结束标记),第2行是计算机想的单词,第3行是玩家的猜测。后两行保证只含小写字母。

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

①首先要注意设置好全局变量。

②strlen()所返回的是无符号值,所以如果int i, i<strlen()会出错,所以在声明时加上unsigned。

UVa 489 刽子手游戏的更多相关文章

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

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

  2. UVa 489 HangmanJudge --- 水题

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

  3. UVa 489,紫书P79,刽子手游戏

    题目链接:https://uva.onlinejudge.org/external/4/489.pdf 这个题很像之前的一个拓扑排序的题目,思路类似咯. 程序模块化: 每次判断一个字母,lose,wi ...

  4. 例题4-2 刽子手游戏(Hangman Judge, UVa 489)

    #include<stdio.h> #include<string.h> int ok ,no; int left ,chance; char s[20] ,s2[20]; v ...

  5. uva 489 Hangman Judge

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

  6. uva 489.Hangman Judge 解题报告

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  7. UVA 489 Hangman Judge (字符匹配)

    题意:给一个字符串A,只含小写字符数个.再给一个字符串B,含小写字符数个.规则如下: 1.字符串B从左至右逐个字符遍历,对于每个字符,如果该字符在A中存在,将A中所有该字符删掉,若不存在,则错误次数+ ...

  8. uva 489 Hangman Judge(水题)

    题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&am ...

  9. UVA 11249 - Game(游戏)

    UVA 11249 - Game 题目链接 题意:两堆石头.a和b.每次能取一堆随意数量,或者两堆同一时候取.可是绝对值差不能超过k,最后不能取的人输,问先手能否赢 思路:先如果(a, b)石子,a是 ...

随机推荐

  1. 根据IP定位获取城市代码

    public String getCityID() throws IOException{ URL url = new URL("http://61.4.185.48:81/g/" ...

  2. android 回调函数

    http://blog.csdn.net/xiaanming/article/details/8703708 此为回调的java 实例 http://www.cnblogs.com/qingchen1 ...

  3. 【转】Linux下nginx配置https协议访问的方法

    一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...

  4. Hadoop 重启各个节点

    对于datanode可以在master中配置,然后在maste启动的时候,一并去启动这些节点 .对于死掉的节点,也可以通过以下命令启动 .重启挂掉的节点进入到 挂掉的机器 bin/hadoop-dae ...

  5. SharePoint 2013 开发——APP安全模型

    博客地址:http://blog.csdn.net/FoxDave 除非开启了SharePoint网站的匿名访问,否则对于入站的请求,必须要有一个身份验证的过程(Authentication),这个 ...

  6. SharePoint 2013 Nintex Workflow 工作流帮助(五)

    博客地址 http://blog.csdn.net/foxdave 工作流动作 4. Assign To-Do Task(User interaction分组) 直观理解,指派待办任务给一个或多个用户 ...

  7. iOS 网络判定

    由于流量精灵需要在 蜂窝数据或者3G 环境下进行流量监控因此需要判定3G 环境 将 SystemConfiguration.framework 添加进工程: 引入头文件 #import <Sys ...

  8. 2014年2月份第4周51Aspx源码发布详情

    AM自定义报表管理系统源码  2014-2-28 [VS2010]源码描述: 本系统有以下特色之处: 1.一套软件,多点登陆,根据权限不同共同管理报表,适应于前期获取客户需求报表字段使用. 2.客户自 ...

  9. 《day10》

    //65-面向对象-接口-接口的思想 /* 举例:笔记本电脑. 1,接口的出现对功能实现了扩展. 2,接口的出现定义了规则. 3,接口的出现降低了耦合性.(解耦) 接口的出现完成了解耦,说明有两方,一 ...

  10. vi中的批量替换

    举个例子啊: 将文件tihuan(假设此文本中字符a)中的所有字符a换成字符w,其命令为: 1.vi tihuan 2.按esc键 3.按shift+: 4.在:后输入    %s/a/w/g 就ok ...