小实例 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次猜的机会,可以选择难度
";
	cout<<"easy--5个字母组成的单词
normal--8个字母组成的单词
hard--12个字母组成的单词
lunatic--26个字母组成的单词
";
	while(1)
	{
		int sum;
		cout<<"你选择的难度为
请输入easy,normal,hard或者lunatic
";
		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<<"你输入了非法的选项请重新输入!!!
";
			goto f1; 
		}
		string a=sj(sum);
		int num=6;
		memset(bk,0,sizeof(bk));
		//cout<<a<<endl;
		cout<<"请输入一个字母
";
	while(1)
	{
		f2:
		string t;
		cin>>t;
		if(t.size()>1)
		{
			cout<<"输入了多个字母请重新输入
";
			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<<"--------------------------------------------

";
			cout<<"恭喜你完全猜出来了!!!你还剩余<<"<<num<<">>次机会
";
			cout<<"原单词是
";
			for(int i=0;i<a.size();i++)
			{
				if(bk[i]!=0)
				cout<<a[i]<<" ";
				else
				cout<<"_ ";
			}
			cout<<endl;
			cout<<"--------------------------------------------

";
			break;	
		}	
		if(f)
		{
			num--;
			cout<<"--------------------------------------------
";
			if(f&&!ff)
			cout<<"你猜的字母在原单词中没有出现!!!
";
			else if(ff)
			cout<<"你猜了一个你已经猜过的正确的字母!!!
"; 
			if(!num)
		{
			cout<<"--------------------------------------------

";
			cout<<"你已经失败了!!!hangman已经完成了!!!
";
			cout<<"原单词是
";
			for(int i=0;i<a.size();i++)
			cout<<a[i]<<" ";
			cout<<endl;
			cout<<"你最终猜到的是
";
			for(int i=0;i<a.size();i++)
			{
				if(bk[i]!=0)
				cout<<a[i]<<" ";
				else
				cout<<"_ ";
			}
			cout<<"
";
			cout<<"--------------------------------------------

";
			break;
		}
			cout<<"剩余次数为<<"<<num<<">>次

";
			cout<<"--------------------------------------------

";
			cout<<"请输入一个字母
";
		}
		else 
		{
			cout<<"--------------------------------------------
";
			cout<<"恭喜你猜对了一个正确的字母,此时的单词是
";
			for(int i=0;i<a.size();i++)
			{
				if(bk[i]!=0)
				cout<<a[i]<<" ";
				else
				cout<<"_ ";
			}
			cout<<endl<<endl;
			cout<<"--------------------------------------------

";
			cout<<"请输入一个字母
";
		}
	}
	}
}
原文地址:https://www.cnblogs.com/baccano-acmer/p/9784931.html