#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. Ubuntu 20.04使用 VNC远程桌面连接避坑指南

    Ubuntu 20.04使用 VNC远程桌面连接避坑指南 自从开始使用Ubuntu 20.04搭建深度学习服务器,就想到使用VNC远程桌面连接使用.可是之前一直使用的是Ubuntu18.04,心里想着 ...

  2. mysql 命令安装

    1.   mysql  下载安装好压缩文件,下面我们进入正题,少废话. 09:39:112023-08-05 先到 mysql 官方网站下载:https://dev.mysql.com/downloa ...

  3. [kafka]常见术语

    前言 kafka属于分布式的消息引擎系统,主要功能是提供一套完备的消息发布与订阅解决方案. 消息和批次 kafka 的数据单元被称为消息.消息由字节数组组成,对kafka来说,消息里的数据没有特殊的格 ...

  4. 终于搞懂了python2和python3的encode(编码)与decode(解码)

    终于搞懂了python2的编码 在python2下碰到非常多次的中文乱码,这次来梳理一下编码问题. 在python 2中默认编码是 ASCII,而在python 3中默认编码是 unicode. un ...

  5. 论文解读(ECACL)《ECACL: A Holistic Framework for Semi-Supervised Domain Adaptation》

    Note:[ wechat:Y466551 | 付费咨询,非诚勿扰 ] 论文信息 论文标题:ECACL: A Holistic Framework for Semi-Supervised Domain ...

  6. Go 上下文的理解与使用

    为什么需要 context 在 Go 程序中,特别是并发情况下,由于超时.取消等而引发的异常操作,往往需要及时的释放相应资源,正确的关闭 goroutine.防止协程不退出而导致内存泄露.如果没有 c ...

  7. ORM分组查询复杂查询

    记录一下自己在工作中遇到的一个问题,就是根据一个字段分类,然后还要统计这个字段不同状态的数量,这里我举个例子 假如有好多学生,这些学生来自不同的班级,现在我们要统计每一个班级中男生和女生的数量 def ...

  8. 问题总结:浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用equals来判断

    浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用equals来判断. 说明:浮点数采用"尾数+阶码"的编码方式,类似于科学计数法的"有效数字+指数& ...

  9. 多主架构:VLDB技术论文《Taurus MM: bringing multi-master to the cloud》解读

    本文分享自华为云社区<多主创新,让云数据库性能更卓越>,作者: GaussDB 数据库. 华为<Taurus MM: bringing multi-master to the clo ...

  10. Springboot多种字段copy工具比较

    结论:推荐使用spring自带的copy工具,不能copy的手动set 1.springboot自带的BeanUtils.copyProperties package com.admin; impor ...