簡體   English   中英

Java中的“ Math.random()”問題

[英]Issue with “Math.random()” in Java

我想編寫一個在窗口上繪制一些特定點的代碼。 我有3個不同的點$(e1,e11),(e2,e22),(e3,e33)$。 我想隨機選擇其中之一,並根據輸出,畫出不同的點。

public class ChaosGame {

    public static void main(String[] args) {
        Window window = new Window("Chaos", 800, 800);
        window.open();

        int e1 = 420;
        int e11 = 170;
        int e2 = 230;
        int e22 = 670;
        int e3 = 700;
        int e33 = 540;

        while (window.isOpen()) {// ändere den Fensterinhalt
            int pos1 = 100;
            int pos2 = 300;
            int i = (int) (Math.random() * 3);

            if (i == 0 || i == 3) {
                window.fillRect(pos1 + e1 / 2, pos2 + e11 / 2, 5, 5);
                pos1 = e1 / 2;
                pos2 = e11 / 2;
                window.refresh();
            } else if (i == 1) {
                window.fillRect(pos1 + e2 / 2, pos2 + e22 / 2, 5, 5);
                pos1 = e2 / 2;
                pos2 = e22 / 2;
                window.refresh();
            } else {
                window.fillRect(pos1 + e3 / 2, pos2 + e33 / 2, 5, 5);
                pos1 = e3 / 2;
                pos2 = e33 / 2;
                window.refresh();
            }
        }
    }
}

fillRect在新窗口中繪制我的點。 現在,當我運行該程序時,即使它應該在“ while window.isOpen”上運行,也只有兩點出現,直到關閉窗口。 我認為Math.random()可能有問題。

您需要更改window.fillRect(pos1 + e2 / 2, pos2 + e22 / 2, 5, 5); window.fillRect(pos1 + e3 / 2, pos2 + e33 / 2, 5, 5); else語句中。 在兩種情況下,您將繪制相同的內容。

暫無
暫無

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

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