gpt4 book ai didi

java - 在阵列上移动玩家

转载 作者:行者123 更新时间:2023-12-01 18:15:28 25 4
gpt4 key购买 nike

我有一个 map 类,它是一个 100 个字符串的数组

public class map{
[...]
public void movePlayer(String entrada){
if (entrada.equalsIgnoreCase("w")){
move = -10;
}
else if (entrada.equalsIgnoreCase("s")){
move = 10;
}
else if (entrada.equalsIgnoreCase("d")){
move = 1;
}
else if (entrada.equalsIgnoreCase("a")){
move = -1;
}
for(int i = 0; i < mapa.length; i++){
if (mapa[i].equals("P")){
int moved = i+move;
mapa[moved] = "P";
}
}
}

主要看起来有点像这样

String[] mapa = map.getMap();
mapa[0] = "T";
mapa[99] = "P";
for (int j = 0; j<10; j++){
for(int i = 0; i < map.length; i++){
if (i == 9 || i == 19 || i == 29 || i == 39 || i == 49 || i == 59 || i == 69 || i == 79 || i == 89 || i == 99){
System.out.println(mapa[i]);
}
else{
System.out.print(mapa[i]);
}
}
System.out.print("\n");
System.out.print("Entre o movimento:");
map.movePlayer(read.nextLine());
mapa = map.getMap();
}

它的运行方式是这样的:打印出一张带有随机字符的 map ,有些是普通楼层,有些是陷阱示例

T##_______
^__@__*^@_
@#^^#_#___
_*^^^#^^@^
^^_#_^____
^#_^#___##
*@^_^_____
^@##_^__^#
#_@^##^#**
#@^^_#@_#P
Enter movement:w
T##_______
^__@__*^@_
@#^^#_#___
_*^^^#^^@^
^^_#_^____
^#_^#___##
*@^_^_____
^@##_^__^#
#_@^##^#*P
#@^^_#@_#P
Enter movement: w
T##_______
^__@__*^@_
@#^^#_#___
_*^^^#^^@^
^^_#_^____
^#_^#___##
*@^_^_____
^@##_^__^P
#_@^##^#*P
#@^^_#@_#P

我怎样才能让程序打印播放器原来所在的位置以及它之前的字符,在这种情况下,位置 [99] 中是一个空格,位置 [89] 中是一个“*”?感谢您的耐心等待!

最佳答案

您可以保持 map 不变,只跟踪玩家的位置,而不是在 map 内跟踪玩家。

int playerpos = 99;
for (int j = 0; j<10; j++){
for(int i = 0; i < map.length; i++){
if (playerpos == i)
System.out.print("P");
else
System.out.print(mapa[i]);
if (i %10 == 9){
System.out.println();
}
}

然后您的 movePlayer 方法只需更改 playerpos 变量。

关于java - 在阵列上移动玩家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29853838/

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