Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Objetos/practica

De WikiEducator
Saltar a: navegación, buscar


  • En este tema tenemos dos prácticas

1.- Implementar el juego de masterMind orientado a objetos
2.- Implementar una calculadora Real/Racional orientada a objetos

Practica 1

  • Consiste en hacer el juego de mastermind cuya especificación ya se facilitó
  • En este caso lo vamos a implementar orientado a objetos
  • Tras un análisis hemos creado dos clases para nuestra aplicación


Icon activity.jpg
Juego de mastermind orientado a objetos
  • Para implementar este juego vamos a crear las siguientes clases
  • Clave
  • Juego
Clave

Clave.png

  • Es la clave a adivinar
  • Su atributo contiene esa información
  • Tiene un método estático para obtener una clave
Juego

Jugada.png

  • Es una jugada
  • Cada jugada son 4 colores
  • Cada jugada tiene un número de posiciones acertadas
  • Cada jugada tiene un número de colores acertados que será menor o igual que el de las posiciones



  • Vamos a ver cómo las podremos usar en nuestro programa
Arranca el programa y necesitamos una clave
  • Tenemos dos situaciones

1.-Es la primera vez que accedo

Genero la clave
La guardo en variable de sesión para próxima sesión

2.-Ya tengo clave

La leo de la variable de sesión.
Para probar este requisito visualizaré la clave.
  • De todo ello debe encargarse el método estático obtener_clave
 //Recupera un objeto de la clase Clave y lo retorna
 //La clave puede ser que la tenga que recuperar o generar
 static public function obtener_clave():Clave
    {
        return $clave;
    }
Cada vez que presiones jugar
  • Creamos un objeto de la clase Juego con la jugada
  • El méotodo de Jugada llamado jugar analiza el juego y me devuelve un bool que indica si la jugada ha terminado o no.

Recibirá como parámetro la instancia de la clase Clave

public function juega(Clave $clave):bool{
 
}
Las varialbe de sesión
  • Iremos almacenando un array de jugadas en una variable de sesion
  • Igualemnte almacenaremos la Clave en una variable de sesión
  • Recuerada que los objetos hay que serializarlos para guardarlos en variables de sesión.
    • Tanto para escribirlos
    • Como para leerlos
      • Deberíamos tener algo parecido a
  $jugada = new Jugada(...);
....
  $jugadas = unserialize($_SESSION['jugadas']);
....
  $jugada->jugar($clave);
....
  $jugadas[]=$jugada;
....
  $_SESSION['jugadas']=serialize($jugadas);


Practica 2