C++PrimerPlus(第6版)中文版:Chapter16.1string类_16.3hangman.cpp
这是一个历史悠久的小游戏,早在维多利亚时代就已流行起来,规则简单且有趣,在7步之内猜出单词,否则小人将会“上吊”。
Hangman直译为“上吊的人”,是一个猜单词的双人游戏。由一个玩家想出一个单词或短语,另一个玩家猜该单词或短语中的每一个字母 [1] 。第一个人抽走单词或短语,只留下相应数量的空白与下划线。
通过这个例子可以学习string.find() 的用法.
代码如下:
hangman.cpp
// Example16.3hangman.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include <cctype>
using std::string;
const int NUM = 26;
const string wordlist[NUM] = { "apiary","beetle", "cereal",
"danger", "ensign", "florid", "garage", "health", "insult",
"jackal", "keeper", "loaner", "manage", "nonce","onset",
"plaid", "quilt", "remote", "stolid", "train", "useful",
"valid", "whence", "xenon", "yearn", "zippy" };
int main()
{//std::cout << "Hello World!\n";using std::cout;using std::cin;using std::tolower;using std::endl;std::srand(std::time(0));char play;cout << "Will you play a word game? <y/n>";cin >> play;play = tolower(play);while (play == 'y'){string target = wordlist[std::rand()%NUM];int length = target.length();string attempt(length,'-');string badchars;int guesses = 6;cout << "Guess my secret word. It has " << length << " letters, and you guess \n"<<"one letter at a time.You get "<<guesses<<"wrong guesses.\n";cout << "Your word: " << attempt << endl;while (guesses>0&&attempt!=target){char letter;cout << "Guess a letter: ";cin >> letter;if (badchars.find(letter) != string::npos || attempt.find(letter) != string::npos){cout << "You already guessed that. Try again. \n";continue;}int loc = target.find(letter);if (loc == string::npos){cout << "Oh,bad guess !\n";--guesses;badchars += letter;//add to string }else{cout << "Good guess!\n";attempt[loc] = letter;//check if letter appears again.loc = target.find(letter,loc+1);while (loc!=string::npos){attempt[loc] = letter;loc = target.find(letter,loc+1);}}cout << "Your word:" << attempt << endl;if (attempt != target){if (badchars.length() > 0) { cout << "Bad choices: " << badchars << endl; }cout << guesses << " bad guess left \n";}}//***以上是while 循环语句块***以上是while 循环语句块***以上是while 循环语句块***if (guesses > 0)cout << "That is right!\n";elsecout << "Sorry,the word is " << target << ".\n";cout << "Will you play another ? <y/n>";cin >> play;play = tolower(play);}cout << "Bye \n";return 0;
}
C++PrimerPlus(第6版)中文版:Chapter16.1string类_16.3hangman.cpp相关推荐
- C++PrimerPlus(第6版)中文版:Chapter16.4.6关联容器_setops.cpp
本小节主要讲set的使用方法. 关联容器将值和键关联在一起,并使用键来查找值. 关联容器的优点在于:它提供了对元素的快速访问.插入元素的时候,不需要指定插入位置,因为关联容器是排过序的,它知道新元素来 ...
- C++PrimerPlus(第6版)中文版:Chapter8.2.4_Example8.6strc_ref.cpp
引用非常适合于结构和类,下面的例子就演示了这一点. // Chapter8.2.4_Example8.6strc_ref.cpp.cpp : 此文件包含 "main" 函数.程序执 ...
- WCF服务编程(4):《WCF服务编程》第3版中文版翻译结束,即将出版
原文地址: <WCF服务编程>第4版本翻译完毕!2016年底应该出版 [置顶]↑ WCF服务编程(4):<WCF服务编程>第3版中文版翻译结束,即将出版 ↑ 作为世界范围内最经 ...
- python cookbook pdf下载-Python Cookbook 第3版 中文版.pdf
作 者 :(美)比斯利,(美)琼斯著 出版发行 : 北京:人民邮电出版社 , 2015.05 ISBN号 :978-7-115-37959-7 页 数 : 684 原书定价 : 108.00 开本 : ...
- C++Primer Plus第6版C Primer Plus第6版 中文版免费分享啦
最近在学习C++,用的资料是师兄分享的经典书籍<C++Primer Plus第6版中文版>的PDF,自带书签,使用很方便.但师兄说这个是他在网上花了积分才下载下来的,这让我很是吃惊,因为作 ...
- python学习手册-Python学习手册(第4版) 中文版.pdf
您所在位置:网站首页 > 海量文档  > 计算机 > Python Python学习手册(第4版) 中文版.pdf11 ...
- C Primer Plus(第5版)中文版
1. 在声明一个简单变量和数组时使用关键字const很简单.指针则要复杂一些,因为不得不把让指针本身成为const与让指针指向的值成为const区分开来.下面的声明表明pf指向的值必须是不变的: 但p ...
- UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订)...
UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订) 基本信息 原书名: Unix Network Programming, Vol ...
- C Primer Plus第六版(中文版)编程练习答案(完美修订版)汇总
//本文是博主编写的C Primer Plus第六版(中文版)编程练习答案的所有链接; //使用超链接汇总于此,若是有用请点赞收藏并分享给他人; C Primer Plus 第六版(中文版)第二章(完 ...
最新文章
- 十进制转换成十六进制c语言 链栈,C语言 链栈 实现十进制转换二进制,八进制,十六进制...
- 天昊生物16S扩增子绝对定量测序项目文章再次登陆《Science of the Total Environment》...
- nginx配置访问密码,让用户输入用户名密码才能访问
- dao接口有什么好处_Java后端精选技术:我们为什么要使用AOP?
- Office Communication Server(OCS) 2007存档和CDR的部署
- qtimer不触发原因_迷你世界:触发器玩法多,教你摆表情就能拥有满格血量
- 在windows上使用go编译dll文件,供C++调用
- LeetCode 174. 地下城游戏(DP)
- Qt:Qt实现飞秋拦截助手—ARP攻击
- ICCV2021 MIT-IBM沃森开源CrossViT:Transformer走向多分支、多尺度
- fusion按照多个centos,设置静态ip
- 模拟机安装linux教程,Windows 10利用虚拟机安装Linux图文教程
- 数十亿个 Wi-Fi 设备存在缺陷,通信易被窃听!
- Prometheus 的云上 MySQL 监控实践
- 大厂程序员手把手教你如何写简历(附简历模板)
- android 登录 service_如何优雅的实现自己的Android组件化改造?
- 国科大学习资料--高级软件工程-复习题设计题答案
- java 6面骰子_掷6面骰子6000次每个点数出现的概率
- 中轴型SpA的两种诊断分支具有可比性
- MATLAB(2)--MATLAB矩阵的表示