Awesome
java-warrior
java-warrior
es un juego para programadores.
Temática
El programador deberá codificar un Jugador
, que tenga la lógica para guiar a un Guerrero
a lo largo de un nivel.
Modo de uso
Primero, se debe agregar la biblioteca de java-warrior
al proyecto.
Luego, es necesario crear una clase que implemente la interfaz de Jugador
. Por ejemplo, aquí está la que resuelve el primer nivel:
package jwarrior.jugadores;
import static jwarrior.referencias.Direccion.ADELANTE;
import jwarrior.comandos.Comando;
import jwarrior.juego.Jugador;
import jwarrior.unidades.Guerrero;
public class JugadorNivel01 implements Jugador {
@Override
public Comando jugarTurno(Guerrero guerrero) {
return guerrero.desplazarse(ADELANTE);
}
@Override
public String obtenerNombreDelGuerrero() {
return "Gimli";
}
}
Una vez implementado el Jugador
, se debe utilizarlo dentro del nivel. Para ello preparamos un test que servirá para jugarlo:
package jwarrior;
import jwarrior.juego.Juego;
import jwarrior.juego.niveles.Nivel01;
import jwarrior.jugadores.JugadorNivel01;
import org.junit.Test;
public class Nivel01AcceptanceTest {
@Test
public void test() {
Juego coordinador = new Juego(new Nivel01(new JugadorNivel01()));
coordinador.jugar();
}
}
Ejecutando este test veremos por la consola los resultados de la partida:
Nivel 01
Turno: 1
-------
PG____S
-------
Gimli se desplaza hacia ADELANTE
Turno: 2
-------
P_G___S
-------
Gimli se desplaza hacia ADELANTE
Turno: 3
-------
P__G__S
-------
Gimli se desplaza hacia ADELANTE
Turno: 4
-------
P___G_S
-------
Gimli se desplaza hacia ADELANTE
Turno: 5
-------
P____GS
-------
Gimli se desplaza hacia ADELANTE
juego terminado
¡Listo! Ya has podido jugar al java-warrior
. Podés seguir con los siguientes niveles.
Inspiración
La primera versión de este juego educativo está basada en el famoso ruby-warrior, el cual puede jugarse de manera on-line desde la página de bloc.io.
Contribuciones
- Hacer un fork
- Crear un feature-branch (
git checkout -b my-new-feature
) - Commitear los cambios (
git commit -am 'Add some feature'
) - Hacer push al branch (
git push origin my-new-feature
) - Crear un Pull Request