小实例 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> ...
随机推荐
- WinMain和MFC的差别
API(Application Programming Interface):开放给应用程序调用的系统功能. 一个Windows Application(SDK): WinMain ReristerC ...
- MySQL启动不了 错误3
这个需要修改下他的路径.楼主:点左下角开始键--运行--SC DELETE MYSQL然后 你再去打开你的MYSQL,就好了. 导入脚本http://jingyan.baidu.com/article ...
- cmd 批处理文件(.bat)文件的编写
1. 获取当前文件所在的路径信息 CMD获取当前目录的绝对路径 创建如下的名为 test.bat的文本文件: @echo off echo 当前盘符:%~d0 echo 当前盘符和路径:%~dp0 e ...
- 在 CentOS 7上安装并配置 Python 3.6 环境
前言 按照此方法安装保证以下报错什么的统统都没有! 基础环境 系统:centos7.4 软件:python3 Retrying (Retry(total=0, connect=None, read=N ...
- HDU2564 词组缩写
2019-06-03 15:00:38 感觉有有种被坑了的感觉,这道题不难,就是一再的W,
- JavaScript--关闭窗口(window.close)
close()关闭窗口 用法: window.close(); //关闭本窗口 或 <窗口对象>.close(); //关闭指定的窗口 例如:关闭新建的窗口. <script typ ...
- Spark RDD/Core 编程 API入门系列之简单移动互联网数据(五)
通过对移动互联网数据的分析,了解移动终端在互联网上的行为以及各个应用在互联网上的发展情况等信息. 具体包括对不同的应用使用情况的统计.移动互联网上的日常活跃用户(DAU)和月活跃用户(MAU)的统计, ...
- easyui textbox 内容改变事件 增加oninpu 类似事件,
//======================利用easyui验证功能,进行内容变化监控=== =============$(function () { var CustomerService = ...
- MyBatis 配置控制台上显示sql语句(log4j.properties 之三)
### direct log messages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.app ...
- 【转】Java 集合系列02之 Collection架构
概要 首先,我们对Collection进行说明.下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set. List和Set都是接 ...