簡體   English   中英

我的 Java 游戲無法運行

[英]My java game isn't working

所以我仍然是一個初學者,但我設法得到了這個代碼,但它沒有像我想要的那樣工作,我的主要問題是每次我按 1 時它都會重置敵人而不是保持相同的敵人。 如果有人可以幫助我,我將不勝感激。 到目前為止,我只讓寫作 1 做一些事情。

package Game;

import java.util.Random;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        Random r = new Random();
        System.out.println("Welcome to Dragon Heart");
        System.out.println("1. Start");
        System.out.println("2. Quit");

        int input = 0, enemyhealth = 75, enemyattack = 15, playerhealth = 100, playerattack, random;
        boolean enemydead = true, playerdead = false;
        input = in.nextInt();

        if (input == 1) {
            System.out.println("Game started!");
            while (0 != 1) {
                if (enemydead = true) {
                    enemyhealth = r.nextInt(50) + 51;
                    enemyattack = r.nextInt(15) + 6;
                    System.out.println("An enemy appears, it has " + enemyhealth + " health points and " + enemyattack + " attack points");
                } else {
                    System.out.println("The enemy now has " + enemyhealth + "health points");
                }
                System.out.println("1. Attack");
                System.out.println("2. Defend");
                System.out.println("3. Run away");
                System.out.println("4. Do nothing");
                input = in.nextInt();
                if (input == 1) {
                    playerattack = r.nextInt(5) + 21;
                    random = r.nextInt(2) + 1;
                    enemyhealth = enemyhealth - playerattack;
                    if (random == 1) {
                        playerhealth = playerhealth - enemyattack;
                    }
                    if (enemyhealth <= 0) {
                        enemydead = true;
                        System.out.println("The enemy has been killed");
                    } else {
                        enemydead = false;
                    }
                }

            }

        } else if (input == 2) {
            System.out.println("Game quit.");
        }
    }
}

你的防守邏輯是可疑的,但你的問題在這里:

if(enemydead = true)

您每次都將enemydead重新分配為true

你真的想檢查敵人是否死了,這是通過這個完成的:

if(enemydead)

此外,您可以將while (0 != 1)清理為while(true) 但是,您將需要在該循環中的某處包含一個break語句,以便它不像現在那樣是無限循環。

最后,使用小寫的包名而不是大寫的包名是個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM