题目:刽子手游戏是一个简单的猜单词游戏,每次可以猜一个字母,如果单词内有这个字母,此单词内所有该字母都会显示,如果没有该字母,则记一笔错误,若满7笔错误,则输掉()猜已经猜出的单词也算错误)。本题编写一个裁判程序,题目要求玩家输入三行,第一行是游戏回合数,第二行是答案单词,第三行是玩家猜测单词,判断玩家赢了、输了、或放弃了。

题目解析:题意大致理解为对一个猜测的字符数组中的字母进行判断,是否是答案单词中有的。比如答案单词是cheese,猜测单词是chese,则赢了,因为猜测序列在猜错7次前将答案中所有的字母都找到了。

思路:创立全局变量chance和num分别代表还存在的猜测机会和仍需猜测的字母数量,在chance>0的时候作循环判断是否将答案的字母都猜到了,每猜到则num--直至num=0(赢了),或者chance=0(输了)。当然若chance!=0且num!=0却猜测结束时意味着玩家在还有机会的时候没有继续猜测,则放弃。

代码如下,以通过vj测试!

#include<iostream>
#include<string.h>
using namespace std;
#define maxn 1000
char s1[maxn], s2[maxn];    //答案串、玩家猜测串
int num, chance, flag;      //全局变量:计算需要猜的个数,还能猜的次数void guess(char*s1,char*s2)
{for (int i = 0; i < strlen(s2); i++){if (strchr(s1, s2[i]) != NULL){for (int k = 0; k < strlen(s1); k++){if (s1[k] == s2[i]){s1[k] = ' '; //猜到的字母赋0num--;if (num == 0)break;}}if (num == 0)break;}elsechance--;if (chance == 0)break;}if (num == 0 && chance > 0){cout << "You win." << endl;flag = 1;}else if (chance == 0){cout << "You lose." << endl;flag = 1;}}int main()
{int n;while (cin >> n){if (n == -1)return 0;flag = 0;cin >> s1 >> s2;num = strlen(s1);   //还需要猜的字母个数chance = 7;         //当chance为0时lose;当num为0而chance不为0时win;当chance不为0而num也不为0是chickened outcout << "Round " << n << endl;guess(s1, s2);if (flag)continue;elsecout << "You chickened out." << endl;}return 0;
}

C++ 刽子手游戏(Hangman Judge, UVa 489)(算法竞赛入门经典例题4-2)相关推荐

  1. 古老的密码(Ancient Cipher,UVa1339)(算法竞赛入门经典 例题4-1)C++

    题目:给定两个不超过100的字符串,判断是否可以做到将其中一个字符串通过重排和映射的操作,使得两个字符串相同.例如,JWPUDJSTVP重排后可以得到WJDUPSJPVT,然后每个字母只要通过一次映射 ...

  2. 算法竞赛入门经典 例题6-6 小球下落(python、C)

    同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 问题描述: 有一颗二叉树,最大深度为D,且所有叶子的深度都相同.所有结点从上到下从左到右编号为 1,2,3,- , ...

  3. 算法竞赛入门经典 例题6-2 铁轨(C、python)

    同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 问题描述: 某城市有一个火车站,铁轨铺设如图所示.有n节车厢从A方向驶入车站,按进站顺序编号为 1~n .你的任务 ...

  4. 算法竞赛入门经典 例题6-21

    UVa506 System Dependencies 编写程序实现类似Linux下的软件包管理器,其工作方式为: 可以通过命令显式安装组件,这个过程也可能隐式安装依赖组件 如果没有其它组件仍然依赖一个 ...

  5. 算法竞赛入门经典 例题6-16

    刷题荒废了一个多月,今日了却一件事情,把此题补上! UVa10129 Play on Words 有若干个圆盘,每个圆盘上都有一个单词,判断这些圆盘是否能排成一排,使得相邻圆盘的首尾字母相同. 3年前 ...

  6. Java实现算法竞赛入门经典例题-蚂蚁

    问题描述 一根长度为L厘米的木棍上有n只蚂蚁,每只蚂蚁要么朝左爬,要么朝右爬,速度为1厘米/秒. 当两只蚂蚁相撞时,二者同时掉头(掉头时间忽略不计). 给出每只蚂蚁的初始位置和朝向,计算T秒之后每只蚂 ...

  7. UVA-814 邮件传输代理的交互 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 #include<iostream> #include< ...

  8. UVA-12171 雕塑 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 这道题目在<算法竞赛入门经典第二版>书中标注了星号,也是第一道出现星号的 ...

  9. UVA-1598 交易所 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 有意思的一个题目.书上说这是一个不错的优先队列练习题,但实际上它其实是一个 ...

最新文章

  1. 小程序十一:网络请求
  2. Python科学计算扩展库NumPy之np.array()与np.asarray()区别
  3. GMIS 2017大会Wesly Mukai演讲:智能运输的未来
  4. 【python】队列——用顺序表实现队列操作
  5. C++单链表的建立和遍历
  6. 理解Go Interface
  7. 2020将至,谈谈中小企业创业的那些事儿
  8. Blazor编辑表单状态控件
  9. 我又发现一个直接就能安装中文小红帽的方法
  10. 游戏筑基开发之双链表及其基本功能(C语言)
  11. ActionBarSherlock学习笔记 第一篇——部署
  12. 我的世界有宠物系统服务器,我的世界:如果Minecraft加入战斗宠物系统,推荐5大最强生物!...
  13. VMware 12 许可密钥
  14. window10安装vnc无法使用,window10安装vnc无法使用的原因和解决办法
  15. 笔记本电脑频繁自动重启_笔记本电脑总是自动重启怎么回事
  16. OSChina 周六乱弹 ——致敬默默守护国运的男人们
  17. 红帽子企业Linux 5安装序列号
  18. NDB Cluster 基本介绍
  19. JS判断是否含有某个字段
  20. 配置Json-Server

热门文章

  1. 可变分区管理分配算法
  2. Python使用WMI获取主板和CPU序列号
  3. 36管四轮电动车控制器代码, 原理图和Pcb,完整可用。
  4. 强连通分量的个数(Kosaraju)
  5. steam++下载(最新,2023年)
  6. 记一次SpringBoot解决CROS跨域问题(CROS)
  7. 【AI】微软人工智能学习笔记(三)
  8. STM32+RTThread串口不定长接收
  9. 三, Spark 四种运行环境配置总结
  10. 直播系统app源码经验分享——直播系统PK功能介绍