c++简单程序实现——小公主养成记

实现效果:

输入父亲名字:
WangLY
输入女儿名字:
啾啾
输入女儿的生日:MM-DD
3 3
父亲的姓名:WangLY
女儿的姓名:啾啾
女儿的生日:2002-3-3
女儿的星座:双鱼座
金币:500
体力:52
智力:15
魅力:34
道德:67
气质:12
1.查看状态
2.安排行程
3.谈话
4.存档
5.读档
1
女儿的信息
姓名:啾啾
生日:2002-3-3
星座:双鱼座
金币:500
体力:52   ■■■■■□□□□□
智力:15   ■□□□□□□□□□
魅力:34   ■■■□□□□□□□
道德:67   ■■■■■■□□□□
气质:12   ■□□□□□□□□□
1.查看状态
2.安排行程
3.谈话
4.存档
5.读档
2
---7---上旬---
1.学习武艺
2.学习礼法
3.上私塾
4.出城修行
5.学习乐器
6.打工
1
学习拳法中…………
学习张无忌好榜样!
体力+4, 魅力+2
金钱-22, 剩余金钱:478
---7---中旬---
1.学习武艺
2.学习礼法
3.上私塾
4.出城修行
5.学习乐器
6.打工

代码:

#include <iostream>
#include <iomanip>
#include <ctime>
#include <vector>
#include <array>
#include <stdlib.h>
#include<windows.h>


using namespace std;

int main()
{
    /*1. 设置基本属性*/
    //为父女起名字
    string value_father_name;
    string value_daughter_name;
    //生日
    int value_birth_month=6;
    int value_birth_date=6;
    //星座
    string value_daughter_constell;

    string constell_names[12][2]=
    {
        {"山羊座","水瓶座"},//一月份
        {"水瓶座","双鱼座"},//二月份
        {"双鱼座","白羊座"},//三月份
        {"白羊座","金牛座"},//四月份
        {"金牛座","双子座"},//五月份
        {"双子座","巨蟹座"},//六月份
        {"巨蟹座","狮子座"},//七月份
        {"狮子座","处女座"},//八月份
        {"处女座","天秤座"},//九月份
        {"天秤座","天蝎座"},//十月份
        {"天蝎座","射手座"},//十一月份
        {"射手座","山羊座"},//十二月份
    };

    //每个月的跨星座日期
    int constell_dates[] {20,19,21,20,21,22,23,23,23,24,23,22};
    // cout<< constell_names[value_birth_month-1][value_birth_date/constell_dates[value_birth_month-1]]<<endl;
    //基本属性:体力、智力、魅力、道德、气质
    array<int,5> value_vec_baseinfo;
    array<string,5> value_vec_baseinfo_names{"体力","智力","魅力","道德","气质"};

    int value_daughter_gold=500;



    /*2. 初始化信息
    根据女儿的星座,设置游戏的基本参数(体力、智力、魅力、道德、气质)*/
    //名字
    cout<<"输入父亲名字:"<<endl;
    cin>>value_father_name;
    cout<<"输入女儿名字:"<<endl;
    cin>>value_daughter_name;

    //生日
    cout<<"输入女儿的生日:MM-DD"<<endl;
    cin>>value_birth_month>>value_birth_date;

    //星座
    value_daughter_constell=constell_names[value_birth_month-1][value_birth_date/constell_dates[value_birth_month-1]];

    //根据星座设置属性初值
    if(value_daughter_constell=="山羊座")
    {
        value_vec_baseinfo[0]=12;
        value_vec_baseinfo[1]=42;
        value_vec_baseinfo[2]=52;
        value_vec_baseinfo[3]=34;
        value_vec_baseinfo[4]=35;

    }
    else if(value_daughter_constell=="水瓶座")
    {
        value_vec_baseinfo[0]=42;
        value_vec_baseinfo[1]=45;
        value_vec_baseinfo[2]=42;
        value_vec_baseinfo[3]=16;
        value_vec_baseinfo[4]=52;

    }
    else if(value_daughter_constell=="双鱼座")
    {
        value_vec_baseinfo[0]=52;
        value_vec_baseinfo[1]=15;
        value_vec_baseinfo[2]=34;
        value_vec_baseinfo[3]=67;
        value_vec_baseinfo[4]=12;

    }
    else if(value_daughter_constell=="白羊座")
    {
        value_vec_baseinfo[0]=34;
        value_vec_baseinfo[1]=29;
        value_vec_baseinfo[2]=12;
        value_vec_baseinfo[3]=67;
        value_vec_baseinfo[4]=75;

    }
    else if(value_daughter_constell=="金牛座")
    {
        value_vec_baseinfo[0]=45;
        value_vec_baseinfo[1]=62;
        value_vec_baseinfo[2]=45;
        value_vec_baseinfo[3]=87;
        value_vec_baseinfo[4]=34;

    }
    else if(value_daughter_constell=="双子座")
    {
        value_vec_baseinfo[0]=43;
        value_vec_baseinfo[1]=45;
        value_vec_baseinfo[2]=65;
        value_vec_baseinfo[3]=43;
        value_vec_baseinfo[4]=61;

    }
    else if(value_daughter_constell=="巨蟹座")
    {
        value_vec_baseinfo[0]=43;
        value_vec_baseinfo[1]=54;
        value_vec_baseinfo[2]=43;
        value_vec_baseinfo[3]=26;
        value_vec_baseinfo[4]=34;

    }
    else if(value_daughter_constell=="狮子座")
    {
        value_vec_baseinfo[0]=56;
        value_vec_baseinfo[1]=76;
        value_vec_baseinfo[2]=5;
        value_vec_baseinfo[3]=43;
        value_vec_baseinfo[4]=14;

    }
    else if(value_daughter_constell=="处女座")
    {
        value_vec_baseinfo[0]=15;
        value_vec_baseinfo[1]=42;
        value_vec_baseinfo[2]=32;
        value_vec_baseinfo[3]=82;
        value_vec_baseinfo[4]=32;

    }
    else if(value_daughter_constell=="天秤座")
    {
        value_vec_baseinfo[0]=42;
        value_vec_baseinfo[1]=62;
        value_vec_baseinfo[2]=32;
        value_vec_baseinfo[3]=4;
        value_vec_baseinfo[4]=42;

    }
    else if(value_daughter_constell=="天蝎座")
    {
        value_vec_baseinfo[0]=22;
        value_vec_baseinfo[1]=62;
        value_vec_baseinfo[2]=42;
        value_vec_baseinfo[3]=32;
        value_vec_baseinfo[4]=22;

    }
    else
    {
        value_vec_baseinfo[0]=12;
        value_vec_baseinfo[1]=42;
        value_vec_baseinfo[2]=82;
        value_vec_baseinfo[3]=52;
        value_vec_baseinfo[4]=12;
    }

    /*3. 开始游戏大循环*/
    //基本属性
    cout<<"父亲的姓名:"<<value_father_name<<endl;
    cout<<"女儿的姓名:"<<value_daughter_name<<endl;
    cout<<"女儿的生日:2002-"<<value_birth_month<<"-"<<value_birth_date<<endl;
    cout<<"女儿的星座:"<<value_daughter_constell<<endl;
    cout<<"金币:"<<value_daughter_gold<<endl;
    for(int i=0; i<5; i++)
    {
        cout<<value_vec_baseinfo_names[i]<<":"<<value_vec_baseinfo[i]<<endl;
    }

    //循环
    for(int year=2002; year<=2002+7; year++)
    {
        for(int month=(year==2002)? 6:1; month<=12; month++)
        {
            //生日
            if(month==value_birth_month)
            {
                cout<<"这个月是女孩的生日,是否要送礼物呢?"<<endl;
                cout<<"请输入Y/N"<<endl;
                char answer;
                cin>>answer;
                if(answer=='Y')
                {
                    cout<<value_daughter_name<<"非常开心,给了你一个大大的拥抱!"<<endl;
                    int temp1;
                    value_vec_baseinfo[1]+=temp1=rand()%11;
                     cout<<value_daughter_name<<"获得鼓励,努力学习,智力+"<<temp1<<endl;

                }

            }
            //主菜单
            cout<<"1.查看状态\n2.安排行程\n3.谈话\n4.存档\n5.读档"<<endl;
            int choice;
            cin>>choice;
            switch(choice)
            {
            case 1://查看状态
                cout<<"女儿的信息"<<endl;
                cout<<"姓名:"<<value_daughter_name<<endl;
                cout<<"生日:2002-"<<value_birth_month<<"-"<<value_birth_date<<endl;
                cout<<"星座:"<<value_daughter_constell<<endl;
                cout<<"金币:"<<value_daughter_gold<<endl;

                cout<<left;
                for(int i=0; i<5; i++)
                {
                    cout<<value_vec_baseinfo_names[i]<<":"<<setw(4)<<value_vec_baseinfo[i]<<" ";
                    //以100为满分,一个格子代表10分
                    int solidCount=value_vec_baseinfo[i]/10;
                    for(int j=0;j<10;j++){
                        if(j<solidCount)
                            cout<<"■";
                        else cout<<"□";
                    }
                    cout<<endl;
                }

                break;
            case 2:{//安排行程:一个月最多安排3个行程
                //在case中定义变量需要加{}

                string month_parts[]{"上旬","中旬","下旬"};

                //体力0、智力1、魅力2、道德3、气质4
                for(int i=0;i<3;i++){

                    cout<<"---"<<month<<"月---"<<month_parts[i]<<"---"<<endl;
                    cout<<"1.学习武艺\n2.学习礼法\n3.上私塾\n4.出城修行\n5.学习乐器\n6.打工"<<endl;
                    //如果没钱强制打工
                    int choice;
                    cin>>choice;
                    if(value_daughter_gold<0)
                    {
                        choice=6;
                        cout<<"没有钱了,必须打工…………"<<endl;
                    }

                    srand(time(NULL));
                    if(choice==1){//+体力 +魅力 -金钱
                       //temp=rand()%10;
                       // value_vec_baseinfo[0]+=temp; 这两句合起来等价于下面一句
                       int temp1,temp2,temp3;
                       value_vec_baseinfo[0]+=temp1=rand()%11;
                       value_vec_baseinfo[2]+=temp2=rand()%11;
                       value_daughter_gold-=temp3=rand()%51;
                       cout<<"学习拳法中…………"<<endl;
                       Sleep(500);
                       cout<<"学习张无忌好榜样!"<<endl;
                       cout<<"体力+"<<temp1<<", 魅力+"<<temp2<<endl;
                       cout<<"金钱-"<<temp3<<", 剩余金钱:"<<value_daughter_gold<<endl;


                    }else if(choice==2){// +魅力 +气质 -金钱
                       int temp1,temp2,temp3;
                       value_vec_baseinfo[2]+=temp1=rand()%11;
                       value_vec_baseinfo[4]+=temp2=rand()%11;
                       value_daughter_gold-=temp3=rand()%51;
                       cout<<"学习礼法中…………"<<endl;
                       Sleep(500);
                       cout<<"学习礼法,微笑拥抱每一天,做像向日葵般温暖的女子。"<<endl;
                       cout<<"魅力+"<<temp1<<", 气质+"<<temp2<<endl;
                       cout<<"金钱-"<<temp3<<", 剩余金钱:"<<value_daughter_gold<<endl;

                    }else if(choice==3){//+智力1 +道德3 -金钱
                       //temp=rand()%10;
                       // value_vec_baseinfo[0]+=temp; 这两句合起来等价于下面一句
                       int temp1,temp2,temp3;
                       value_vec_baseinfo[1]+=temp1=rand()%11;
                       value_vec_baseinfo[3]+=temp2=rand()%11;
                       value_daughter_gold-=temp3=rand()%51;
                       cout<<"上课中…………"<<endl;
                       Sleep(500);
                       cout<<"穷则思变,差则思勤!没有比人更高的山没有比脚更长的路!"<<endl;
                       cout<<"智力+"<<temp1<<", 道德+"<<temp2<<endl;
                       cout<<"金钱-"<<temp3<<", 剩余金钱:"<<value_daughter_gold<<endl;

                    }else if(choice==4){//+体力 +道德 -金钱
                       //temp=rand()%10;
                       // value_vec_baseinfo[0]+=temp; 这两句合起来等价于下面一句
                       int temp1,temp2,temp3;
                       value_vec_baseinfo[0]+=temp1=rand()%11;
                       value_vec_baseinfo[3]+=temp2=rand()%11;
                       value_daughter_gold-=temp3=rand()%51;
                       cout<<"出城修行中…………"<<endl;
                       Sleep(500);
                       cout<<"只有经历过地狱般的折磨,才有征服天堂的力量。只有流过血的手指才能弹出世间的绝唱。"<<endl;
                       cout<<"体力+"<<temp1<<", 道德+"<<temp2<<endl;
                       cout<<"金钱-"<<temp3<<", 剩余金钱:"<<value_daughter_gold<<endl;

                    }else if(choice==5){//+智力1 +气质4 -金钱
                       //temp=rand()%10;
                       // value_vec_baseinfo[0]+=temp; 这两句合起来等价于下面一句
                       int temp1,temp2,temp3;
                       value_vec_baseinfo[1]+=temp1=rand()%11;
                       value_vec_baseinfo[4]+=temp2=rand()%11;
                       value_daughter_gold-=temp3=rand()%51;
                       cout<<"学习乐器中…………"<<endl;
                       Sleep(500);
                       cout<<"听妈妈的话别让她受伤,想快快长大才能保护她,美丽的白发幸福总发芽,天使的魔法温暖中慈祥。"<<endl;
                       cout<<"智力+"<<temp1<<", 气质+"<<temp2<<endl;
                       cout<<"金钱-"<<temp3<<", 剩余金钱:"<<value_daughter_gold<<endl;

                    }else{
                        cout<<"打工挣钱啦!"<<endl;
                        cout<<"打工中…………"<<endl;
                        Sleep(1000);
                        int temp;
                        value_daughter_gold+=temp=rand()%501;
                        cout<<"今天挣了"<<temp<<"!"<<endl;
                    }

                }

                break;
            }
            case 3:
                {
                cout<<"找女儿谈话了解她最近的生活状况…………";
                Sleep(500);
                int temp;
                value_vec_baseinfo[3]+=temp=rand()%11;
                cout<<value_daughter_name<<"受益匪浅,道德+"<<temp<<endl;
                break;
                }
            case 4:
                break;
            case 5:
                break;
            }


        }
    }


    /*4. 根据属性判断结果*/
     /*
     女王  属性总数2000以上
     王妃  属性总数1800-2000
     女将军  属性总数1600-1800
     皇家学院总裁  属性总数1200-1600,智力最高,且体力>智力
     公主  属性总数1200-1600,气质最高,且魅力>体力
     近卫骑士团长  属性总数1200-1600,体力最高,且气质>魅力
     高级祭祀  属性总数1200-1600,道德最高,且魅力>气质
     国王的宠妃  属性总数1200-1600,魅力最高,且气质>道德
     */
     //体力0、智力1 、魅力2 、道德3 、气质4
     int sum=0;
     for(int i=0;i<5;i++)
        sum+=value_vec_baseinfo[i];

    if(sum>2000){
        cout<<"最优游戏结果:登基为女王!"<<endl;
    }else if(sum>=1800 &&sum<2000)
    {
        cout<<"次优游戏结果:成为王妃!"<<endl;
    }else if(sum>=1600&&sum<1800)
    {
        cout<<"达成结果:成为女将军!"<<endl;
    }else if(sum>=1200&&sum<1600){
        int max_baseinfo=value_vec_baseinfo[0];
        int max_i=0;
         for(int i=1;i<5;i++)
        {
            if(value_vec_baseinfo[i]>max_baseinfo)
                {
                    max_baseinfo=value_vec_baseinfo[i];
                    max_i=i;
                }
        }
        if(value_vec_baseinfo_names[max_i]=="智力"&&value_vec_baseinfo[0]>value_vec_baseinfo[1])
            cout<<"达成结果:成为皇家学院总裁!"<<endl;
        if(value_vec_baseinfo_names[max_i]=="气质"&&value_vec_baseinfo[2]>value_vec_baseinfo[0])
            cout<<"达成结果:成为公主!"<<endl;
        if(value_vec_baseinfo_names[max_i]=="体力"&&value_vec_baseinfo[4]>value_vec_baseinfo[2])
            cout<<"达成结果:成为近卫骑士团长!"<<endl;
        if(value_vec_baseinfo_names[max_i]=="道德"&&value_vec_baseinfo[2]>value_vec_baseinfo[4])
            cout<<"达成结果:成为高级祭祀!"<<endl;
        if(value_vec_baseinfo_names[max_i]=="魅力"&&value_vec_baseinfo[4]>value_vec_baseinfo[3])
            cout<<"达成结果:成为国王的宠妃!"<<endl;
    }else{
    cout<<"达成结果:"<<value_daughter_name<<"经历了很多事,学会了很多事,虽然没有在某方面出类拔萃,但是她生活的很快乐!";}


    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值