#java #arrays #2d
#java #массивы #2d
Вопрос:
В настоящее время он у меня есть, поэтому он печатает сетку 2 на 2 и переименовывает мою позицию в P, а все остальное в — и он скрывает сундук, пока я не наступлю на него и не спрошу, хочу ли я открыть сундук, затем завершает игру, но я хочу, чтобы он переименовал случайно сгенерированный сундук в C, чтобы я мог видеть в сетке, где он находится, может кто-нибудь, пожалуйста, помочь мне с этой проблемой
/**
* Auto Generated Java Class.
*/
import java.util.*;
public class Adventure {
public static final int rows= 2;
public static String tile = "";
public static final int cols= 2;
public static String input = "";
public static boolean run = true;
public static String[][] map = new String[rows][cols];
public static int xpos = 0;
public static int ypos = 0;
public static Random gen = new Random();
public static final int xx = gen.nextInt(rows);
public static final int yy = gen.nextInt(cols);
public static void main(String[] args) {
for(int x = 0; x < rows; x ) {
for(int y = 0; y < cols; y ) {
map[x][y] = "you see nothing, on the fields of justice";
}
}
map[xx][yy] = "You find a chest: Open?";
while(run) {
displayMap();
System.out.println(map[xpos][ypos]);
input = userinput();
input = input.toLowerCase();
if(input.equals("w")) {
if (ypos < cols - 1) {
ypos ;
}else{
System.out.println("You're at the edge of the map");
}
}else if(input.equals("d")) {
if (xpos < rows - 1) {
xpos ;
}else{
System.out.println("You're at the edge of the map");
}
}else if(input.equals("s")) {
if (ypos > 0) {
ypos--;
}else{
System.out.println("You're at the edge of the map");
}
}else if(input.equals("a")) {
if (xpos > 0) {
xpos--;
}else{
System.out.println("You're at the edge of the map");
}
}else if(input.equals("open")) {
if(map[xpos][ypos].equals("You find a chest: Open?")){
System.out.println("You find a sword");
System.out.println("()==[:::::::::::::>");
run = false;
}else{
System.out.println("There's nothing to open");
}
}else {
System.out.println("Wrong direction, W , A, S , D");
}
}
}
public static String userinput(){
System.out.println("Which direction do you want to move: w , a ,s ,d ? ");
Scanner keyboard = new Scanner(System.in);
return keyboard.nextLine();
}
public static void displayMap() {
for (int y = cols - 1; y >= 0; y--) {
for (int x = 0; x < rows; x ) {
if (y == ypos amp;amp; x == xpos) {
tile = tile "P";
}
//Heres where i want to rename the chest to 'C' on the grid
else if (xx amp;amp; yy) {
tile = tile "C";
}
else{
tile = tile "-";
}
}
System.out.println(tile);
tile = "";
}
}
}
Ответ №1:
Замените else if (xx amp;amp; yy)
на else if (y==yy amp;amp; x==xx)
. Это простая ошибка.
Комментарии:
1. Спасибо! я знал, что это будет так просто, но я не мог этого увидеть