[英]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.