zoukankan      html  css  js  c++  java
  • 猜数字游戏

    #include<iostream>
    #include<cstdlib>
    #include<ctime>
    using namespace std;
    int main()
    {
        int n,sum=0,win=0,die=0,step=0,m1=10,m2=0,i,j,k,x,y,h=-1;
        double average=0;
        char s1[10],s2[4];
        srand(time(NULL));
        cout<<"这是一个简(jian)单(lou)且标准的猜数字游戏,按0可直接开始游戏"<<endl;
        cout<<"当然,如果你没玩过,按2可查看游戏介绍"<<endl<<endl;
        for(;;)
        {
            for(cin>>h;h!=0;cin>>h)
            {//游戏功能部分(准备阶段)
                if(h==3) break;
                if(h==1)
                {//查看战绩
                    cout<<"总局数:"<<sum<<endl;
                    cout<<"胜:"<<win<<endl;
                    cout<<"负:"<<die<<endl;
                    cout<<"总步数:"<<step<<endl;
                    cout<<"最少步数:"<<m1<<endl;
                    cout<<"最多步数:"<<m2<<endl;
                    cout<<"平均步数(失败按10步算):"<<average<<endl;
                    if(average>6) cout<<"别看了,你还菜得很,按0继续吧:"<<endl<<endl;
                    else cout<<"我看好你哦,按0继续吧:"<<endl<<endl;
                }
                if(h==2)
                {//游戏介绍
                    cout<<"游戏规则:"<<endl;
                    cout<<"电脑已生成一个“各位皆不相等的4位数”"<<endl;
                    cout<<"你有10次猜数字的机会,每次输入一个4位数"<<endl;
                    cout<<"你每猜一个数字,程序就要根据这个数字给出几A几B"<<endl;
                    cout<<"A前面的数字表示“位置正确的数的个数”,而B前的数字表示“数字正确而位置不对的数的个数”"<<endl;
                    cout<<"如正确答案为 5234,而猜的人猜 5346,则是 1A2B"<<endl;
                    cout<<"其中5的位置对了,记为1A;而3和4这两个数字对了,但位置没对,因此记为 2B"<<endl;
                    cout<<"接着根据这些线索继续猜,直到猜中(即 4A0B)为止"<<endl;
                    cout<<"Ps:比如答案为1234,输入1111结果为1A,输入4441结果为2B"<<endl;
                    cout<<"介绍到此结束,按0开始游戏吧:"<<endl<<endl;
                }
            }
            if(h==3) break;
            {//随机数生成部分
                s2[0]=rand()%9+49;//限定首位不为0
                for(s2[1]=rand()%10+48;s2[1]==s2[0];s2[1]=rand()%10+48){}
                for(s2[2]=rand()%10+48;s2[2]==s2[0]||s2[2]==s2[1];s2[2]=rand()%10+48){}
                for(s2[3]=rand()%10+48;s2[3]==s2[0]||s2[3]==s2[1]||s2[3]==s2[2];s2[3]=rand()%10+48){}
            }
            for(i=0;i<10;i++)
            {//游戏部分
                x=y=0;
                cout<<""<<i+1<<"次尝试:    ";
                cin>>s1;
                for(j=0;j<4;j++)
                {//判断A,B的数量
                    if(s2[j]==s1[j]) x++;
                    else for(k=0;k<4;k++)
                    {
                        if(s2[j]==s1[k]) y++;
                        if(s2[j]==s1[k]) break;
                    }
                }
                {//输出判断结果
                    cout<<"                    "<<x<<'A'<<y<<'B'<<endl;
                    if(x==4) cout<<"Congratulation"<<endl;
                    if(x==4) break;
                }
                {//彩蛋
                    if(i==4) cout<<"加油哦^_^"<<endl<<endl;
                    if(i==6) cout<<"似乎有点菜啊"<<endl<<endl;
                    if(i==7) cout<<"真菜"<<endl<<endl;
                    if(i==8) cout<<"这么菜还玩游戏?"<<endl<<endl;
                }
            }
            {//更新玩家数据
                if(i<10) win++;
                else die++;
                if(i<10) step+=i+1;
                else step+=10;
                m1=i+1<m1?i+1:m1;
                m2=i+1>m2?i+1:m2;
                sum++;
                average=step;
                average/=sum;
            }
            {//结局彩蛋
                if(i<2) cout<<"不,我不相信,你肯定是开挂了!!!"<<endl<<endl;
                else if(i<4) cout<<"呵呵,运气好而已,有本事再来一局>_<"<<endl<<endl;
                else if(i<6) cout<<"也就普通水准,离我差得远呢"<<endl<<endl;
                else if(i<10) cout<<"菜的不行"<<endl<<endl;
                else cout<<"你妈喊你做作业了,小学生\n正确答案?\n"<<s2<<"嘛,反正告诉你你也不会做"<<endl<<endl;
            }
            cout<<"那么,再来一局?(按0继续,按1查看战绩,按2查看游戏介绍,按3退出游戏)"<<endl;
        }
    }
  • 相关阅读:
    Lucene.Net 2.3.1开发介绍 —— 二、分词(一)
    控制‘控制台应用程序’的关闭操作
    详解for循环(各种用法)
    敏捷软件开发
    Sql Server的一些知识点
    在SharePoint 2010 中配置Remote Blob Storage FILESTREAM Provider
    使用LotusScript操作Lotus Notes RTF域
    JOpt Simple 4.5 发布,命令行解析器
    John the Ripper 1.8.0 发布,密码破解工具
    PacketFence ZEN 4.0.1 发布,网络接入控制
  • 原文地址:https://www.cnblogs.com/miaohengming/p/12243174.html
Copyright © 2011-2022 走看看