小实例 hangman game
代码
#include <bits/stdc++.h>
using namespace std;
int bk[110];
string sj(int t)
{
string ans="";
for(int i=0;i<t;i++)
ans=ans+char((rand()%26)+'a');
return ans;
}
main()
{
srand(time(0));
cout<<"hangman游戏总共有6次猜的机会,可以选择难度\n";
cout<<"easy--5个字母组成的单词\nnormal--8个字母组成的单词\nhard--12个字母组成的单词\nlunatic--26个字母组成的单词\n";
while(1)
{
int sum;
cout<<"你选择的难度为\n请输入easy,normal,hard或者lunatic\n";
f1:
string e;
cin>>e;
if(e=="easy")
sum=5;
else if(e=="normal")
sum=8;
else if(e=="hard")
sum=12;
else if(e=="lunatic")
sum=26;
else
{
cout<<"你输入了非法的选项请重新输入!!!\n";
goto f1;
}
string a=sj(sum);
int num=6;
memset(bk,0,sizeof(bk));
//cout<<a<<endl;
cout<<"请输入一个字母\n";
while(1)
{
f2:
string t;
cin>>t;
if(t.size()>1)
{
cout<<"输入了多个字母请重新输入\n";
goto f2;
}
int f,ff;
f=1;
ff=0;
for(int i=0;i<a.size();i++)
if(a[i]==t[0])
{
bk[i]++;
if(bk[i]==1)
f=0;
else
ff=1;
}
int ac=1;
for(int i=0;i<a.size();i++)
if(bk[i]==0)
{
ac=0;
break;
}
if(ac)
{
cout<<"--------------------------------------------\n\n";
cout<<"恭喜你完全猜出来了!!!你还剩余<<"<<num<<">>次机会\n";
cout<<"原单词是\n";
for(int i=0;i<a.size();i++)
{
if(bk[i]!=0)
cout<<a[i]<<" ";
else
cout<<"_ ";
}
cout<<endl;
cout<<"--------------------------------------------\n\n";
break;
}
if(f)
{
num--;
cout<<"--------------------------------------------\n";
if(f&&!ff)
cout<<"你猜的字母在原单词中没有出现!!!\n";
else if(ff)
cout<<"你猜了一个你已经猜过的正确的字母!!!\n";
if(!num)
{
cout<<"--------------------------------------------\n\n";
cout<<"你已经失败了!!!hangman已经完成了!!!\n";
cout<<"原单词是\n";
for(int i=0;i<a.size();i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"你最终猜到的是\n";
for(int i=0;i<a.size();i++)
{
if(bk[i]!=0)
cout<<a[i]<<" ";
else
cout<<"_ ";
}
cout<<"\n";
cout<<"--------------------------------------------\n\n";
break;
}
cout<<"剩余次数为<<"<<num<<">>次\n\n";
cout<<"--------------------------------------------\n\n";
cout<<"请输入一个字母\n";
}
else
{
cout<<"--------------------------------------------\n";
cout<<"恭喜你猜对了一个正确的字母,此时的单词是\n";
for(int i=0;i<a.size();i++)
{
if(bk[i]!=0)
cout<<a[i]<<" ";
else
cout<<"_ ";
}
cout<<endl<<endl;
cout<<"--------------------------------------------\n\n";
cout<<"请输入一个字母\n";
}
}
}
}
小实例 hangman game的更多相关文章
- winform 异步读取数据 小实例
这几天对突然对委托事件,异步编程产生了兴趣,大量阅读前辈们的代码后自己总结了一下. 主要是实现 DataTable的导入导出,当然可以模拟从数据库读取大量数据,这可能需要一定的时间,然后 再把数据导入 ...
- CSS应用内容补充及小实例
一.clear 清除浮动 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- Objective-C之代理设计模式小实例
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Objective-C之@类别小实例
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- OC小实例关于init方法不小心的错误
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- canva实践小实例 —— 马赛克效果
前面给大家带来了操作像素的API,此时此刻,我觉得应该配以小实例来进行进一步的说明和演示,以便给大家带来更宽广的视野和灵感,你们看了我的那么多的文章,应该是懂我的风格,废话不多说,进入正题: 这次给大 ...
- canvas实践小实例二 —— 扇形
俗话说:发图不留种,菊花万人捅!我这里想延伸一下:教学不给例,说你是傻逼!哎呀,还挺押韵,嘻嘻,开个玩笑! 我们都讲了四期API的知识了,估计大家看的也是枯燥的很啊,前面的小实例也是太简单,简直不解渴 ...
- canvas实践小实例一 —— 画板工具
前面讲了一部分的canvasAPI的基础知识,光看API的介绍确实是很无趣乏味,需要一点可以激发内心的激情的东西来激励自己来学习,于是就了伴随canvasAPI学习的小实例,这样通过API的知识,结合 ...
- HTML5自学笔记[ 13 ]canvas绘图小实例之方块移动
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
随机推荐
- swift 2.0 语法 数组
import UIKit /*: 数组 * 格式 var arr:[Int] = [数值1, 数值2, 数值3] * 不可变数组 let == NSArray * 可变数组 var */ l ...
- 汉澳Sinox2014X64server高级桌面服务器版操作系统公布
汉澳Sinox2014X64server高级桌面服务器版操作系统公布 当你在现代城市夜空中看到一道闪电.屏幕中央闪过几个图形,转眼间变成美轮美奂的紫色空中天国,说明你来到了汉澳sinox2014世 ...
- 大写金额换算器iOS版源码
大写金额换算器iOS版源码 人民币金额大写转换器输入数字就可以转换成相应的人民币大写金额,操作很easy,需一键点击,就可以复制. 是財务办公人员必备的小工具. 银行.单位和个人填写的各种票据和结算凭 ...
- 关于PROFIBUS Master(H)不能正确识别并处理 DP-Slave 回复的RS帧的一些思考
图1.是在測试过程中,发现PROFIBUS Master(H)不能正确识别并处理 DP-Slave 回复的RS帧.引起Slave回复 RS 帧的操作是"断开Slave与Master之间的PR ...
- U4687 不无聊的序列
U4687 不无聊的序列 0通过 85提交 题目提供者飞翔 标签 难度尚无评定 提交 最新讨论 暂时没有讨论 题目背景 如果一个序列的任意一个连续的子序列中没有只出现一次的元素,辣么kkk就认为这个序 ...
- Solution:Cannot pull with rebase: You have unstaged changes in Github
You can do this to work around using following steps 1. stash your changes with: git stash 2. pull f ...
- 【BZOJ 2160】 拉拉队排练
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2160 [算法] 先简化题意 : 给定一个字符串,求最长的k个奇回文子串长度的乘积 先 ...
- Luogu3403跳楼机
https://zybuluo.com/ysner/note/1099616 题面 给你三个数\(x\),\(y\),\(z\),问你能够凑出多少个[1,\(h\)]之间的数. 解析 处理出\(y\) ...
- ADTS结构
ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式.转载请注明来自:http://www.binkery.com/ ADTS内容及结构一般情况下 ...
- PCB MongoDB 监控
一个数据库监控工具是必不可少的,当然MongoDB安装自带监控啦. 这里将监控工具mongostat.exe与mongotop.exe使用与参数进行讲解说明. 一.监控工具说明: 二.监控工具启用 1 ...