勇者斗恶龙 1.5 (重写)

/*
 * <<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

勇者斗恶龙 1.5 (重写)的相关文章

java中的重写和重载

重写 在java中有很多的继承,继承下来的有变量.方法.在有一些子类要实现的方法中,方法名.传的参数.返回值跟父类中的方法一样,但具体实现又跟父类的不一样,这时候我们就需要重写父类的方法,就比如我们有一个类叫做Animals,Animals类中有一个叫做Call,然后我们继承Animals又生成了Cat类和Dog类,Cat和Dog也分别有自己特别的叫声,程序如下: 1 class Animals { 2 public void call() { 3 System.out.println("啊啊啊

Cento7+Nginx 之 URL重写

Cento7+Nginx  之  URL重写 我们前一篇文章写了一个Cento7+Nginx 反向代理实现多域名跳转,今天主要介绍一下Cento7+Nginx  之  URL重写, Hostname:A-S.IXMSOFT.COM IP:192.168.5.20 Role:Nginx server 我们首先准备安装Nginx仓库 Yum install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.

重写js alert

Window.prototype.alert = function(){ //创建一个大盒子 var box = document.createElement("div"); //创建一个关闭按钮 var button = document.createElement("button"); //定义一个对象保存样式 var boxName = { width:"500px", height:"180px", backgroun

二:理解ASP.NET的运行机制(例:基于HttpHandler的URL重写)

url重写就是把一些类似article.aspx?id=28的路径重写成 article/28/这样的路径 当用户访问article/28/的时候我们通过asp.net把这个请求重定向到article.aspx?id=28路径有两种方法可以做这件事情 一:基于HttpModule的方案这个方案有有缺点,具体缺点以后再谈我曾写过一篇文章<不用组件的url重写(适用于较大型项目) >就是按这个模式写的 二:基于HttpHandler的方案我们这个例子就是按这个方案做的我们接下来就按这种方式做这个例

在IIS 中如何配置URL Rewrite,并且利用出站规则保持被重写的Cookie的域

Url Rewrite配置 xx.aa.com/bb/test1.aspx 会重写到 bb.aa.com/test1.aspx 具体怎么配置入站 出站规则 结果:

PHP 方法重写override 与 抽象方法的实现之间的关系

重写由final关键字决定,但受父类的访问权限限制 实现基于继承,所以实现父类的抽象方法必须可访问到,父类抽象方法不可为private 1.父类某方法能否被子类重写与此方法的访问级别无关 public protected private对某方法内否被重写没有影响,能否被重写要看此方法是否被final修饰(final类不可被继承,final方法不可被重写) 2.但重写方法要受到访问级别的限制,即访问权限不可提升规定 (不仅仅是PHP,其他面向对象语言依然适用),访问权限只可以降低,不可以提升. 3

项目搭建系列之四:SpringMVC框架下使用UrlRewrite实现地址重写

简单记录一下UrlRewrite实现地址重写功能. 1.pom.xml 在pom.xml增加配置UrlRewrite jar <!-- URL Rewrite --> <dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> <version>4.0.4</version> </dependen

重写equals和hashCode方法的示例

如果一个类有自己特有的"逻辑相等",且需要以此进行比较时,那么就需要重写equals方法. 在Object的规范中,重写equals方法有下面几条通用约定: 自反性. x.equals(x) == true 对称性.if   y.equals(x) == true , then  x.equals(y) == true 传递性.if   x.equals(y) == true y.equals(x) == true , then x.equals(z) == true 一致性.如果比较

Java中的方法重写 与 final关键字

Java中的方法重写 与 final关键字 以下程序是否存在错误? class Base { private final void method() { System.out.println("In Base..."); } } class Sub extends Base { public void method() { System.out.println("In Sub..."); } } 答案 正确的. 使用final关键字可以声明类.成员变量和成员方法,一