Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Objetos/practica»
De WikiEducator
(Página creada con «{{Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Objetos/nav}}») |
|||
| (3 revisiones intermedias por el mismo usuario no mostrado) | |||
| Línea 1: | Línea 1: | ||
{{Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Objetos/nav}} | {{Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Objetos/nav}} | ||
| + | *En este tema tenemos dos prácticas<br /> | ||
| + | 1.- Implementar el juego de masterMind orientado a objetos<br /> | ||
| + | 2.- Implementar una calculadora Real/Racional orientada a objetos <br /> | ||
| + | ==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 | ||
| + | {{MRM_Actividad|Title=Juego de mastermind orientado a objetos| | ||
| + | *Para implementar este juego vamos a crear las siguientes clases | ||
| + | *Clave | ||
| + | *Juego | ||
| + | ;Clave | ||
| + | [[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 /> | ||
| + | *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''''' | ||
| + | <source lang=php> | ||
| + | //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; | ||
| + | } | ||
| + | </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== | ||
Ú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);

