我的游戏有问题

时间:2015-11-14 18:25:41

标签: java

所以我做了一个基本游戏,而且我遇到了一个问题,那就是两场战斗没有开始,一场战斗真的很好,但出于某种原因战斗两个人不会开始......

下面是代码:

import java.util.Scanner;

公共课游戏{

public int Health = 10;
public int Enemy_Health = 25;
public int Your_Health = 20;
public int Battle = 1;
public int Move = 0;

public void Method() {

    System.out.println("A random battle started!" + "\n");
    System.out.println("It's health is currently at " + Health + "\n");
    System.out.println("Your health is currently at " + Your_Health + "\n");
    System.out.println("Would you like to use bite or slash?" + "\n");
    //-----Battle 1-----\\
    while (Battle == 1) {

        if (Battle == 1) {

            Scanner Scan = new Scanner(System.in);
            String a = Scan.nextLine();

            if (a.equals("bite")) {
                System.out.println("You used bite!" + "\n");
                System.out.println("You did 5 damage!" + "\n");
                Health -= 5;
                Move++;
                System.out.println("It's health is now at " + Health + "\n");

            } else if (a.equals("slash")) {
                System.out.println("You used slash!" + "\n");
                System.out.println("You did 2 Damage!" + "\n");
                Health -= 2;
                System.out.println("It's health is now at " + Health + "\n");
                System.out.println("You did 3 Damage!" + "\n");
                Health -= 3;
                Move ++;

                System.out.println("It's health is now at " + Health + "\n");
                }
                if (Move == 1) {
                     System.out.println("---------------------------" + "\n");
                     System.out.println("It used Bite" + "\n");
                     System.out.println("It did 5 damage!" + "\n");
                     Your_Health -= 5;
                     System.out.println("Your health is now at " + Your_Health + "\n");
                     System.out.println("---------------------------" + "\n");
                     System.out.println("Would you like to use bite or slash?" + "\n");

                }
            if (Health == 0) {

                System.out.println("You won!" + "\n");
                System.out.println("You gained 100$!" + "\n" + "You now have 150$!");
                System.out.println("You gained 100 Xp!" + "\n" + "You leveled up!" + "\n" + "50 Xp left tell Level 2" + "\n" + "New move learned: " + "\n" +
                        "Knock Out!" +  "\n"  + "Your health went up by 5!" + "\n");
                System.out.println("Swirl will make the enemy dizzy for one round!" + "\n" + "\n");

                Your_Health += 5;
                Battle -= 0;
                Move = 0;
                Health = -1;

            }
            while (Battle == 0){
                Battle = 2;
            }

            //-----Battle 2-----\\
                while (Battle == 2) {

                    if (Enemy_Health == 25) {

                        System.out.println("A random battle has started!" + "\n");
                        System.out.println("It's health is currently at " + Enemy_Health + "\n");
                        System.out.println("Your health is currently at " + Your_Health + "\n");
                        System.out.println("Would you like to use bite, slash or swirl?" + "\n");

                        if (a.equals("bite")) {
                            System.out.println("You used bite!" + "\n");
                            System.out.println("You did 5 damage!" + "\n");
                            Health -= 5;
                            System.out.println("It's health is now at " + Health + "\n");
                        } else if (a.equals("slash")) {
                            System.out.println("You used slash!" + "\n");
                            System.out.println("You did 2 Damage!" + "\n");
                            Health -= 2;
                            Move++;
                            System.out.println("It's health is now at " + Health + "\n");
                            System.out.println("You did 3 Damage!" + "\n");
                            Health -= 3;
                            Move++;
                            System.out.println("It's health is now at " + Health + "\n");

                        } else if (a.equals("swirl")) {
                            System.out.println("You used Swirl" + "\n");
                            System.out.println("It got dizzy for one round." + "\n");
                        }
                        if (Move == 1) {
                            System.out.println("---------------------------" + "\n");
                            System.out.println("It used Slash" + "\n" + "It did 2 damage!" + "\n" + "It did 3 damage!" + "\n");
                            Your_Health -= 5;
                            System.out.println("Your health is now at " + Your_Health + "\n");
                            System.out.println("---------------------------" + "\n");
                            System.out.println("Would you like to use bite or slash?" + "\n");
                        }
                        if (Move == 2){
                            System.out.println("---------------------------" + "\n");
                            System.out.println("It used Bite" + "\n" + "It did 5 damage!" + "\n");
                            Your_Health -= 5;
                            System.out.println("Your health is now at " + Your_Health + "\n");
                            System.out.println("---------------------------" + "\n");
                            System.out.println("Would you like to use bite or slash?" + "\n");
                        }
                        if (Move == 3){
                            System.out.println("---------------------------" + "\n");
                            System.out.println("It used Head Butt" + "\n" + "It did 10 damage!" + "\n" + "It took 5 damage" + "\n");
                            Your_Health -= 10;
                            Enemy_Health -= 5;
                            System.out.println("Your health is now at " + Your_Health + "\n");
                            System.out.println("---------------------------" + "\n");
                            System.out.println("Would you like to use bite or slash?" + "\n");
                        }
                    }
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

第一次通过你的while循环后,健康状况将是< 10,所以你的if块不再运行了。由于我没有看到任何好处,我建议您删除if(Health == 10)块。

同样如评论中所述:健康战斗应为int not float。

在解决其他问题之后,你会注意到战斗永远不会结束,你永远无法通过 bite 获胜:你对胜利条件的检查必须超出其他的ifs并设置战斗到某事!= 1

总的来说,你的游戏应该看起来像这样:

public class Game {

    public int Health = 10;
    public int Battle = 1;

    public void Method() {

        System.out.println("A random battle started!" + "\n");
        System.out.println("It's health is currently at " + Health + "\n");
        System.out.println("Would you like to use bite or slash?" + "\n");

        while (Battle == 1) {
                Scanner Scan = new Scanner(System.in);
                String a = Scan.nextLine();

                if (a.equals("bite")) {
                    System.out.println("You used bite!"+ "\n");
                    System.out.println("You did 5 damage!"+ "\n");
                    Health -= 5;
                    System.out.println("It's health is now at " + Health + "\n");
                    System.out.println("Would you like to use bite or slash?"+ "\n");
                } else if (a.equals("slash")) {
                    System.out.println("You used slash!"+ "\n");
                    System.out.println("You did 2 Damage!"+ "\n");
                    Health -= 2;
                    System.out.println("It's health is now at " + Health+ "\n");
                    System.out.println("You did 2 Damage!"+ "\n");
                    Health -= 2;
                    System.out.println("It's health is now at " + Health+ "\n");
                    System.out.println("Would you like to use bite or slash?"+ "\n");
                }
                if (Health <= 0) {
                    System.out.println("You won!"+ "\n");
                    System.out.println("You gained 100$!" + "\n" + "You now have 150$!");
                    Battle = 0;
                }
            }
        }
      }
}