热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java填充二维数组_java用随机数填充二维数组

我已经开始尝试创建KenKen拼图的项目.如果不确定KenKen是什么,则它与Sudoku相似,即行或列中不能有重复的整数值.我试图用为每个新行创建的数组列表中的数字填充2D数组.

我已经开始尝试创建Ken Ken拼图的项目.如果不确定Ken Ken是什么,则它与Sudoku相似,即行或列中不能有重复的整数值.

我试图用为每个新行创建的数组列表中的数字填充2D数组.我进行检查以查看从“数组列表”中获取的数字是否与其自己的行和列中的任何数字都不匹配.

当我运行代码时,当我尝试从列表中删除整数值时,出现“索引越界”异常.我不确定为什么会这样,因为我认为我得到了正确的要素.

这是我的代码:

int GRID_SIZE = 4;

int [] [] grid =新的int [GRID_SIZE] [GRID_SIZE];

List nums = new ArrayList();

private void populateGrid() {

for (int row = 0; row

// Creates an array of values from 1 to grid size.

for (int i &#61; 1; i <&#61; GRID_SIZE; i&#43;&#43;) nums.add(i);

for (int col &#61; 0; col

while (nums.size() > 0) {

// Gets a random number from the Array List

int ranNum &#61; nums.get(numGen.nextInt(GRID_SIZE));

// Checks to see if the number is placeable.

if (canPlace(ranNum, row, col)) {

// Places the number in the 2D Array

grid[row][col] &#61; ranNum;

break;

} else {

// Removes duplicate element from the Array List.

nums.remove(ranNum);

}

}

}

}

}

private boolean canPlace(int ranNum, int row, int col) {

for (int i &#61; 0; i

// Checks if the specified number is already in the row/column.

if (grid[col][i] &#61;&#61; ranNum) return false;

if (grid[i][row] &#61;&#61; ranNum) return false;

}

return true;

}

我对此有一些疑问&#xff1a;

首先,为什么我会得到我自己的错误&#xff1f;

其次,还有什么比二维数组更适合使用网格以及我放置数字的方式呢&#xff1f;

最后,我是否正确使用休息时间&#xff1f;

预先感谢您的回答.



推荐阅读
author-avatar
书友49812911
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有