簡體   English   中英

JAVA如何生成1到24之間的整數,但每個整數都需要一對

[英]JAVA How do I generate integers between 1 and 24 but I need a pair of each integer

我正在集中記憶游戲。 在這種情況下,我有義務生成隨機數對。 這些將在游戲板上創建單元時分配給該單元。 我的問題不在於如何生成隨機數,因為我可以使用-

type = generator.nextInt(NUMBER_OF_ROWS*NUMBER_OF_COLUMNS);

但是,我必須確保在用Cell對象填充游戲板時

board[row][column] = new Cell(this,type, row, column);

為了讓游戲正常運行,我有2個相同類型的單元格。 基本上我需要隨機生成的12對數字。

謝謝

瓦倫

解決問題。 與其想生成24個隨機數,不如真正想要的是將數字1-12隨機分配到24個單元格的數組中,每個數字都放入數組中隨機選擇的兩個單元格中。 最簡單的方法是創建一個List<Cell> ,用24個單元格填充(兩個包含值1,兩個包含值2,依此類推),然后使用Collections.shuffle(List<?>...)

問題尚不清楚。 但是我想您要有兩個相同類型的電池,即您有24個電池,並且要制作12對。 如果希望單元格是隨機的,則可以生成兩個隨機的行號和兩個隨機的列號,並將它們配對。 您必須確保該對不會重復。

編輯:沒有函數可以生成一對數字。 您可以對二維數組中的單元進行編號,例如假設行數為3,列為2,然后對其進行編號,例如0,1,2,3,4,5。 現在開始生成隨機數,並將上限設置為5。假設第一個數字為0。 生成的是2,第二個是5,那么您可以將其稱為對。 然后再次生成數字。 下一對可以為1和0,依此類推。

您似乎不熟悉2維數組,或者我對該問題的理解是錯誤的。 我認為游戲要求玩家記住一對細胞。 總共有12對,因此有一個2D數組,其中一個索引從0到11變化,表示對號,另一個索引區分對中的兩個單元格號。

您需要將兩個成對的數字存儲在一個稱為pairtype [12] [2]的整數數組中。 假設第一個單元格與15配對,那么數組對類型中將有一個值{1,15}。 因此,您可以在數組對類型中存儲12對的兩個整數。

您正在執行的錯誤是使用類型(可以介於0到23之間)分配給單元格類型。 相反,請使用pairtype [index1] [index2]的第一個索引(index1)作為單元格類型,其范圍從0到11。

您還需要注意不要在數組對類型中生成像{1,15}和{1,12}這樣的對。

暫無
暫無

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

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