实现效果:
输入父亲名字:
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;
}