增加了可以在构造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的更多相关文章

  1. 2015年12月28日 Java基础系列(六)流

    2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流

  2. 2015年12月13日 spring初级知识讲解(四)面向切面的Spring

    2015年12月13日 具体内容待补充...

  3. 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)

    作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...

  4. 我的Python成长之路---第一天---Python基础(作业1:登录验证)---2015年12月26日(雾霾)

    作业一:编写登录接口 输入用户名密码 认证成功系那是欢迎信息 输错三次后锁定 思路: 1.参考模型,这个作业我参考了linux的登录认证流程以及结合网上银行支付宝等锁定规则 1)认证流程参考的是Lin ...

  5. 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

    2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...

  6. Network Real Trace Analysis 2015年12月10日

    了解网络中真实的流量,国内很难找到巨人的肩膀. WAND是新西兰waikato 大学计算机系的研究小组,主要做网络测量,大规模网络流量捕获,网络分析.还做专业的分析软件. libtrace是其开源的分 ...

  7. AHKManager.ahk AHK管理器 2019年12月15日

    AHKManager.ahk  AHK管理器  2019年12月15日 快捷键   {Alt} + {F1} ///////////////////////////////////////////// ...

  8. 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 ...

  9. 北京Uber优步司机奖励政策(12月15日)

    用户组:人民优步及电动车(适用于12月15日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:htt ...

随机推荐

  1. GDI+ 如何将图片绘制成圆形的图片

    大概意思就是不生成新的图片,而是将图片转换为圆形图片. 实现代码如下: private Image CutEllipse(Image img, Rectangle rec, Size size) { ...

  2. 51nod1057 N的阶乘

    输入N求N的阶乘的准确值.   Input 输入N(1 <= N <= 10000) Output 输出N的阶乘 Input示例 5 Output示例 120参考博客:blog.csdn. ...

  3. Linux启用MySQL的InnoDB引擎

    前几天公司的一个项目组的同事反应说公司内部的一台Linux服务器上的MySQL没有InnoDB这个引擎,我当时想应该不可能啊,MySQL默认应该 就已经安装了这个引擎的吧,于是上服务器去看了看,发现还 ...

  4. R中逻辑运算

    一.是否相等的判断的方法 (1)判断字符串是否相等is.null(x) (2)判断x的每个元素是否在y中出现: x %in% y (3)判断判断每个相对应的元素是否相等: x == y (4)判断近似 ...

  5. 【BZOJ】1013: [JSOI2008]球形空间产生器sphere

    [BZOJ]1013: [JSOI2008]球形空间产生器sphere 题意:给n+1个n维的点的坐标,要你求出一个到这n+1个点距离相等的点的坐标: 思路:高斯消元即第i个点和第i+1个点处理出一个 ...

  6. Call Azure Queue get "The remote server returned an error: (400) Bad Request."

    这几天开始研究Windows Azure, 在使用Azure Queue 的时候,CreateInfNotExists 总是抛出异常 "The remote server returned ...

  7. sharepoint online

    http://office.microsoft.com/en-001/sharepoint/sharepoint-online-online-collaboration-software-FX1037 ...

  8. user is not mapped

    用Hibernate实现一个用户的登陆过程,当我在JSP的登陆页面输入姓名和密码,点登陆后,显示登陆失败页,在服务器里显示如下的错误信息:  org.hibernate.hql.ast.QuerySy ...

  9. VC项目配置基础以及快捷键(收藏)

    来自http://blog.csdn.net/phunxm/article/details/5082488 一.IDE基础配置 1.字体 VC6中“Tools→Options→Format→Font” ...

  10. 解决Deprecated: preg_replace(): The /e modifier is deprecated, use

    使用php5.5运行ecshop的时候出现如下错误Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace ...