-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathGame.java
More file actions
117 lines (109 loc) · 3.53 KB
/
Game.java
File metadata and controls
117 lines (109 loc) · 3.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import java.util.NoSuchElementException;
public class Game {
private Room currentRoom;
private Lector lector;
private RoomBuilder roomBuilder;
public void play(){
lector = new Lector();
roomBuilder = new RoomBuilder(lector);
createRooms();
muestraBienvenida();
leerComandos();
}
public void createRooms(){
try{
currentRoom = roomBuilder.obtenerPrimerCuarto();
}catch(NoSuchElementException e){
currentRoom = null;
}
}
private void leerComandos(){
Parser entradaUsuario = new Parser();
boolean salir = false;
while(salir != true){
muestraDetallesCuarto();
Command entrada = entradaUsuario.obtenerComando();
if(entrada.contieneComando()){
salir = determinaComando(entrada);
}else{
System.out.println("¿Quisiste decir... ir, salir o ayuda?\n");
}
}
}
private void muestraBienvenida(){
System.out.println();
System.out.println("Bienvenido al mundo de Zuul");
System.out.println("Mundo de Zuul es un nuevo, juego de aventura muy aburrido.");
System.out.println("Escribe 'ayuda' si necesitas ayuda.");
System.out.println();
}
private void mostrarAyuda(){
System.out.println("\nIngresa un comando ir <<salida>> o salir para continuar o terminar con la aventura\n");
}
private void muestraDespedida(){
System.out.println("\nGracias por jugar a Zuul.\n¡Nos vemos!");
}
private void muestraDetallesCuarto(){
System.out.println("\nEstás en: "+ currentRoom.getName());
System.out.println("Salidas disponibles: ");
currentRoom.mostrarDirecciones();
}
private boolean determinaComando(Command comando){
boolean salir = false;
switch(comando.getComando()){
case "ir":
String direccion = comando.getAdicionComando();
if(direccion != null)
irSiguienteCuarto(direccion);
break;
case "ayuda":
mostrarAyuda();
break;
case "salir":
muestraDespedida();
salir = true;
break;
}
return salir;
}
public void irSiguienteCuarto(String direccionSalida){
Room este = currentRoom.getEastExit();
Room oeste= currentRoom.getWestExit();
Room norte= currentRoom.getNorthExit();
Room sur= currentRoom.getSouthExit();
Room salidaDireccion = null;
switch(direccionSalida){
case "este":
salidaDireccion = este;
break;
case "oeste":
salidaDireccion = oeste;
break;
case "norte":
salidaDireccion = norte;
break;
case "sur":
salidaDireccion = sur;
break;
}
if(salidaDireccion != null){
currentRoom = salidaDireccion;
}else{
System.out.println("¡No existe tal salida!");
}
}
public Room getCurrentRoom() {
return currentRoom;
}
public void setCurrentRoom(Room currentRoom) {
this.currentRoom = currentRoom;
}
public static void main(String[] args)throws Exception {
Game game = new Game();
try{
game.play();
} catch(Exception e){
System.err.println("No se pudo ejecutar juego Zuul");
}
}
}