0
我正在制作一件15件滑动瓷砖游戏,用户尝试在网格上按顺序排列瓷砖1-15。我被困在早期的部分,在用户输入平铺标签后,我们找到平板当前在平板上的位置。我的目标是搜索给定瓦片的瓦片所在的二维数组,然后,一旦找到,将Point2D对象的x和y值设置为找到的瓦片的行和列。我不确定我在哪里出错了。任何帮助?在Java中搜索二维数组并返回Point2D对象
package tilegame;
import java.awt.geom.Point2D;
import java.util.Scanner;
public class TileGame
{
public TileGame()
{
GameBoard gameBoard = new GameBoard();
Scanner user_input = new Scanner(System.in);
int userTileNumber = 0;
while (userTileNumber != -1)
{
System.out.print("Enter tile number: ");
userTileNumber = user_input.nextInt();
if (userTileNumber < 0) //terminates game if user enters -1
break;
else
continue;
}
getTilePosition(userTileNumber);
}
public static void main(String[] args)
{
new TileGame();
}
}
class GameBoard
{
int [][] tiles = { {-1, -1, -1, -1, -1, -1}, //-1's represent the boundaries of the gameboard
{-1, 1, 2, 3, 4, -1},
{-1, 5, 6, 7, 8, -1},
{-1, 9, 10, 11, 12, -1},
{-1, 13, 14, 0, 15, -1}, //zero represents an empty space
{-1, -1, -1, -1, -1, -1} };
public GameBoard()
{
printGameBoard(tiles);
}
private void printGameBoard(int[][] tiles) //Prints current position of all the tiles on the board
{
for(int i = 0; i < tiles.length; i++)
{
for(int j = 0; j < tiles[0].length; j++)
{
System.out.printf("%5s ", tiles[i][j]);
}
System.out.println();
}
}
public Point2D getTilePosition(int userTileNumber)
{
for(int i = 0; i < tiles.length; i++)
{
for(int j = 0; j < tiles[i].length; j++)
{
if (tiles[i][j] == userTileNumber)
{
Point2D searchedTile = new Point2D(i,j);
return searchedTile;
}
}
}
System.out.print("Tile number: " + userTileNumber + "/nRow: " + i + "/nColumn: " + j);
}
}