java - 递增二维数组中的对象
问题描述
美好的一天,所以我打算让我的代码循环遍历我的数组并将对象的行索引增加 1 个位置。我使用计时器任务是因为我希望对象在一定时间后向前移动。这是我尝试过的代码。我看过,但我一直在努力寻找与我的问题相关的解决方案。将不胜感激。
class cat_function extends TimerTask {
public void run() {
synchronized (game.board) {
for (int i = 0; i < game.board.length; i++) {
for (int k = 0; k < game.board[0].length; k++) {
if (game.board[i][k] instanceof cat) {
cat garfield = new cat(0, 0);
game.board[i][k] = garfield;
game.board[i][k + 1] = garfield;
}
}
}
}
}
}
解决方案
假设:
game.board
被定义为Cat[][]
- 空单元格的值为
null
那么你所要做的就是
if (game.board[i][k] instanceof cat) {
game.board[i][k + 1] = game.board[i][k]; // Put cat in new location
game.board[i][k] = null; // Remove cat from previous location
}
但是,这段代码仍然有两个问题
- 当你到达棋盘边缘时你会怎么做。您必须添加逻辑以使其做一些不同的事情,这样您就不会陷入困境。
- 无需每次都扫描整个游戏板来寻找猫。单独保存猫的位置(索引),以便您始终知道它在哪里,而不必寻找它。
- 如果板上可能有不止一只猫,您还需要逻辑来决定如果两只猫在移动时“碰撞”会发生什么(即您试图将一只猫移动到已经包含一只猫的单元格)。
解决这些问题留给你作为练习。
推荐阅读
- node.js - 安装和使用全局 npm 包的首选方式?
- php - Wordpress 插件开发,找到具体页面
- c# - 在 nuget 包中添加第三方 COM 引用
- r - R:在 Shiny App 中引入自动化
- selenium-grid - Safari 11 的远程 Safari 驱动程序无法单击元素
- mongodb - Grails GORM有很多与MongoDB不一致的关联,当尝试获取子记录时,有时会获取记录,有时不获取
- mysql - 带有 JSP 和 Servlet 的 CRUD 应用程序的 doPost() 或 doGet() 方法?
- webpack - react-hot-loader 和 webpack-dev-server 不会重新加载更改
- python - python下的模块帮助()不起作用
- python - 无法分配“'HR'”:“Employee.department”必须是“Department”实例