2014-11-05 3 views
-1

Я в настоящее время делает текст приключенческая игра в Java, но я сталкивался с проблемой:Измените значение переменной каждый раз, когда другая переменная изменяет

мне нужно значение String переменной, чтобы изменить каждый раз, значение конкретного int переменных изменений. Я хочу, чтобы программа для выполнения этой задачи (а затем продолжить, где она была прервана) каждый раз, когда значение какого-либо int изменений переменных:

if (enemyposition == 1) { 
    enemyp = "in front of you"; 
} 
else if (enemyposition == 2) { 
    enemyp = "behind you"; 
} 
else if (enemyposition == 3) { 
    enemyp = "to your left"; 
} 
else if (enemyposition == 4) { 
    enemyp = "to your right"; 
} 
else { 
    enemyp = "WOAH"; 
} 

Спасибо! : D

+2

У вас есть вопросы? –

+1

Возможно, это легче сделать, если вам нужно значение 'enemyp', а не постоянно. – Henry

+0

мой вопрос: pls halp – JavaPr0grammer

ответ

2

Вы можете сделать код намного короче, используя массив.

String[] message = {"WOAH", // 0 
        "in front of you", // 1 
        "behind you", // 2 
        "to your left", // 3 
        "to your right"}; // 4 
enemyp = (enemyposition > 0 && enemyposition < 5) ? message[enemyposition] : 
                message[0]; 
1

вы спрашиваете вопрос звучит как это может быть подотчетно, создав класс для хранения enemyposition целого. Добавьте метод setter к вашему классу, чтобы установить целое число. Вы можете написать свой метод setter, чтобы, когда задано целое число, оно также устанавливает строку. Затем напишите метод «getter» для извлечения строки. Это один из распространенных способов убедиться, что две переменные изменяются вместе.

public class EnemyPosition { 
    private int enemyposition; 
    private String enemyp; 
    public void setPosition(int n) { 
     enemyposition = n; 
     enemyp = [adapt your code to set this based on the position] 
    } 
    public String getEnemyp() { 
     return enemyp; 
    } 
} 

Уверен, что есть много деталей, которые отсутствуют, но вы получаете эту идею. Затем вместо int enemyposition в остальной части кода используйте EnemyPosition enemyposition = new EnemyPosition() и используйте метод вместо назначения ему.

Это не единственное решение (массив или Map, который отображает целые числа в строки, может быть достаточно хорошим), но это один способ ООП.

+0

Спасибо! Я попытаюсь реализовать это сейчас и дам вам знать, как это происходит. : D – JavaPr0grammer

Смежные вопросы