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;
        }
    }
  • 相关阅读:
    python 实例方法、静态方法、类方法的区别
    locust 参数化实现
    Airtest 基于图像识别的自动化测试工具
    python 调用 dubbo 接口
    locust+geventhttpclient 性能优化
    python性能测试工具locust
    性能测试工具 wrk
    jmeter 参数化,关联参数,断言等使用说明
    Django上传excel表格并将数据写入数据库
    小程序 wx.uploadFile 上传文件 iOS 失败 400 错误排查
  • 原文地址:https://www.cnblogs.com/miaohengming/p/12243174.html
Copyright © 2011-2022 走看看