Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Objetos/practica»
De WikiEducator
| Línea 9: | Línea 9: | ||
{{MRM_Actividad|Title=Juego de mastermind orientado a objetos| | {{MRM_Actividad|Title=Juego de mastermind orientado a objetos| | ||
*Para implementar este juego vamos a crear las siguientes clases | *Para implementar este juego vamos a crear las siguientes clases | ||
| + | *Clave | ||
| + | *Juego | ||
;Clave | ;Clave | ||
| − | |||
[[Archivo:Clave.png]]<br /> | [[Archivo:Clave.png]]<br /> | ||
| + | *Es la clave a adivinar | ||
| + | *Su atributo contiene esa información | ||
| + | *Tiene un método estático para obtener una clave | ||
| + | ;Juego | ||
[[Archivo:Jugada.png]]<br /> | [[Archivo:Jugada.png]]<br /> | ||
| + | *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 | *Vamos a ver cómo las podremos usar en nuestro programa | ||
| Línea 32: | Línea 41: | ||
} | } | ||
</source> | </source> | ||
| + | ;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 | ||
| + | <source lang=php> | ||
| + | public function juega(Clave $clave):bool{ | ||
| + | |||
| + | } | ||
| + | </source> | ||
| + | ;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 | ||
| + | <source lang=php> | ||
| + | $jugada = new Jugada(...); | ||
| + | .... | ||
| + | $jugadas = unserialize($_SESSION['jugadas']); | ||
| + | .... | ||
| + | $jugada->jugar($clave); | ||
| + | .... | ||
| + | $jugadas[]=$jugada; | ||
| + | .... | ||
| + | $_SESSION['jugadas']=serialize($jugadas); | ||
| + | |||
| + | </source> | ||
| + | |||
| + | |||
==Practica 2== | ==Practica 2== | ||
Última revisión de 21:32 26 feb 2019
- 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
|
- 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);

