pip_other.c
来自「linux/unix环境下的建站系统」· C语言 代码 · 共 313 行
C
313 行
/*---------------------------------------------------------------------------*//* 函式特区 *//* *//*---------------------------------------------------------------------------*/#include "pip.h"extern struct chicken d;extern time_t start_time;extern time_t lasttime;/*名字 体力MAX法力MAX 攻击 防护 速度 财宝 特别 图档*/const struct playrule resultmanlist[] = { {"茱丽叶塔", 60, 0, 20, 0, 20, 20, 20, 150, "11101", 0, 0}, {"菲欧利娜", 60, 0, 20, 0, 30, 30, 30, 200, "01111", 0, 0}, {"阿妮斯", 80, 0, 40, 0, 50, 35, 60, 250, "11110", 0, 0}, {"帕多雷西亚", 85, 0, 30, 0, 80, 90, 80, 500, "10111", 0, 0}, {"卡美拉美", 90, 0, 50, 0, 75, 70, 60, 550, "11010", 0, 0}, {"姗娜丽娃", 90, 0, 40, 0, 10, 30, 50, 880, "10100", 0, 0}};/*求婚*/intpip_marriage_offer(){ time_t now; char buf[256]; char ans[4]; int money; int who; const static char *name[5][2] = { {"女商人A", "商人A"}, {"女商人B", "商人B"}, {"女商人C", "商人C"}, {"女商人D", "商人D"}, {"女商人E", "商人E"} }; do { who = rand() % 5; } while (d.lover == (who + 3)); money = rand() % 2000 + rand() % 3000 + 4000; sprintf(buf, "%s带来了金钱%d,要向你的小鸡求婚,您愿意吗?[y/N]", name[who][d.sex - 1], money);#ifdef MAPLE getdata(b_lines - 1, 1, buf, ans, 2, 1, 0);#else getdata(b_lines-1,1,buf,ans,2,DOECHO,NULL,true);#endif // END MAPLE if (ans[0] == 'y' || ans[0] == 'Y') { if (d.wantend != 1 && d.wantend != 4) { sprintf(buf, "ㄚ~之前已经有婚约了,您确定要解除旧婚约,改定立婚约吗?[y/N]");#ifdef MAPLE getdata(b_lines - 1, 1, buf, ans, 2, 1, 0);#else getdata(b_lines-1,1,buf,ans,2,DOECHO,NULL,true);#endif // END MAPLE if (ans[0] != 'y' && ans[0] != 'Y') { d.social += 10; temppress("还是维持旧婚约好了.."); return 0; } d.social -= rand() % 50 + 100; } d.charm -= rand() % 5 + 20; d.lover = who + 3; d.relation -= 20; if (d.relation < 0) d.relation = 0; if (d.wantend < 4) d.wantend = 2; else d.wantend = 5; temppress("我想对方是一个很好的伴侣.."); now = time(0); sprintf(buf, "\033[1;37m%s %-11s的小鸡 [%s] 接受了 %s 的求婚\033[0m\n", Cdate(now), getCurrentUser()->userid, d.name, name[who][d.sex - 1]); pip_log_record(buf); } else { d.charm += rand() % 5 + 20; d.relation += 20; if (d.wantend == 1 || d.wantend == 4) { temppress("我还年轻 心情还不定..."); } else { temppress("我早已有婚约了..对不起..."); } } d.money += money; return 0;}intpip_results_show(){ /*收获季 */ const static char *showname[5] = { " ", "武斗大会", "艺术大展", "皇家舞会", "烹饪大赛" }; char buf[256]; int pipkey, i = 0; int winorlost = 0; int a, b[3][2], c[3]; clear(); move(10, 14); prints("\033[1;33m叮咚叮咚~ 辛苦的邮差帮我们送信来了喔...\033[0m"); temppress("嗯 把信打开看看吧..."); clear(); show_resultshow_pic(0); sprintf(buf, "[A]%s [B]%s [C]%s [D]%s [Q]放弃:", showname[1], showname[2], showname[3], showname[4]); move(b_lines, 0); prints(buf); do { pipkey = igetkey(); } while (pipkey != 'q' && pipkey != 'Q' && pipkey != 'A' && pipkey != 'a' && pipkey != 'B' && pipkey != 'b' && pipkey != 'C' && pipkey != 'c' && pipkey != 'D' && pipkey != 'd'); a = rand() % 4 + 1; b[0][0] = a - 1; b[1][0] = a + 1; b[2][0] = a; switch (pipkey) { case 'A': case 'a': temppress("今年共有四人参赛~现在比赛开始"); for (i = 0; i < 3; i++) { a = 0; b[i][1] = 0; sprintf(buf, "你的第%d个对手是%s", i + 1, resultmanlist[b[i][0]].name); temppress(buf); a = pip_vs_man(b[i][0], resultmanlist, 2); if (a == 1) b[i][1] = 1; /*对方输了 */ winorlost += a; d.death = 0; } switch (winorlost) { case 3: pip_results_show_ending(3, 1, b[1][0], b[0][0], b[2][0]); d.hexp += rand() % 10 + 50; break; case 2: if (b[0][1] != 1) { c[0] = b[0][0]; c[1] = b[1][0]; c[2] = b[2][0]; } else if (b[1][1] != 1) { c[0] = b[1][0]; c[1] = b[2][0]; c[2] = b[0][0]; } else if (b[2][1] != 1) { c[0] = b[2][0]; c[1] = b[0][0]; c[2] = b[1][0]; } else break; pip_results_show_ending(2, 1, c[0], c[1], c[2]); d.hexp += rand() % 10 + 30; break; case 1: if (b[0][1] == 1) { c[0] = b[2][0]; c[1] = b[1][0]; c[2] = b[0][0]; } else if (b[1][1] == 1) { c[0] = b[0][0]; c[1] = b[2][0]; c[2] = b[1][0]; } else if (b[2][1] == 1) { c[0] = b[1][0]; c[1] = b[0][0]; c[2] = b[2][0]; } else break; pip_results_show_ending(1, 1, c[0], c[1], c[2]); d.hexp += rand() % 10 + 10; break; case 0: pip_results_show_ending(0, 1, b[0][0], b[1][0], b[2][0]); d.hexp -= rand() % 10 + 10; break; } break; case 'B': case 'b': temppress("今年共有四人参赛~现在比赛开始"); show_resultshow_pic(21); temppress("比赛情形"); if ((d.art * 2 + d.character) / 400 >= 5) { winorlost = 3; } else if ((d.art * 2 + d.character) / 400 >= 4) { winorlost = 2; } else if ((d.art * 2 + d.character) / 400 >= 3) { winorlost = 1; } else { winorlost = 0; } pip_results_show_ending(winorlost, 2, rand() % 2, rand() % 2 + 2, rand() % 2 + 4); d.art += rand() % 10 + 20 * winorlost; d.character += rand() % 10 + 20 * winorlost; break; case 'C': case 'c': temppress("今年共有四人参赛~现在比赛开始"); if ((d.art * 2 + d.charm) / 400 >= 5) { winorlost = 3; } else if ((d.art * 2 + d.charm) / 400 >= 4) { winorlost = 2; } else if ((d.art * 2 + d.charm) / 400 >= 3) { winorlost = 1; } else { winorlost = 0; } d.art += rand() % 10 + 20 * winorlost; d.charm += rand() % 10 + 20 * winorlost; pip_results_show_ending(winorlost, 3, rand() % 2, rand() % 2 + 4, rand() % 2 + 2); break; case 'D': case 'd': temppress("今年共有四人参赛~现在比赛开始"); if ((d.affect + d.cookskill * 2) / 200 >= 4) { winorlost = 3; } else if ((d.affect + d.cookskill * 2) / 200 >= 3) { winorlost = 2; } else if ((d.affect + d.cookskill * 2) / 200 >= 2) { winorlost = 1; } else { winorlost = 0; } d.cookskill += rand() % 10 + 20 * winorlost; d.family += rand() % 10 + 20 * winorlost; pip_results_show_ending(winorlost, 4, rand() % 2 + 2, rand() % 2, rand() % 2 + 4); break; case 'Q': case 'q': temppress("今年不参加啦.....:("); d.happy -= rand() % 10 + 10; d.satisfy -= rand() % 10 + 10; d.relation -= rand() % 10; break; } if (pipkey != 'Q' && pipkey != 'q') { d.tired = 0; d.hp = d.maxhp; d.happy += rand() % 20; d.satisfy += rand() % 20; d.relation += rand() % 10; } return 0;}intpip_results_show_ending(winorlost, mode, a, b, c)int winorlost, mode, a, b, c;{ const static char *gamename[5] = { " ", "武斗大会", "艺术大展", "皇家舞会", "烹饪大赛" }; int resultmoney[4] = { 0, 3000, 5000, 8000 }; char name1[25], name2[25], name3[25], name4[25]; char buf[256]; if (winorlost == 3) { strcpy(name1, d.name); strcpy(name2, resultmanlist[a].name); strcpy(name3, resultmanlist[b].name); strcpy(name4, resultmanlist[c].name); } else if (winorlost == 2) { strcpy(name1, resultmanlist[a].name); strcpy(name2, d.name); strcpy(name3, resultmanlist[b].name); strcpy(name4, resultmanlist[c].name); } else if (winorlost == 1) { strcpy(name1, resultmanlist[a].name); strcpy(name2, resultmanlist[b].name); strcpy(name3, d.name); strcpy(name4, resultmanlist[c].name); } else { strcpy(name1, resultmanlist[a].name); strcpy(name2, resultmanlist[b].name); strcpy(name3, resultmanlist[c].name); strcpy(name4, d.name); } clear(); move(6, 13); prints("\033[1;37m~~~ \033[32m本届 %s 结果揭晓 \033[37m~~~\033[0m", gamename[mode]); move(8, 15); prints("\033[1;41m 冠军 \033[0;1m~ \033[1;33m%-10s\033[36m 奖金 %d\033[0m", name1, resultmoney[3]); move(10, 15); prints("\033[1;41m 亚军 \033[0;1m~ \033[1;33m%-10s\033[36m 奖金 %d\033[0m", name2, resultmoney[2]); move(12, 15); prints("\033[1;41m 季军 \033[0;1m~ \033[1;33m%-10s\033[36m 奖金 %d\033[0m", name3, resultmoney[1]); move(14, 15); prints("\033[1;41m 最后 \033[0;1m~ \033[1;33m%-10s\033[36m \033[0m", name4); sprintf(buf, "今年的%s结束罗 后年再来吧..", gamename[mode]); d.money += resultmoney[winorlost]; temppress(buf); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?