【C++】命令行Hangman #2015年12月15日 00:20:27
增加了可以在构造Hangman对象时通过传入参数设定“最大猜测次数”的功能。少量修改。# 2015年12月15日 00:20:22
https://github.com/shalliestera/hangman
// 猜单词游戏
#ifndef HANGMAN_H_
#define HANGMAN_H_
#include <string>
class Hangman {
public:
// 可以在创建时确定最大猜错次数
explicit Hangman(int chances = 6); // ctors
// Guess()是主要操作
void Guess();
private:
// 内置单词表[a-z] # word list, from a to z
static const int NUM = 26;
const char* 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"
};
// ---
std::string m_word; // 保存随机选中的单词 # store the randomly choosing word
std::string m_show; // 保存猜对的的字母,同时是提示 # correctly guessing
std::string m_wrong; // 保存猜错的字母 # wrong guessing
int m_chances; // 最多可以猜错的次数 # max chances
int m_usrChances; // 构造时传入的次数 #
// ---
// private methods # 不公开的内部方法
void init(int chances = 6); // 初始化
void Check(char ch); // 检查字母对不对
void YouWin();
void GameOver();
const std::string& RightWord() const {return m_word;}
const std::string& YouGuess() const {return m_show;}
void Tips() const;
};
#endif // HANGMAN_H_
单词部分借用了过去写的,重新写了一个命令行下的Hangman。
https://github.com/shalliestera/hangman
// 猜单词游戏
#ifndef HANGMAN_H_
#define HANGMAN_H_
#include <string>
class Hangman {
private:
static const int NUM = 26;
const char* 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"
};
std::string m_word; // 保存随机选中的单词
std::string m_show; // 保存猜对的的字母,同时是提示
std::string m_wrong; // 保存猜错的字母
int m_chances;
// private methods # 不公开的内部方法
void init(int chances = 6); // 初始化
void Check(char ch); // 检查字母对不对
void YouWin();
void GameOver();
const std::string& RightWord() const {return m_word;}
const std::string& YouGuess() const {return m_show;}
public:
explicit Hangman(int chances = 6); // ctors
// 猜中则返回true, 猜错返回false
void Guess();
void Tips() const;
};
#endif // HANGMAN_H_
【C++】命令行Hangman #2015年12月15日 00:20:27的更多相关文章
- 2015年12月28日 Java基础系列(六)流
2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流
- 2015年12月13日 spring初级知识讲解(四)面向切面的Spring
2015年12月13日 具体内容待补充...
- 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)
作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...
- 我的Python成长之路---第一天---Python基础(作业1:登录验证)---2015年12月26日(雾霾)
作业一:编写登录接口 输入用户名密码 认证成功系那是欢迎信息 输错三次后锁定 思路: 1.参考模型,这个作业我参考了linux的登录认证流程以及结合网上银行支付宝等锁定规则 1)认证流程参考的是Lin ...
- 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)
2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...
- Network Real Trace Analysis 2015年12月10日
了解网络中真实的流量,国内很难找到巨人的肩膀. WAND是新西兰waikato 大学计算机系的研究小组,主要做网络测量,大规模网络流量捕获,网络分析.还做专业的分析软件. libtrace是其开源的分 ...
- AHKManager.ahk AHK管理器 2019年12月15日
AHKManager.ahk AHK管理器 2019年12月15日 快捷键 {Alt} + {F1} ///////////////////////////////////////////// ...
- 2016年12月15日 星期四 --出埃及记 Exodus 21:10
2016年12月15日 星期四 --出埃及记 Exodus 21:10 If he marries another woman, he must not deprive the first one o ...
- 北京Uber优步司机奖励政策(12月15日)
用户组:人民优步及电动车(适用于12月15日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:htt ...
随机推荐
- indeed 第二次笔试题
1. Maximal Values 很简单,从前往后扫,找满足的,O(n),很容易就过掉了. maxn = 100. 没啥难点. 2. Bi-gram 用map统计个数,从前往后扫,每2个字符作为一个 ...
- 7zS.sfx RunProgram with parameters
Config.txt as below: Pay attention to this \" ;!@Install@!UTF-8! RunProgram="setup.exe&qu ...
- MFC: Create Directory
Original link: How to check if Directory already Exists in MFC(VC++)? MSDN Links: CreateDirectory fu ...
- (转)使用inotify、inotify_add_watch、inotify_rm_watch、read编写监控程序
转自:http://blog.csdn.net/myarrow/article/details/7096460 inotify是什么 inotify是文件系统变化通知机制,在监听到文件系统变化后,会向 ...
- 九度OJ 1442 A sequence of numbers
题目地址:http://ac.jobdu.com/problem.php?pid=1442 题目描述: Xinlv wrote some sequences on the paper a long t ...
- Sublime Text 3插件安装方法
安装Sublime Tex 3t插件的方法: 按快捷键Ctrl + ~ 调出console 粘贴以下代码到console并回车: import urllib.request,os; pf = 'Pac ...
- JEECG开发总结
一:datagrid列表 (1)时间:<t:dgCol title="创建时间" field="createtime" width="60&qu ...
- 如何让VS2012同时调试2个项目
- hdu 2844 poj 1742 Coins
hdu 2844 poj 1742 Coins 题目相同,但是时限不同,原本上面的多重背包我初始化为0,f[0] = 1;用位或进行优化,f[i]=1表示可以兑成i,0表示不能. 在poj上运行时间正 ...
- hdu 2767 Proving Equivalences
Proving Equivalences 题意:输入一个有向图(强连通图就是定义在有向图上的),有n(1 ≤ n ≤ 20000)个节点和m(0 ≤ m ≤ 50000)条有向边:问添加几条边可使图变 ...