我正在用Java編寫一個通用的蛇遊戲,我希望我的蘋果在隨機座標上被繪製。但是,當我將座標設置爲基於Math.random()時,兩個座標都會創建相同的Math.random結果。這意味着蘋果總是繪製在一條直線上。 (4,4)Math.random()生成相同的數字
//Draws apple
public void drawApple(Graphics2D gfx) {
rectCoords(gfx, red, (int) Math.floor(Math.random()*20), (int) Math.floor(Math.random()*20));
}
// rectCoords(graphics, color, xcoordinate, ycoordinate)
我認爲,這是因爲他們使用他們的種子,同時值,因爲它們在同一時間調用。
我試過Math.random()
,Random
對象,即使是兩者的組合。我試過在整個代碼中的不同時間將它們聲明爲變量,甚至在Thread.sleep();
(儘管實際上讓它工作起來有些麻煩)拋出。
當然,我不是唯一一個試圖在同一時間生成兩個隨機數的人。我感謝任何看起來過去的人,或者指向類似的線索。謝謝!
編輯:我解決了它,這是另一段代碼的問題。雖然,不太確定如何關閉此線程或將其標記爲已解決...
您確定*您正在運行的代碼與您在此發佈的代碼相同嗎? – Bohemian
Math.random()給出一個大於0且小於1的double值,當你轉換爲整數時它將總是變爲0 – developer
你得到的數字是什麼?它總是0嗎? – Jobin