zoukankan      html  css  js  c++  java
  • 小实例 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<<"请输入一个字母
    ";
    		}
    	}
    	}
    }
    
  • 相关阅读:
    SharePoint部署webpart时候,报错:部署步骤“回收 IIS 应用程序池”中出现错误: 无效命名空间 解决方案
    免费的分布式的自动化测试工具
    https://github.com/dotnetcore
    SharePoint2013与SharePoint2016语言切换原理以及如何使用代码进行语言切换
    微软开源最强Python自动化神器Playwright!不用写一行代码!
    B站播单按时间统计进度
    AF_INET与PF_INET的区别
    git显示:fatal: index file smaller than expected
    Unix系统中信号SIGKILL和SIGSTOP
    GTM、UTC和C/C++中的时间处理
  • 原文地址:https://www.cnblogs.com/baccano-acmer/p/9784931.html
Copyright © 2011-2022 走看看