这是明确的问题: 我想得到鼠标的坐标并将其放入一个变量中,我可以将其插入下面代码[method movePosition()]中显示的等式中。这是可能的还是我必须找出一种不同的方法?
如果没有上下文,问题就没有意义,所以这里有一个描述: 鼠标在迷宫中有8种可能的移动,无论它在哪里都可以工作。选择一个随机数来表示鼠标必须采取的移动。在我的脑海里看起来像这样,“ - ”就是鼠标本身:
1 2 3
4 - 5
6 7 8
例如,如果鼠标移动到#F,我怎么能让它移动到位置8(从下面的例子中移动#G)
A B 0 F 0 0 0 0
0 0 C E G J K L
0 0 D H I 0 M N
我正在考虑制作一个switch语句,每个“坐标”与1-8的数字相匹配,如下所示:
public int movePosition()
{
int moveToPosition = movePicker();
switch (moveToPosition)
{
case 1:
this.getMaze()[row - 1][column - 1] = mouse;
break;
case 2:
this.getMaze()[row - 1][column] = mouse;
break;
case 3:
this.getMaze()[row - 1][column + 1] = mouse;
break;
//and so on...
}
但我意识到,由于显而易见的原因,这不会起作用。 (行和列是用户定义的行和列) 有没有办法在鼠标所在的地方遵循同样的逻辑?我想获得鼠标的坐标并将其放入一个变量中,我可以插入上面的等式中。或者我必须找出不同的方法吗?
这就是我发现的与我想要的相似(click here),其他问题也是如此。然而,他们都在询问如何从数组的大小中找到坐标。我需要知道如何从鼠标的位置找到坐标,这可能是任何地方。
一些背景:
这是作业。我已经看了其他问题,虽然有些问题与我正在寻找的问题有关,但它们没有我需要的东西。
我有一个用户定义的迷宫中的鼠标。这意味着我,程序员,不知道迷宫的大小是多少。在用户定义迷宫的大小后,它将设置为0。例如,让我们做一个3 x 8的迷宫。
然后迷宫看起来像这样(但用户看不到这部分):
阵列[3] [8]:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
在程序结束时,鼠标将越过末尾,留下一个指示移动的数字。 A为第一步,B为第二步,C为第三步等。这只是一个例子,实际代码的数字不是字母。我只需要区分清晰度 输出看起来如此(用户看到了这一点):
A B 0 F 0 0 0 0
0 0 C E G J K L
0 0 D H I 0 M N
谢谢!
答案 0 :(得分:0)
这就是我如何构建方法,尽管有很多其他方法可以做到:
private int mouseCol;
private int mouseRow;
int[][] maze;
private final String LEFT = "left";
private final String LEFT_UP = "left_up";
private final String LEFT_DOWN = "left_down";
//Etc
public String getRandomMove(){
List<String> moves = getValidMoves();
//pick a random one
}
public List<String> getValidMoves(){
List<String> validMoves = new ArrayList<>();
//Check left
if(mouseCol != 0 && maze[mouseRow][mouseCol-1] == 0){
validMoves.add(LEFT);
}
//Check left_up
if(mouseRow != 0 && mouseCol != 0 && maze[mouseRow-1][mouseCol-1] == 0){
validMoves.add(LEFT_UP);
}
//Etc
}