-
个人简介
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <windows.h>
void gotoxy(int x, int y) { COORD pos; pos.X = x; pos.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); }
void SetColor(int c) { HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(h, c); }
#define CITY_NUM 10 #define GOODS_NUM 15 #define JOB_NUM 12 #define OFFICIAL_MAX 15 #define WIFE_MAX 6 #define FARM_MAX 8 #define FRIEND_MAX 10 #define HORSE_MAX 5 #define CHILD_MAX 8 #define SKILL_MAX 10 #define TASK_MAX 12 #define PET_MAX 4 #define SHOP_MAX 12
char PlayerName[30]; int Age, Day, Money, Gold, Diamond; int Power, Intellect, Charm, Force, Luck; int GoodEvil, Reputation, Health, Mood; int OfficialLevel, NowCity, HouseLevel, JobType; int WifeCount, ChildCount, SectID, Fame; int RideHorse, HorseCount; int FriendNum; int FarmCount; int Silkworm, Mulberry, Yarn, Cloth, Clothes; int Skill[SKILL_MAX]; int TaskComplete[TASK_MAX]; int TaskDay[TASK_MAX]; int PetCount; int PetHappy[PET_MAX]; char PetName[PET_MAX][20]; int ShopOpen;
int BankDebt = 0; int BankDebtDay = 0;
char OfficialName[50]; char House[60]; char SectName[40];
char CityList[CITY_NUM][40] = { "清风村","青溪县","扬州城","苏州城","杭州城", "汴京城","紫金宫","北境关","东海湾","西域城" };
char GoodsName[GOODS_NUM][30] = { "大米","丝绸","茶叶","药材","笔墨","兵器", "玉佩","名画","珠宝","粮食","粗布","成衣", "美酒","书籍","香料" }; int BuyPrice[GOODS_NUM] = {15,130,75,140,55,280,240,380,750,20,10,80,120,90,160}; int SellPrice[GOODS_NUM] = {10,95,55,110,38,200,170,270,550,14,6,60,85,60,110}; int Goods[GOODS_NUM];
char JobName[JOB_NUM][30] = { "无业","农夫","渔夫","工匠","商人","书生", "侠客","士兵","郎中","织女","镖师","乐师" };
char WifeName[WIFE_MAX][25]; int WifeCharm[WIFE_MAX]; int WifeLove[WIFE_MAX];
char ChildName[CHILD_MAX][25]; int ChildAge[CHILD_MAX]; int ChildTalent[CHILD_MAX];
int FarmLand[FARM_MAX]; int FarmStage[FARM_MAX]; int FarmWater[FARM_MAX]; int FarmBuyPrice = 500;
char HorseName[HORSE_MAX][25]; int HorseSpeed[HORSE_MAX]; int HorsePrice[HORSE_MAX] = {500,1200,3000,6000,15000}; char HorseTypeName[HORSE_MAX][25] = {"家马","良驹","千里马","踏雪","飞电"};
char FriendName[FRIEND_MAX][25]; int FriendType[FRIEND_MAX]; int FriendFavor[FRIEND_MAX]; char FriendTypeStr[4][20] = {"侠客","书生","商人","官员"};
int Drought, Flood, Storm;
void GameStart(); void MainMenu(); void ShowStatus(); void MoveCity(); void ChooseJob(); void GoWork(); void BuyHouse(); void Market(); void Trade(int op); void Exam(); void MeetEmperor(); void Marry(); void HaveBaby(); void Rest(); void NextDay(); void Pause(); void SetTitle(); void RandomEvent(); void NobleEvent(); void Disaster();
void FarmSys(); void BuyFarm(); void Plow(); void Sow(); void Water(); void Fert(); void Harvest();
void WeaveSys(); void PickLeaf(); void FeedSilk(); void MakeYarn(); void MakeCloth(); void MakeClothes(); void SellClothes();
void HorseSys(); void BuyHorse(); void ChangeHorse();
void FriendSys(); void MakeFriend(); void ChatFriend(); void HelpFriend();
void ChildSys(); void TrainChild(); void PetSys(); void BuyPet(); void PlayPet(); void SkillSys(); void TaskSys(); void CheckTask(); void ShopSys(); void BlackMarket(); void Arena(); void SectSys(); void Lottery(); void Casino(); void Hospital(); void Bank(); void Travel(); void Hunt(); void Fish(); void Mine();
int main() { GameStart(); while (1) { MainMenu(); } return 0; }
void GameStart() { system("mode con cols=100 lines=36"); system("cls"); srand((unsigned)time(NULL));
Age = 16; Day = 1; Money = 1000; Gold = 10; Diamond = 0; Power = 100; Intellect = 60; Charm = 50; Force = 40; Luck = 50; GoodEvil = 50; Reputation = 20; Health = 100; Mood = 80; OfficialLevel = 0; NowCity = 0; HouseLevel = 0; JobType = 0; WifeCount = 0; ChildCount = 0; SectID = 0; Fame = 0; HorseCount = 0; RideHorse = -1; FriendNum = 0; FarmCount = 0; ShopOpen = 0; PetCount = 0; BankDebt = 0; BankDebtDay = 0; strcpy(OfficialName,"平民"); strcpy(House,"无房"); strcpy(SectName,"无门派"); int i; for(i=0;i<GOODS_NUM;i++) Goods[i]=0; for(i=0;i<FARM_MAX;i++){ FarmLand[i]=0; FarmStage[i]=0; FarmWater[i]=0; } for(i=0;i<SKILL_MAX;i++) Skill[i]=0; for(i=0;i<TASK_MAX;i++){ TaskComplete[i]=0; TaskDay[i]=0; } for(i=0;i<PET_MAX;i++){ PetHappy[i]=0; strcpy(PetName[i],""); } Mulberry=5; Silkworm=0; Yarn=0; Cloth=0; Clothes=0; Drought=0; Flood=0; Storm=0; gotoxy(15,2); SetColor(12); printf("============================================="); gotoxy(15,3); SetColor(10); printf("| 古代人生模拟器 |"); gotoxy(15,4); SetColor(12); printf("============================================="); gotoxy(20,6); SetColor(11); printf(" 种田 | 经商 | 科举 | 娶妻 | 骑马 | 奇遇 "); gotoxy(22,8); SetColor(14); printf("请输入你的名字:"); SetColor(7); scanf("%29s",PlayerName); gotoxy(20,10); SetColor(10); printf("欢迎 %s 开启你的古代传奇人生!",PlayerName); SetColor(7); Pause();}
void SetTitle() { switch(OfficialLevel) { case 0:strcpy(OfficialName,"平民百姓");break; case 1:strcpy(OfficialName,"童生");break; case 2:strcpy(OfficialName,"秀才");break; case 3:strcpy(OfficialName,"举人");break; case 4:strcpy(OfficialName,"贡士");break; case 5:strcpy(OfficialName,"进士");break; case 6:strcpy(OfficialName,"编修");break; case 7:strcpy(OfficialName,"知县");break; case 8:strcpy(OfficialName,"知府");break; case 9:strcpy(OfficialName,"按察使");break; case 10:strcpy(OfficialName,"巡抚");break; case 11:strcpy(OfficialName,"尚书");break; case 12:strcpy(OfficialName,"丞相");break; case 13:strcpy(OfficialName,"太师");break; case 14:strcpy(OfficialName,"王爵");break; default:strcpy(OfficialName,"未知"); } }
void MainMenu() { int op; gotoxy(0,0); SetTitle();
SetColor(12); printf("╔══════════════════════════════════════════════════════════════╗\n"); SetColor(14); printf(" 人物:%-8s 年龄:%2d 天数:%4d 心情:%3d 健康:%3d \n", PlayerName,Age,Day,Mood,Health); SetColor(11); printf(" 银两:%6d 黄金:%4d 钻石:%3d 声望:%4d \n", Money,Gold,Diamond,Reputation); SetColor(10); printf(" 官职:%-10s 住房:%-10s 城市:%s \n", OfficialName,House,CityList[NowCity]); SetColor(13); printf(" 才智:%3d 魅力:%3d 武力:%3d 体力:%3d 运气:%3d \n", Intellect,Charm,Force,Power,Luck); SetColor(12); printf("╠══════════════════════════════════════════════════════════════╣\n"); SetColor(9); printf(" 【一】基础生活 【二】能力养成 【三】趣味玩法\n"); printf(" 1.个人状态 11.学习技能 21.赛马大会\n"); printf(" 2.更换职业 12.每日任务 22.竞技场\n"); printf(" 3.外出工作 13.门派加入 23.狩猎寻宝\n"); printf(" 4.移动城市 14.宠物培养 24.钓鱼采矿\n"); printf(" 5.买房置地 15.孩子教育 25.云游四方\n"); printf(" 6.休息睡觉 \n"); printf(" \n"); printf(" 【四】经商贸易 【五】官场仕途 【六】休闲娱乐\n"); printf(" 7.集市交易 16.科举考试 26.彩票抽奖\n"); printf(" 8.开设店铺 17.皇宫面圣 27.赌场博弈\n"); printf(" 9.黑市交易 18.朝廷任务 28.医馆疗伤\n"); printf(" 10.钱庄存取 19.江湖悬赏 29.酒馆小酌\n"); printf(" \n"); printf(" 【七】田园生活 【八】社交情缘 【九】坐骑系统\n"); printf(" 30.种田系统 40.娶妻纳妾 50.马匹商店\n"); printf(" 31.织布系统 41.结交好友 51.更换坐骑\n"); printf(" \n"); SetColor(12); printf("║ 99.退出游戏 Q.奇遇 ║\n"); printf("╚══════════════════════════════════════════════════════════════╝\n"); SetColor(14); printf(" 请输入操作:"); SetColor(7); scanf("%d",&op); if(op==1) ShowStatus(); if(op==2) ChooseJob(); if(op==3) GoWork(); if(op==4) MoveCity(); if(op==5) BuyHouse(); if(op==6) Rest(); if(op==7) Market(); if(op==8) ShopSys(); if(op==9) BlackMarket(); if(op==10) Bank(); if(op==11) SkillSys(); if(op==12) TaskSys(); if(op==13) SectSys(); if(op==14) PetSys(); if(op==15) ChildSys(); if(op==16) Exam(); if(op==17) MeetEmperor(); if(op==20) RandomEvent(); if(op==21) Travel(); if(op==26) Lottery(); if(op==28) Hospital(); if(op==30) FarmSys(); if(op==31) WeaveSys(); if(op==40) Marry(); if(op==41) FriendSys(); if(op==50) HorseSys(); if(op==99) exit(0); if(rand()%4==0) NobleEvent(); if(rand()%7==0) Disaster(); NextDay();}
void ShowStatus() { system("cls"); SetColor(12); printf("══════════════ 角色完整档案 ══════════════\n"); SetColor(10); printf(" 姓名:%s 年龄:%d 天数:%d\n",PlayerName,Age,Day); printf(" 银两:%d 黄金:%d 钻石:%d\n",Money,Gold,Diamond); printf(" 才智:%d 魅力:%d 武力:%d\n",Intellect,Charm,Force); printf(" 体力:%d 健康:%d 心情:%d\n",Power,Health,Mood); printf(" 官职:%s 声望:%d 运气:%d\n",OfficialName,Reputation,Luck); printf(" 住房:%s 城市:%s 职业:%s\n",House,CityList[NowCity],JobName[JobType]); printf(" 妻子:%d人 子女:%d人 好友:%d人\n",WifeCount,ChildCount,FriendNum); if(BankDebt>0) printf(" 欠债:%d两(已拖欠%d天)\n",BankDebt,BankDebtDay); SetColor(7); Pause(); }
void ChooseJob() { system("cls"); SetColor(11); printf("════════ 选择职业 ════════\n"); int i; for(i=0;i<JOB_NUM;i++) { SetColor(10); printf(" %d. %s\n",i,JobName[i]); } SetColor(14); printf(" 选择职业:"); scanf("%d",&JobType); SetColor(10); printf(" 职业更换成功!\n"); SetColor(7); Pause(); }
void GoWork() { system("cls"); int earn=rand()%100+50; Money+=earn; Power-=20; Mood-=5; Intellect+=rand()%5; SetColor(10); printf(" 辛勤工作,获得银两 %d 两!\n",earn); SetColor(7); Pause(); }
void MoveCity() { system("cls"); SetColor(11); printf("════════ 天下城池 ════════\n"); int i; for(i=0;i<CITY_NUM;i++) { SetColor(10); printf(" %d. %s\n",i,CityList[i]); } SetColor(14); printf(" 前往城市:"); scanf("%d",&NowCity); Power-=15; if(RideHorse!=-1) Power+=10; SetColor(10); printf(" 抵达 %s!\n",CityList[NowCity]); SetColor(7); Pause(); }
void BuyHouse() { system("cls"); SetColor(11); printf("════════ 购置房产 ════════\n"); if(HouseLevel0&&Money>=800) { Money-=800; HouseLevel=1; strcpy(House,"茅草屋"); } else if(HouseLevel1&&Money>=3000) { Money-=3000; HouseLevel=2; strcpy(House,"砖瓦房"); } else if(HouseLevel2&&Money>=15000) { Money-=15000; HouseLevel=3; strcpy(House,"大宅院"); } else if(HouseLevel3&&Money>=50000) { Money-=50000; HouseLevel=4; strcpy(House,"王府"); } SetColor(10); printf(" 房产:%s\n",House); SetColor(7); Pause(); }
void Rest() { system("cls"); Power=100; Health+=10; Mood+=15; SetColor(10); printf(" 休息完毕,体力全满!\n"); SetColor(7); Pause(); }
void Market() { system("cls"); int op; SetColor(11); printf(" 1.买入 2.卖出\n 选择:"); scanf("%d",&op); Trade(op); }
void Trade(int op) { system("cls"); int i,id,num; SetColor(10); for(i=0;i<GOODS_NUM;i++) { printf(" %d.%-10s 持有:%d\n",i,GoodsName[i],Goods[i]); } SetColor(14); printf(" 物品编号:"); scanf("%d",&id); printf(" 数量:"); scanf("%d",&num);
if(op==1) { if(Money>=BuyPrice[id]*num) { Money-=BuyPrice[id]*num; Goods[id]+=num; } } if(op==2) { if(Goods[id]>=num) { Goods[id]-=num; Money+=SellPrice[id]*num; } } SetColor(10); printf(" 交易完成!\n"); SetColor(7); Pause();}
void Exam() { system("cls"); if(Intellect>=70) { OfficialLevel++; Reputation+=30; SetColor(10); printf(" 科举成功,升官!\n"); } else { Intellect+=10; SetColor(12); printf(" 学识不足,落榜!\n"); } SetColor(7); Pause(); }
void MeetEmperor() { system("cls"); if(NowCity!=6) { SetColor(12); printf(" 必须在紫金宫才能面圣!\n"); } else if(OfficialLevel>=6) { Gold+=rand()%5+2; Reputation+=20; SetColor(10); printf(" 皇帝赏赐黄金!\n"); } else { SetColor(12); printf(" 官职不足!\n"); } SetColor(7); Pause(); }
void Marry() { system("cls"); if(WifeCount>=WIFE_MAX) { SetColor(12); printf(" 妻妾已满!\n"); } else if(Money>=2000&&Charm>=70) { WifeCount++; Money-=2000; WifeCharm[WifeCount-1]=rand()%40+60; WifeLove[WifeCount-1]=80; SetColor(10); printf(" 娶妻成功!\n"); } else { SetColor(12); printf(" 条件不足!\n"); } SetColor(7); Pause(); }
void FarmSys() { system("cls"); int op; SetColor(11); printf("════════ 农田系统 ════════\n"); printf(" 1.买田 2.耕地 3.播种 4.浇水 5.施肥 6.收割\n"); printf(" 选择:"); scanf("%d",&op); if(op1) BuyFarm(); if(op2) Plow(); if(op3) Sow(); if(op4) Water(); if(op5) Fert(); if(op6) Harvest(); }
void BuyFarm() { if(FarmCount>=FARM_MAX){printf(" 已满!\n");Pause();return;} if(Money>=FarmBuyPrice) { Money-=FarmBuyPrice; FarmLand[FarmCount++]=1; printf(" 买田成功!\n"); } Pause(); }
void Plow(){Power-=10;printf(" 耕地完成!\n");Pause();} void Sow(){printf(" 播种完成!\n");Pause();} void Water(){Power-=5;printf(" 浇水完成!\n");Pause();} void Fert(){Money-=50;printf(" 施肥完成!\n");Pause();}
void Harvest() { int get=rand()%150+100; Money+=get; printf(" 收获粮食,获得 %d 两!\n",get); Pause(); }
void WeaveSys() { system("cls"); int op; printf(" 1.采桑 2.养蚕 3.纺线 4.织布 5.制衣 6.卖衣\n 选择:"); scanf("%d",&op); if(op1){Mulberry+=5;Power-=8;printf(" 采桑!\n");} if(op2){if(Mulberry>=3){Mulberry-=3;Silkworm+=5;}} if(op3){if(Silkworm>=4){Silkworm-=4;Yarn+=3;}} if(op4){if(Yarn>=2){Yarn-=2;Cloth+=2;}} if(op5){if(Cloth>=2){Cloth-=2;Clothes++;}} if(op6){if(Clothes>=1){Clothes--;Money+=200;}} Pause(); }
void HorseSys() { system("cls"); int op; printf(" 1.买马 2.换坐骑\n 选择:"); scanf("%d",&op); if(op1) BuyHorse(); if(op2) ChangeHorse(); }
void BuyHorse() { int id; printf(" 1.家马(500) 2.良驹(1200) 3.千里马(3000) 4.踏雪(6000) 5.飞电(15000)\n 选择:"); scanf("%d",&id);id--; if(HorseCount>=HORSE_MAX){printf(" 已满!\n");Pause();return;} if(Money>=HorsePrice[id]) { Money-=HorsePrice[id]; strcpy(HorseName[HorseCount],HorseTypeName[id]); HorseSpeed[HorseCount]=20+id*20; HorseCount++; printf(" 买马成功!\n"); } Pause(); }
void ChangeHorse() { int i; for(i=0;i<HorseCount;i++) printf(" %d.%s\n",i+1,HorseName[i]); printf(" 选择坐骑(-1下马):"); scanf("%d",&RideHorse); RideHorse--; Pause(); }
void FriendSys() { system("cls"); int op; printf(" 1.结交 2.聊天 3.求助\n 选择:"); scanf("%d",&op); if(op1) MakeFriend(); if(op2) ChatFriend(); if(op==3) HelpFriend(); }
void MakeFriend() { if(FriendNum>=FRIEND_MAX){printf(" 已满!\n");Pause();return;} FriendType[FriendNum]=rand()%4; FriendFavor[FriendNum]=50; FriendNum++; printf(" 结交成功!\n"); Pause(); }
void ChatFriend() { if(FriendNum<1){Pause();return;} FriendFavor[0]+=10; Mood+=5; printf(" 聊天愉快!\n"); Pause(); }
void HelpFriend() { if(FriendFavor[0]>=80) { Money+=500; printf(" 资助银两!\n"); } Pause(); }
void ChildSys() { system("cls"); if(WifeCount<1){printf(" 无妻子!\n");Pause();return;} if(ChildCount>=CHILD_MAX){printf(" 子女满!\n");Pause();return;} ChildCount++; ChildAge[ChildCount-1]=1; ChildTalent[ChildCount-1]=rand()%50+50; printf(" 喜得贵子!\n"); Pause(); }
void PetSys() { system("cls"); int op; printf(" 1.买宠物 2.逗宠物\n 选择:"); scanf("%d",&op); if(op1) BuyPet(); if(op2) PlayPet(); }
void BuyPet() { if(PetCount>=PET_MAX){Pause();return;} PetCount++; PetHappy[PetCount-1]=100; strcpy(PetName[PetCount-1],"小狗"); printf(" 获得宠物!\n"); Pause(); }
void PlayPet() { if(PetCount<1){Pause();return;} PetHappy[0]+=20; Mood+=10; printf(" 开心!\n"); Pause(); }
void SkillSys() { system("cls"); printf(" 1.读书 2.练武 3.练魅力\n 选择:"); int op; scanf("%d",&op); if(op1) Intellect+=10; if(op2) Force+=10; if(op==3) Charm+=10; printf(" 提升成功!\n"); Pause(); }
void TaskSys() { system("cls"); printf(" 每日任务:赚钱、读书、练武\n完成可领奖励!\n"); Money+=200; printf(" 领取奖励 200 两!\n"); Pause(); }
void ShopSys() { system("cls"); if(ShopOpen==0&&Money>=10000) { ShopOpen=1; Money-=10000; printf(" 店铺开业!\n"); } else { Money+=rand()%500+300; printf(" 店铺盈利!\n"); } Pause(); }
void BlackMarket() { system("cls"); Gold+=2; Money-=1000; printf(" 黑市交易完成!\n"); Pause(); }
void Bank() { system("cls"); int op; printf(" 1.存款 2.取款 3.还款\n"); printf(" 当前欠款:%d两\n",BankDebt); scanf("%d",&op);
if(op==1) { Money-=1000; printf(" 存入成功!\n"); } else if(op==2) { Money+=1000; if(BankDebt>0) printf(" 警告:长时间不还会被告上官府砍头!\n"); printf(" 取出成功!\n"); } else if(op==3) { if(Money>=BankDebt) { Money-=BankDebt; BankDebt=0; BankDebtDay=0; printf(" 还清欠款!\n"); } else { printf(" 银两不足!\n"); } } Pause();}
void Lottery() { system("cls"); Money-=100; if(rand()%10==0) { Money+=5000; printf(" 中奖!大奖 5000 两!\n"); } else { printf(" 谢谢参与!\n"); } Pause(); }
void Hospital() { system("cls"); Health=100; Money-=300; printf(" 身体痊愈!\n"); Pause(); }
void Travel() { system("cls"); Mood+=30; Reputation+=10; printf(" 云游四方,心情大好!\n"); Pause(); }
void RandomEvent() { system("cls"); int r=rand()%6; if(r0){Money+=500;printf(" 捡到银两!\n");} if(r1){Intellect+=15;printf(" 遇到名师!\n");} if(r2){Force+=15;printf(" 获得武功秘籍!\n");} if(r3){Gold+=3;printf(" 挖到金矿!\n");} if(r4){Reputation+=20;printf(" 行侠仗义!\n");} if(r5){Mood+=20;printf(" 遇到美人!\n");} Pause(); }
void NobleEvent() { gotoxy(0,30);SetColor(12); printf(" 贵族恶霸横行街头!"); if(Force>=80) { SetColor(10); printf(" 你将其打跑,声望大增!\n"); Reputation+=30; } else { SetColor(14); printf(" 你被欺负,损失银两!\n"); Money-=200; } SetColor(7); Pause(); }
void Disaster() { gotoxy(0,32);SetColor(12); printf(" 天灾降临!"); if(rand()%2==0) { Money-=300; printf(" 损失财产!\n"); } else { Health-=10; printf(" 身体不适!\n"); } SetColor(7); }
void SectSys() { system("cls"); SectID=1; strcpy(SectName,"青云门"); Reputation+=50; printf(" 加入门派成功!\n"); Pause(); }
void NextDay() { Day++; if(Day%30==0) Age++; Health-=3; Mood-=2;
if(BankDebt>0) { BankDebtDay++; BankDebt+=1; if(BankDebtDay>30) { system("cls"); SetColor(12); printf(" 你长期拖欠钱庄债务,被官府判斩立决!\n"); printf(" 游戏结束!\n"); exit(0); } } if(Money<0) Money=0; if(Health<0) Health=0; if(Mood<0) Mood=0; if(Power<0) Power=0;}
void Pause() { SetColor(7); printf("\n 按回车继续..."); system("pause"); }
-
最近活动
-
Stat
-
Rating