小实例 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> ...
随机推荐
- LeetCode 242. Valid Anagram (验证变位词)
Given two strings s and t, write a function to determine if t is an anagram of s. For example,s = &q ...
- 怎样对Android设备进行网络抓包
问题描写叙述: 前段时间自己的app訪问server的url总是会出现间接性失败的问题,于是和server的同事开了个会.提出了他们server存在的这个bug,我的同事自然说自己的server没问题 ...
- sed 之 模式空间 & 保持空间
模式空间:容纳当前输入行的缓冲区: 保持空间:作为辅助的一个缓冲区,可以和模式空间进行交互,但是命令不能直接作用于保持空间. 由上面定义可以知道,模式空间和保持空间是两个独立的缓冲区,可以进行交互,命 ...
- html5音频视频专题
html5音频视频专题 总结 1. 操作的就是video和audio两个对象,这两个对象有他们的属性和方法,通过对象的id就可以操作他们 <audio src="../video/琴箫 ...
- Django-CKeditor使用笔记
1. 安装django-ckeditor $ pip install django-ckeditor 2. 在setting中,添加ckeditor , ckeditor_uploader 到INST ...
- mybatis传参问题总结
一. 传入单个参数 当传入的是单个参数时,方法中的参数名和sql语句中参数名一致即可 List<User> getUser(int id); <select id="get ...
- 月薪5K和月薪50K的程序员,差距都在哪里?
毕业两年买房买车,BAT里拼杀年薪百万.这些大神级的传说想必大家都有耳闻. 而渴望成为人生赢家的程序员们也怀揣着这样梦想,纷纷踏入互联网的大门. 假以时日,这些人的差距愈发明显.最直观的就是薪资水 ...
- Java系列学习(八)-继承
1.代码块 (1)在java中,使用 { } 括起来的代码 被称为代码块 (2)分类: A:局部代码块 [局部位置] [作用:用于限定 变量的生命周期] B:构造代码块 [在类中的成员位置,用{}括起 ...
- MonoBehaviour简述
Unity中的脚本都是继承自MonoBehaviour. 一.基础函数: 创建脚本就默认的update.start方法:(这些官方的文档都是有的) Start:Update函数第一次运行前调用,一般用 ...
- echarts通过ajax请求展示多叉树
背景:在sqlserver使用过程中经常由于各种原因会出现阻塞,并发数较高,很难肉眼看出那个session阻塞了其他process,通过sql查询出根源也需要大量的重复操作才能够找到. 因此就有这方面 ...