#include<iostream>
#include<string>
#include<fstream>
#include<cstdlib>
#include<ctime>
#include<cctype>
using namespace std;
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()
{
srand(time(0));
char play;
cout<<"Will you play a ward game?<y/n>";
cin>>play;
play=tolower(play);
while(play=='y')
{
string target=wordlist[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 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;
}
else{
cout<<"Good guess!\n";
attempt[loc]=letter;
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 guesses left\n";
}
}
if(guesses>0)
cout<<"That's right!\n";
else
cout<<"Sorry, the word is "<<target<<".\n";
cout<<"Will you play another?<y/n>";
cin>>play;
play=tolower(play);
}
cout<<"Bey!\n";
return 0;
}

猜单词游戏(c++)的更多相关文章

  1. 关于切片/截取(slice)和random模块的使用(实例:猜单词小游戏)

    切片和random的使用在源码中都有注释(可以直接下载):https://github.com/NoobZeng/GuessWords 1. README.MD 基于Python的猜单词游戏 猜单词小 ...

  2. Python小游戏 -- 猜单词

    Python初学者小游戏:猜单词 游戏逻辑:就像我们曾经英语学习机上的小游戏一样,电脑会从事先预置的词库中抽取单词,然后给出单词的字母数量,给定猜解次数,然后让玩家进行猜测,并给出每次猜测的正确字母与 ...

  3. python 游戏(猜单词Hangman)

    1.游戏思路和流程图 实现功能:随机一个单词让玩家猜测(后续难度实现修改为成语填空,成语必须要有提示,可修改猜的次数,增加连续猜成语,难度系数随着次数的增加而增加) 游戏流程图 2. 单词库和模块 i ...

  4. C语言猜数字游戏

    猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手. 老程序猿就不要看了,黑呵呵 源代码1 include stdio.h include stdlib.h include ti ...

  5. 不一样的猜数字游戏 — leetcode 375. Guess Number Higher or Lower II

    好久没切 leetcode 的题了,静下心来切了道,这道题比较有意思,和大家分享下. 我把它叫做 "不一样的猜数字游戏",我们先来看看传统的猜数字游戏,Guess Number H ...

  6. java 猜数字游戏

    作用:猜数字游戏.随机产生1个数字(1~10),大了.小了或者成功后给出提示. 语言:java 工具:eclipse 作者:潇洒鸿图 时间:2016.11.10 >>>>> ...

  7. Java程序,猜大小游戏

    一个骰子,通常有1.2.3.4.5.6等6种点数.我们将1.2.3记作“小”,将4.5.6记作“大”.猜中显示“猜对了”,猜错记作“猜错了”之类的字样.本程序可以用Java实现. import jav ...

  8. 【原创Android游戏】--猜数字游戏Version 0.1

    想当年高中时经常和小伙伴在纸上或者黑板上或者学习机上玩猜数字的游戏,在当年那个手机等娱乐设备在我们那还不是很普遍的时候是很好的一个消遣的游戏,去年的时候便写了一个Android版的猜数字游戏,只是当时 ...

  9. 【原创Android游戏】--猜数字游戏V1.1 --数据存储,Intent,SimpleAdapter的学习与应用

    --------------------------------------------------------------- V0.1版本 上次做完第一个版本后,发现还有一些漏洞,并且还有一些可以添 ...

  10. python学习笔记 ——python写的猜数字游戏 002

    from sys import exit import random def Arrfor(str): #CONTST = CONTST + 1 artificial = input("请输 ...

随机推荐

  1. Seeion相关

    存储会话数据有两种方式: Cookie 1) 存储在浏览器端,通过服务器发送cookie数据 2) 使用cookie存储会话数据,相对不安全(可以cookie查到一些用户安全) 3) 从存储数据类型来 ...

  2. javascript中一些难以理解的专有名词 1(也不是很专有)

    变量提升 变量提升:是指js代码执行过程中,js引擎把变量的声明和函数的声明提升到代码的开头的"行为". 变量和函数在代码里的位置是不会变的,而是在编译阶段被js引擎放入内存中. ...

  3. 2023-07-29:给你一个由数字组成的字符串 s,返回 s 中独特子字符串数量。 其中的每一个数字出现的频率都相同。

    2023-07-29:给你一个由数字组成的字符串 s,返回 s 中独特子字符串数量. 其中的每一个数字出现的频率都相同. 答案2023-07-29: 大体步骤如下: 1.初始化变量base为固定值10 ...

  4. Git:GitLab使用AD账户报错——remote: HTTP Basic: Access denied

    错误原因 当第一次使用AD账户进入GitLab时,需要进行密码重置,之后重新登录并进行克隆操作即可.

  5. [db2]缓冲池管理

    简介 缓冲池指的是从硬盘读取表和索引数据时,数据库管理器分配的用于高速缓存这些表和索引数据的内存区域.每个数据库都必须具有至少一个缓冲池,创建数据库时会自动创建一个名为IBMDEFAULTBP的缓冲池 ...

  6. shell分析nginx日志的一些指令

    前言 nginx日志格式默认 shell指令 查看有多少个IP访问: awk '{print $1}' log_file|sort|uniq|wc -l 查看某一个页面被访问的次数: grep &qu ...

  7. 【故障公告】多年的故障老朋友又来了:数据库服务器 CPU 100%

    数据库服务器 CPU 100% 问题几乎每年都要来几次,从来都不事先打一声招呼,今年的第2次在我们正忙着会员救园的时候来了. 今天 13:35 首先收到我们自己的异常告警通知: Execution T ...

  8. Linux 内核设备树时钟绑定

    这种绑定依然处于开发中,并且基于 benh[1] 的一些实验性工作. 时钟信号源可以由设备树中的任何节点表示.这些节点被指定为时钟提供者.时钟消费者节点使用 phandle 和时钟指示符对将时钟提供者 ...

  9. Vue【原创】下划线动态效果按钮,一般按钮模式,开关切换模式

    效果图: 1.icon-button 一般按钮模式: 1 <template> 2 <div class="icon-button" :style="{ ...

  10. Python隔离环境的搭建

    在nodejs中,我们可以指定扩展安装的路径,那么在python中,我们是不是也可以这么做呢? 当然可以,我们只需要安装一个扩展virtualenv或者virtual wrapper就可以实现环境的隔 ...