Я создаю систему движения для текстовой игры и обнаружил сложную проблему. Когда я ввожу стороны света, восток возвращает ожидаемое значение, но фиксирует меня на месте, запад возвращает мое запрограммированное сообщение об ошибке, аналогично северу, а юг возвращает значение, находящееся не рядом с игроком. Кроме того, мое программирование небрежное, так как это черновой вариант, а массив не статический, потому что я недавно узнал о статических переменных.
Код: Выделить всё
//import java.util.Arrays;
import java.util.Scanner;
public class game {
public static void main(String[]args){
Scanner input = new Scanner(System.in);
System.out.println("You wake up with a searing headache accomponied by a fizzing sound. After slowly standing up and");
System.out.println(" looking around you see your space ship infront of you. It is in pretty bad shape and it left a");
System.out.print("what will you do?");
Boolean gameIsRunning = true;
while(gameIsRunning){
String dir1 = input.next();
movement(dir1);
}
input.close();
}
public static void movement(String in){
//get direction west,south,etc..
String dir = in;
//set map and location
String loclib[][] = new String [3][3];
loclib [0][0] = "north pole";
loclib [0][1] = "geyser field";
loclib [0][2] = "hill";
loclib [1][0] = "ridges";
loclib [1][1] = "ice spikes";
loclib [1][2] = "ridges";
loclib [2][0] = "ice spikes";
loclib [2][1] = "plaines";
loclib [2][2] = "south pole";
int playerX=0;
int playery=0;
if (dir.equals("west") && playerX>0 && playerX=0 && playerX=0 && playery0 && playery
Источник: [url]https://stackoverflow.com/questions/78157552/if-statement-not-working-all-the-time-in-java[/url]