Cześć,
Treść zadania:
Jeśli użytkownik użyje:
okno: - otworzy się lub zamknie
klucz: - użytkownik zabierze klucz i klucz nie będzie się już pojawiał jako jedna z opcji ( tutaj zależy mi na tym żeby przekazać po wybraniu klucza do klasy drzwi true i móc otworzyć drzwi. Na zniknięciu klucza mi nie zależy.
drzwi: - otworzą się ale tylko jeśli użytkownik zabrał klucz, jeśli nie, pozostaną zamknięte
Z góry dzięki za jakiekolwiek podpowiedzi, i tak wiem że aktualnie wywołuje metode z klucza. Pozdrawiam!
import java.util.Scanner;
public class Room {
public static void main(String[] args) {
Drzwi drzwi = new Drzwi();
Klucz klucz = new Klucz();
Okno okno = new Okno();
Scanner sc = new Scanner(System.in);
String decision;
do {
System.out.println("Do wyboru: drzwi, klucz, okno. stop = przerwij");
decision = sc.next();
switch (decision) {
case "drzwi" -> drzwi.openTheDor();
case "klucz" -> klucz.keyFunction();
case "okno" -> okno.windowFunction();
}
} while (!decision.equalsIgnoreCase("stop"));
}
}
public class Klucz {
private boolean key = false;
public boolean keyFunction() {
if (!key) {
System.out.println("Wziąłeś klucz");
} else {
System.out.println("Masz już klucz");
}
return key = true;
}
public boolean isKey(boolean key) {
return key;
}
public void setKey(boolean key) {
this.key = key;
}
}
public class Drzwi {
private Klucz klucz = new Klucz();
private boolean openTheDor = true;
public boolean openTheDor() {
if (klucz.keyFunction()) {
System.out.println("Nie masz klucza by otworzyć drzwi");
openTheDor = false;
} else {
setOpenTheDor(true);
openTheDor = true;
}
return openTheDor;
}
public void setOpenTheDor(boolean openTheDor) {
System.out.println("Otworzyłeś drzwi");
this.openTheDor = openTheDor;
}
}