开启人生的第一篇博客之旅:
怀着无比激动的心情敲出了人生第一篇优快云的博客文字:先简单的介绍自己接触编程吧,由于自己在大学期间对自己的专业即管理学并没有多大兴趣,于是乎浑浑噩噩的度过了人生最美好也是最宝贵的大学时光,进入社会之后,深感社会之残酷,生活之艰辛,工作之无聊,在与编程朋友聊天之后,被其调用的黑框框深深吸引了,继而下定编程之决心,发奋成为一个程序小猩猩!
自己以c++作为入门语言并以c++ primer plus(被知乎一些大神带坑里了)作为自学书籍,目前学习了进一个多月了,并在网上提供的项目作为灵感与导向敲出了自己第一个简单的养成类小游戏(Windows下的黑框框,没有界面软件,很原始的小程序),代码如下希望各位大神门不要见笑:
#include
#include
#include
#include <stdlib.h>
#include
#include
#include
#include
using namespace std;
int main()
{
//父亲的姓名
string value_father_name;
//女儿的姓名
string value_daughter_name;
//女儿生日的月份
int value_birth_month;
//女儿生日的日期
int value_birth_date;
string value_dayghter_constell;
//女儿的五项基本信息:体力,智力,魅力,道德,气质;
array <int, 5> value_array_baseinfo;//动态分配内存
//五项基本属性名
array <string, 5>value_array_baseinfo_names = { “体力”,“智力”,“魅力”,“道德”,“气质” };
int value_daughter_gold = 500;
//星座二维数组;
string constell_name[12]={
“摩羯座”, //1222-0119
“水瓶座”, //0120-0218
“双鱼座”, //0219-0320
“白羊座”, //0321-0419
“金牛座”, //0420-0520
“双子座”, //0521-0621
“巨蟹座”, //0622-0722
“狮子座”, //0723-0822
“处女座”, //0823-0922
“天秤座”, //0923-1023
“天蝎座”, //1024-1122
“射手座”, //1123-1221
};
//2.为女儿录入初始信息(生日,星座);
cout << "父亲的姓名: ";
cin >> value_father_name;
cout << "女儿的姓名: ";
cin >> value_daughter_name;
cout << "女儿的生日: ";
cin >> value_birth_month >> value_birth_date;
cout << "女儿的信息: ";
cout << "姓名: " << value_daughter_name << endl;
cout << "生日: 1659-" << value_birth_month << "-" << value_birth_date << endl;
//下面为判断星座的代码和星座下的各种初始值
if (value_birth_month * 100 + value_birth_date > 1221 || value_birth_month * 100 + value_birth_date <= 119)
{
cout << "星座: " << constell_name[0] << endl;
value_array_baseinfo[0] = 32;
value_array_baseinfo[1] = 23;
value_array_baseinfo[2] = 34;
value_array_baseinfo[3] = 12;
value_array_baseinfo[4] = 35;
value_dayghter_constell = constell_name[0];
}
else if (120 <= value_birth_month * 100 + value_birth_date && value_birth_month * 100 + value_birth_date <= 218)
{
cout << "星座: " << constell_name[1] << endl;
value_array_baseinfo[0] = 34;
value_array_baseinfo[1] = 32;
value_array_baseinfo[2] = 54;
value_array_baseinfo[3] = 21;
value_array_baseinfo[4] = 22;
value_dayghter_constell = constell_name[1];
}
else if (219 <= value_birth_month * 100 + value_birth_date && value_birth_month * 100 + value_birth_date <= 320)
{
cout << "星座: " << constell_name[2] << endl;
value_array_baseinfo[0] = 33;
value_array_baseinfo[1] = 32;
value_array_baseinfo[2] = 63;
value_array_baseinfo[3] = 11;
value_array_baseinfo[4] = 23;
value_dayghter_constell = constell_name[2];
}
else if (321 <= value_birth_month * 100 + value_birth_date && value_birth_month * 100 + value_birth_date <= 419)
{
cout << "星座: " << constell_name[3] << endl;
value_array_baseinfo[0] = 42;
value_array_baseinfo[1] = 25;
value_array_baseinfo[2] = 37;
value_array_baseinfo[3] = 41;
value_array_baseinfo[4] = 32;
value_dayghter_constell = constell_name[3];
}
else if (420 <= value_birth_month * 100 + value_birth_date && value_birth_month * 100 + value_birth_date <= 520)
{
cout << "星座: " << constell_name[4] << endl;
value_array_baseinfo[0] = 23;
value_array_baseinfo[1] = 33;
value_array_baseinfo[2] = 41;
value_array_baseinfo[3] = 28;
value_array_baseinfo[4] = 22;
value_dayghter_constell = constell_name[4];
}
else if (521 <= value_birth_month * 100 + value_birth_date && value_birth_month * 100 + value_birth_date <= 621)
{
cout << "星座: " << constell_name[5] << endl;
value_array_baseinfo[0] = 25;
value_array_baseinfo[1] = 43;
value_array_baseinfo[2] = 19;
value_array_baseinfo[3] = 53;
value_array_baseinfo[4] = 29;
value_dayghter_constell = constell_name[5];
}
else if (622 <= value_birth_month * 100 + value_birth_date && value_birth_month * 100 + value_birth_date <= 722)
{
cout << "星座: " << constell_name[6] << endl;
value_array_baseinfo[0] = 24;
value_array_baseinfo[1] = 32;
value_array_baseinfo[2] = 45;
value_array_baseinfo[3] = 26;
value_array_baseinfo[4] = 29;
value_dayghter_constell = constell_name[6];
}
else if (723 <= value_birth_month * 100 + value_birth_date && value_birth_month * 100 + value_birth_date <= 822)
{
cout << "星座: " << constell_name[7] << endl;
value_array_baseinfo[0] = 34;
value_array_baseinfo[1] = 31;
value_array_baseinfo[2] = 30;
value_array_baseinfo[3] = 42;
value_array_baseinfo[4] = 19;
value_dayghter_constell = constell_name[7];
}
else if (823 <= value_birth_month * 100 + value_birth_date && value_birth_month * 100 + value_birth_date <= 922)
{
cout << "星座: " << constell_name[8] << endl;
value_array_baseinfo[0] = 43;
value_array_baseinfo[1] = 35;
value_array_baseinfo[2] = 23;
value_array_baseinfo[3] = 50;
value_array_baseinfo[4] = 32;
value_dayghter_constell = constell_name[8];
}
else if (923 <= value_birth_month * 100 + value_birth_date && value_birth_month * 100 + value_birth_date <= 1023)
{
cout << "星座: " << constell_name[9] << endl;
value_array_baseinfo[0] = 37;
value_array_baseinfo[1] = 29;
value_array_baseinfo[2] = 44;
value_array_baseinfo[3] = 33;
value_array_baseinfo[4] = 27;
value_dayghter_constell = constell_name[9];
}
else if (1024 <= value_birth_month * 100 + value_birth_date && value_birth_month * 100 + value_birth_date <= 1122)
{
cout << "星座: " << constell_name[10] << endl;
value_array_baseinfo[0] = 41;
value_array_baseinfo[1] = 45;
value_array_baseinfo[2] = 32;
value_array_baseinfo[3] = 33;
value_array_baseinfo[4] = 21;
value_dayghter_constell = constell_name[10];
}
else if (1123 <= value_birth_month * 100 + value_birth_date && value_birth_month * 100 + value_birth_date <= 1221)
{
cout << "星座: " << constell_name[11] << endl;
value_array_baseinfo[0] = 34;
value_array_baseinfo[1] = 26;
value_array_baseinfo[2] = 37;
value_array_baseinfo[3] = 41;
value_array_baseinfo[4] = 58;
value_dayghter_constell = constell_name[11];
}
int choice, temp1, temp2, temp3, temp4, temp5;
//3.根据女儿的星座,设置游戏的基本参数(体力,智力,气质,魅力,道德)
string month_parts[] = { "上旬", "中旬", "下旬" };
//4.开始游戏大的循环
for(int year = 1995; year <= 1995 + 7;year++)
for (int month = (year == 1995) ? 6 : 1; month <= 12; month++)
{
//判断本月是否是女儿的生日
if (month == value_birth_month)
{
cout << "本月" << value_birth_date << "日" << "是" << value_daughter_name << "生日,要不要送礼物呢? " << endl;
cout << "1、有钱任性,买!" << " 2、没钱,算了!" << endl;
int gold;
cin >> choice;
switch (choice)
{
case 1:
cout << "请输入花费的金额: ";
cin >> gold;
cout << "花费了" << gold <<"金币给" << value_daughter_name << "购买了各种各样的生日礼物!\n";
value_daughter_gold -= gold;
break;
case 2:
cout << value_daughter_name << "过了个可怜的生日。\n";
break;
default:
break;
}
}
//显示游戏的主菜单
cout << "现在来看看能给" << value_daughter_name << "安排一些什么活动吧!";
cout << "\n1、 查看状态\n2、 安排行程\n3、 亲子谈话\n4、 存档\n5、 读档" << endl;
cin >> choice;
switch (choice)
{
case 1://查看状态
cout << "嗯,这孩子的信息: \n";
cout << "姓名: " << value_daughter_name << endl;
cout << "生日: 1659-" << value_birth_month << "-" << value_birth_date << endl;
cout << "星座: " << value_dayghter_constell << endl;
cout << "金钱: " << value_daughter_gold << endl;
//打印核心属性
for (int i = 0; i < 5; i++)
{
cout << value_array_baseinfo_names[i] << setw(2) << value_array_baseinfo[i] << " ";
//计算实心数量的百分比
int solidcount = value_array_baseinfo[i] / 10;
for (int j = 0; j < 10; j++)
{
if (j < solidcount)
cout << "■";
else
cout << "□";
}
cout << endl;
}
break;
case 2:
//string month_parts[] = { "上旬", "中旬", "下旬" };
for (int i = 0; i < 3; i++)
{
cout << "--" << month << "月 --" << month_parts[i] << endl;
cout << "1、 学习武艺\n2、 上私塾\n3、 学习礼法\n4、 出城修行\n5、 打工赚钱" << endl;
cout << "请选择: ";
cin >> choice;
//这里注意,需要判断没钱的情况: 强制打工
srand(time(NULL));
if (choice == 1)
{//+体力+魅力-金钱
value_array_baseinfo[0] += temp1 = rand() % 10;
value_array_baseinfo[2] += temp2 = rand() % 10;
value_daughter_gold -= temp3 = rand() % 51;
cout << "学习洋洋大侠好榜样!!!" << endl;
cout << "体力+" << temp1 << ", 魅力+" << temp2 << ", 金钱-" << temp3 << endl;
}
else if (choice == 2)
{//+智力+气质-金钱
value_array_baseinfo[1] += temp1 = rand() % 11;
value_array_baseinfo[4] += temp2 = rand() % 11;
value_daughter_gold -= temp3 = rand() % 41;
cout << "在名师洪洋洋的指导下," << value_daughter_name << "在学习中得到了很多!" << endl;
cout << "智力+" << temp1 << ", 气质+" << temp2 << ", 金钱-" << temp3 << endl;
}
else if (choice == 3)
{//+气质+魅力-金钱
value_array_baseinfo[4] += temp1 = rand() % 9;
value_array_baseinfo[2] += temp2 = rand() % 9;
value_daughter_gold -= temp3 = rand() % 31;
cout << "经过与古代第一美女王昭君的学习!!!" << endl;
cout << "气质+" << temp1 << ", 魅力+" << temp2 << ", 金钱-" << temp3 << endl;
}
else if (choice == 4)
{//+体力+智力+魅力+气质-金钱
value_array_baseinfo[0] += temp1 = rand() % 12;
value_array_baseinfo[1] += temp2 = rand() % 12;
value_array_baseinfo[2] += temp3 = rand() % 9;
value_array_baseinfo[4] += temp4 = rand() % 9;
value_daughter_gold -= temp5 = rand() % 61;
cout << "出城进行了一番辛苦修炼!!!" << endl;
cout << "体力+" << temp1 << ", 智力+" << temp2 << ", 魅力+" << temp3 << ", 气质+" << temp4 << ", 金钱-" << temp5 << endl;
}
else if (choice == 5)
{//+金钱
value_daughter_gold -= temp1 = rand() % 71;
cout << "金钱+" << temp1 << endl;
}
}
break;
case 3:
srand(time(NULL));
cout << value_daughter_name << "的父亲与其进行了深度的亲子谈话。" << endl;
value_array_baseinfo[3] += temp1 = rand() % 12;
cout << "道德+" << temp1 << endl;
break;
case 4:
break;
case 5:
break;
default:
break;
}
}
//5.更具各项参数,判定游戏结果
int sum = 0;
for (int i = 0; i < 5; i++)
{
sum += value_array_baseinfo[i];
}
if (sum >= 2000)
{
cout << value_daughter_name << "成长为女王陛下。" << endl;
}
else if (sum >= 1800 && sum < 2000)
{
cout << value_daughter_name << "嫁给了奥斯帝国国王洪洋洋,成为了王妃。" << endl;
}
else if (sum >= 1600 && sum < 1800)
{
cout << value_daughter_name << "成长为女将军。" << endl;
}
else if (sum >= 1200 && sum < 1600)
{
cout << value_daughter_name << "成长为一名普通的民女。" << endl;
}
else if (sum < 1200)
{
cout << value_daughter_name << "成长为了一名乞丐。" << endl;
}
system("pause");
return 0;
由于时间有限,本人自己也没有演示下去,不知道自己的小公举能成长为什么,有兴趣的朋友可以试试!
关于判断星座的大算法,是有其一点的缺陷,就是当生日的月份大于12,日子大于31,后并不会报错且能继续判定星座,这显然是不合理的!也没有兴趣去修改了,有兴趣的可以改改,c++的学期周期感觉很长,而本人想迫切进入此行业,于是打算转为自学python,各位好朋友一个月后我会继续以python写一个小程序分享出来!届时请大家不吝赐教!