繁体   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