/* * <<D Q>> * * Author xkfx<[email protected]> * * 游戏规则:利用适当的决策,在13回合内击杀恶龙取得胜利。 * * 2016 - * */ #include<stdio.h> #include<stdlib.h> #include<time.h> void show_State(int round, int dragon_HP, int warrior_HP, int warrior_MP) { //输出起始分割栏 printf("- ROUND-%2d ---------------\n", round); //输出dragon状态 printf(" <Deathwing> \n"); printf(" HP = %-4d , MP = ???? \n", dragon_HP); //输出worrior状态 printf(" <Worrior> \n"); printf(" HP = %-4d , MP = %-4d \n", warrior_HP, warrior_MP); //输出结束分割栏 printf("--------------------------------\n"); } void show_Skill() { printf("Here is your actions:\n"); //show hero skill printf("1 Holy Light -140mp\n"); //show basic skill printf("2 Normal Attack -20mp\n"); printf("3 Force of Nature -0mp\n"); //show final skill printf("4 Sword of Judgement \n"); printf(">Warrior, please choose your action:"); } int main() { /*创建游戏所需的数据*/ int dragon_HP = 4460; int warrior_HP = 1788; int warrior_MP = 240; int score = 1000; int skill_tmp = 0; int skill_tmp_2 = 0; int round; int choice; srand((int)time(0)); system("cls"); for(round = 1; round <= 13; round ++){ srand(rand()); /*显示人物状态*/ show_State(round, dragon_HP, warrior_HP, warrior_MP); /**/ if(round == 13) printf("Deathwing: ALL WILL BURN...\n"); /*显示决策信息*/ show_Skill(); /*选择决策*/ scanf("%d", &choice); system("cls"); /*执行决策&优先判定敌方*/ /*warrior*/ switch(choice){ case 1: if(warrior_MP < 140) break; skill_tmp = 1788 - warrior_HP; warrior_HP = 1788; warrior_MP = warrior_MP - 140; score = score - skill_tmp; printf("Warrior: I am theone horseman of the Apocalypse!\n"); printf("You has restored %d HP.\n", skill_tmp); break; case 2: if(warrior_MP < 20) break; skill_tmp = skill_tmp_2 + 297 + rand()%152; dragon_HP = dragon_HP - skill_tmp; warrior_MP = warrior_MP - 20; skill_tmp_2 = 0; score = score + skill_tmp; printf("Your cause %d damage !\n", skill_tmp); break; case 3: skill_tmp_2 = skill_tmp_2 + 337 + rand()%488; printf("Your Damage Pool: %d\n", skill_tmp_2); break; case 4: skill_tmp = warrior_HP + 428 + rand()%697; dragon_HP = dragon_HP - skill_tmp; warrior_HP = 1; score = score + skill_tmp; printf("warrior: Embrace the end!\n"); printf("Your cause %d damage !\n", skill_tmp); break; default: break; } if(dragon_HP <= 0){ printf("Deathwing: It is impossible !?...\n"); printf("warrior: Embrace the end! So be it!\n"); printf(".....\n"); printf("..YOU WIN!\n"); break; } /*dragon*/ skill_tmp = 303 + rand()%311; warrior_HP = warrior_HP - skill_tmp; printf("You got a few injuries - %d HP\n", skill_tmp); if(warrior_HP <= 0){ printf("...\n"); printf("......\n"); printf("..GAME OVER.\n"); break; } /*显示决策结果*/ } /*显示游戏结果*/ if(dragon_HP <= 0){ score = score + (14 - round) * 417; }else{ score = score + round * 128; } if(warrior_HP >= 0 && dragon_HP >= 0) printf("The game ended in a draw.\n"); printf("\nYour final score: %d\n", score); system("pause"); return 0; }
时间: 2024-10-07 19:39:57