uva 489 Hangman Judge
大意:
电脑想个单词,玩家来猜。
玩家输入一个个字母,若答案里有这个字母,则显示该单词中所有该字母。
最终目标是显示答案所有字母。
猜错7次,死;
注意特殊条件:
1.玩家不断重复错误的字母,只算一次猜错。
2.如果答案是ans,读入了ansjklzxcv,这种情况算win的。虽然后面错误了7次,但游戏已经在猜出ans时提前结束了。。。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std; const int maxalp=;
const int maxl=;
bool unguessed[maxalp];
bool alreadygussedwrong[maxalp];
int cnt;
char ans[maxl],guess[maxl];
int rnd;
int la,lg;
int ungcnt;
bool lose=false;
bool chickenedout=false;
bool insguess=false;
int main()
{
while(scanf("%d",&rnd))
{
if(rnd==-)break;
memset(unguessed,false,sizeof(unguessed));
memset(alreadygussedwrong,false,sizeof(alreadygussedwrong));
memset(ans,,sizeof(ans));
memset(guess,,sizeof(guess));
cnt=;
lose=false;
chickenedout=false;
insguess=false;
ungcnt=; printf("Round %d\n",rnd);
scanf("%s%s",ans,guess);
la=strlen(ans);
lg=strlen(guess);
for(int i=;i<la;i++)
if(!unguessed[ans[i]-'a'])
{
unguessed[ans[i]-'a']=true;
ungcnt++;
}
for(int i=;i<lg;i++)
{
int ch=guess[i]-'a';
if(unguessed[ch])
{
unguessed[ch]=false;
ungcnt--;
}
else if(!alreadygussedwrong[ch])
{
cnt++;
alreadygussedwrong[ch]=true;
}
if(!ungcnt)
{
printf("You win.\n");
insguess=true;
break;
}
if(cnt==)
{
printf("You lose.\n");
lose=true;
break;
}
}
if(!lose&&!insguess)
for(int i=;i<maxalp;i++)
if(unguessed[i])
{
printf("You chickened out.\n");
chickenedout=true;
break;
}
if(!lose&&!chickenedout&&!insguess)
printf("You win.\n");
} return ;
}
uva 489 Hangman Judge的更多相关文章
- UVa 489 Hangman Judge(字符串)
Hangman Judge In ``Hangman Judge,'' you are to write a program that judges a series of Hangman gam ...
- uva 489.Hangman Judge 解题报告
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- uva 489 Hangman Judge(水题)
题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&am ...
- UVA 489 Hangman Judge (字符匹配)
题意:给一个字符串A,只含小写字符数个.再给一个字符串B,含小写字符数个.规则如下: 1.字符串B从左至右逐个字符遍历,对于每个字符,如果该字符在A中存在,将A中所有该字符删掉,若不存在,则错误次数+ ...
- uvaoj 489 - Hangman Judge(逻辑+写代码能力)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- Hangman Judge UVA - 489
In ``Hangman Judge,'' you are to write a program that judges a series of Hangman games. For each gam ...
- UVa 489 HangmanJudge --- 水题
UVa 489 题目大意:计算机给定一个单词让你猜,你猜一个字母,若单词中存在你猜测的字母,则会显示出来,否则算出错, 你最多只能出错7次(第6次错还能继续猜,第7次错就算你失败),另注意猜一个已经猜 ...
- UVA.12169 Disgruntled Judge ( 拓展欧几里得 )
UVA.12169 Disgruntled Judge ( 拓展欧几里得 ) 题意分析 给出T个数字,x1,x3--x2T-1.并且我们知道这x1,x2,x3,x4--x2T之间满足xi = (a * ...
- UVA 12169 Disgruntled Judge 扩展欧几里得
/** 题目:UVA 12169 Disgruntled Judge 链接:https://vjudge.net/problem/UVA-12169 题意:原题 思路: a,b范围都在10000以内. ...
随机推荐
- DAL.SQLHelper 的类型初始值设定项引发异常的处理
这是DAL.SQLHelper的类中定义了sql连接字符串,但是在web.config中没有定义,在类判断获取的字符串是否为空,或是在web.config添加相应的连接字符串.
- Making my own Autonomous Robot in ROS / Gazebo, Day 1: Building the static model
Day 1: Setting up ROS: Indigo OS: Ubuntu 14.04 OS: Gazebo 7.0.0 Initialize the workspace To create t ...
- 月薪3万的程序员告诉你:这样工作才能拿高薪(转 IT之家)
习惯即刻回报 他不懂得只有春天播种,秋天才会有收获.刚刚付出一点点,甚至还没有付出,就想要得到回报.技术刚刚掌握,能一边百度一边干活了就觉得该拿到多少多少钱了.找工作先想着多少多少钱,入职了没干几个月 ...
- Nodejs学习总结 -Express入门(一)
Express是基于Node.js平台开发的Web应用开发框架,下面我们入手学习. 官网 : http://www.expressjs.com.cn/ github:https://github.co ...
- iOS - SQLite 数据库存储
1.SQLite 数据库 SQLite 是一种轻型的嵌入式数据库,安卓和 iOS 开发使用的都是 SQLite 数据库.它占用资源非常低,在嵌入式设备中,可能需要几百 K 的内存数据就够了.他的处理速 ...
- 参考__Linux
教程 billie66.github.iocentos下配置vsftpd虚拟用户教程Linux命令大全ubuntu14.04 配置vsftp 实用技能 移动 Ubuntu16.04 桌面左侧的启动器到 ...
- POI2005Bank notes银行货币
Description Byteotian Bit Bank (BBB) 拥有一套先进的货币系统,这个系统一共有n种面值的硬币,面值分别为b1, b2,..., bn. 但是每种硬币有数量限制,现在我 ...
- MAC usb启动盘制作
1.从App Store 下载OS 2.磁盘工具格式化磁盘默认即可 3. 为啥截图,因为有些是不一样的,建议使用 Tab建, 未命名则是你移动U盘命名的名称. 4.完成:所有的命令完成的话, 终 ...
- 真核转录组(denovo/resequencing)及案例分析
参考: 转录组文章的常规套路 文章解读:<Science>小麦转录组研究文章 转录组数据饱和度评估方法 Paper这个东西是多么的诱人,可以毕业,可以评职称,可以拿绩效. 现在的文章都是有 ...
- struts中Cookie实现记住密码
HttpServletRequest request = ServletActionContext.getRequest(); Cookie[] cookies = request.getCookie ...