gpt4 book ai didi

java - 无法交换瓷砖位置 - gem 迷阵

转载 作者:行者123 更新时间:2023-12-01 14:32:48 26 4
gpt4 key购买 nike

我对 Java 还很陌生,在我正在创建的游戏中遇到了数组问题,该游戏与 Bejeweled 类似。

在这个游戏中,我有一个名为 Tile 的类,它代表棋盘上的一个彩色图 block ,以及棋盘上的列和行(整数)。我有另一个名为 Board 的板类,它管理按列和行组织的 2D 整数数组中的这些图 block 。

我的问题出现在我交换屏幕上的两个图 block 时。发生这种情况时,它们的列和行会交换,但保存它们的数组无法识别此更改。在屏幕上,一切看起来都很好。两个图 block 将交换位置。

例如,如果我想要在 (column0, row0)(column1, row0) 处切换两个相邻的图 block 。在我的图 block 数组中,这些是图 block array[0][0]array[1][0]。当我切换它们时,第一个图 block 现在位于第二个图 block 的旧位置,第二个图 block 现在位于第一个图 block 的旧位置。但是,第一个图 block 仍然被识别为 array[0][0],尽管它现在应该是 array[1][0]

这样做的意义在于,我的程序不会识别具有相同颜色的三个连续图 block ,因此不会将它们从棋盘上清除。我能做些什么来解决这个问题吗?

如果您有任何建议,那就太好了。谢谢。

最佳答案

不确定您的描述到底有什么问题。代码应类似于以下内容:

class Tile {
int col;
int row;
void setPos(int newCol, int newRow) {
col = newCol;
row = newRow;
}

class Board {
Tile[][] array;

void swap(int col0, int row0, int col1, int row1) {
// Get hold of the tile objects to swap
Tile tile0 = array[col0][row0];
Tile tile1 = array[col1][row1];

// Swap the positions stored in the tile objects
tile0.setPos(col1, row1);
tile1.setPos(col0, row0);

// Swap the tile objects in the array
array[col0][row0] = tile1;
array[col1][row1] = tile0;
}
}

关于java - 无法交换瓷砖位置 - gem 迷阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16728382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com