Universidad de Talca

Anuncio
Universidad de Talca
Facultad de Ciencias Empresariales
Lenguajes de Programación
Matthew Bardeen
PROYECTO TRES
PHP/POO: DAMAS
Francisco Honorato
Jorge Orellana
Estefanie Tello
Carlos Vallejos
Talca, 23 de julio de 2007
INDICE
1. Introducción
-------------------------------------------------------------------- pág.3
2. Objetivos
-------------------------------------------------------------------- pág.4
2.1.General
-------------------------------------------------------------------- pág.4
2.2.Específicos -------------------------------------------------------------------- pág.4
3. Metodologías de Aprendizaje ---------------------------------------------------- pág.5
3.1.Análisis del Algoritmo
---------------------------------------------------- pág.5
3.2.Diagrama de Clases
---------------------------------------------------- pág.6
3.3.Aprendizaje en PHP
---------------------------------------------------- pág.7
4. Documentación -------------------------------------------------------------------- pág.8
4.1.Bibliografía -------------------------------------------------------------------- pág.8
5. Conclusiones
-------------------------------------------------------------------- pág.9
2
1. INTRODUCCION
Los problemas diarios, nuestra rutina, y en realidad todo lo que hacemos
comúnmente, puede ser resuelto con un algoritmo, es decir un conjunto de
instrucciones lógicas que muestran paso a paso la resolución de problemas o
ejecución de tareas. Estos algoritmos son aplicados en programación,
mediante lenguajes que permiten llevar las instrucciones al ordenador, para
que finalmente se ejecutado, teniendo obviamente como base, el algoritmo
inicial.
PHP es un lenguaje de programación interpretado, comúnmente utilizado
en plataformas Web para la creación de páginas dinámicas, y se destaca por
la capacidad que posee para relacionarse con otros lenguajes y en especial
por su capacidad de crear HTML, además es capas de usar múltiples lenguajes
y manipular información de diversas bases de datos. Por ultimo PHP es
totalmente gratis y su uso es libre.
A continuación presentamos el desarrollo del juego Damas, programado
con lenguaje PHP y basado en la programación orientada a objetos (POO).
Damos a conocer los objetivos planteados, las estrategias utilizadas para
manejar el lenguaje y abordar el juego, un esquema de clases (UML) y
conclusiones respecto al trabajo realizado.
3
2. OBJETIVOS
2.1.
General
Generar un programa en PHP orientado a objetos, que sea permita a dos
usuarios jugar al clásico juego de las damas, validando movimiento y llevando
a cabo las reglas que comúnmente se usan.
2.2.
Específicos
 Amigable: Queremos un juego amigable, que entregue por pantalla la
información necesaria a los jugadores, que esta sea clara y precisa y
motive a los usuarios el seguir en continuo el juego.
 Dinámico: Un programa rápido e interactivo, que permita los usuarios
realizar movimiento de forma eficiente y el juego no se vea frustrado
por engorrosos tipiados de comandos.
 Completo: Que contenga todas las bases y validaciones posibles, para
impedir posibles errores o malas manipulaciones con el uso e ingreso
de variables. Queremos lograr que nuestra Dama, sea de cierta forma
“perfecta”.
 Visualmente Atractivo: Que el diseño grafico por pantalla sea
atractivo, las imágenes, fichas y textos, tengan un solo estilo y sigan un
línea de diseño. Que se note claramente que ficha es de quien y de que
tipo es cada ficha.
4
3. METODOLOGIAS DE APRENDIZAJE
3.1.

Análisis de Algoritmo
Identificación del problema: Nuestro problema es generar un juego
de damas, que centre sus bases en las reglas comúnmente conocidas,
incluyendo la creación
de reinas, sopladas, movimientos de peones
distintos al de las reinas y comer en una jugada todas las piezas que
sea posible. Además de lo anterior, debe permitir el juego simultaneo
de
dos
jugadores,
debidamente
identificados
y
permitiéndoles
movimientos en base a sus decisiones.

Entradas: Serán todas la entradas por teclado o Mouse que
realizaran los usuarios.
o Jugador: En primer lugar ambos jugadores deben ingresar sus
nombres, con el objetivo de ser identificados durante todo el
desarrollo del juego.
o Movimientos: Luego es necesario conocer la pieza que se
desea mover, para ello se utilizan dos variables: fila y
columna, ellas permiten registrar la posición de la ficha en la
matriz. Estas variables de ingreso, se utilizan durante todo el
juego, ya que se requiere interactuar con ellas, para efectuar
los movimientos.
o Dirección Movimiento: Otra variable de entrada es la
dirección: izquierda o derecha, en el caso de los peones e
izquierda, derecha, arriba o abajo, en el caso de las reinas.

Salidas: En pantalla se verán los nombres de cada jugador y en
secciones distintas se vera información completa del juego y su
5
juego en especifico, o sea el número de piezas que conserva, las
jugadas realizadas, el turno, el número de jugador, tiempo en juego
e instrucciones generales, como cuando desea mover una pieza que
no pertenece a las suyas. Además cada movimiento de las fichas es
mostrado en pantalla, incluyendo el cambio de peones a reinas.
6
3.2.
Diagrama de Clases (UML)
7
3.3.
Aprendizaje en PHP
El
aprendizaje
de
este
lenguaje
fue
por
cuenta
propia
(autoaprendizaje) ya que dentro del grupo contábamos con un integrante
que conocía el lenguaje PHP y HTML hace algunos años, esto nos permitió
centrarnos en la POO y diseño, y no perder tiempo en aprender etiquetas
html, funciones propias de php y otros.
Es por ello que luego de pensar el problema, debimos investigar
acerca de las funciones propias del lenguaje, fijándonos en los comandos
principales, creación de objetos, y sobre todo en el manejo de las clases y
objetos cuando estos quieren ser pasados a algún método o función.
Como es de suma importancia el hecho de que la información del
juego debe mantenerse, es ahí donde aparecen las sesiones. Esto sucede
porque PHP es un lenguaje que generara desde el servidor la página en
html para el cliente, el cual visualiza y al momento de reiniciar la carga de
la pagina o pasar datos, toda información anterior se pierde.
Considerando los conocimientos previos del grupo en lenguajes que
permitían la POO y los conocimientos por parte de uno en PHP y HTML,
debemos admitir que nuestro único y mayor problema fue el uso eficiente
de almacenamiento de memoria, la solución y pasos a continuación:

Primero, se programa de forma normal, cuando nos
percatamos que no
éramos capaces de
mantener
la
información constante con métodos tradicionales, tuvimos
que buscar una nueva forma. Intentamos mantener la
información con el uso de hidden en formularios, pero la
verdad fue que era un método un tanto truculento.

Para dar solución a lo anterior, utilizamos los métodos de
almacenamiento de información mediante cookies, pero
8
resulto frustrante, ya que el uso invalida el sentido normal de
los objetos. La razón, es que al usar cookies, los objetos
deben ser recargados cada ves que se ocupan y ¿Qué sentido
tiene cargar los objetos una y otra vez?, para eso es mejor
utilizar estructuras. Otro problema de las cookies que son
vulnerables a la modificación por parte del usuario para
obtener ventaja.

Frente a las dificultades de las cookies y omitiendo la
potencialidad de las sesiones recurrimos al profesor, quien
nos sugirió y/o en realidad reafirmo la pujante idea de las
sesiones.

Así recurrimos a un manual básico de cookies obtenido en los
cursos para clientes de dattatec.com el cual daba fe a lo
sospechado. Así decidimos el uso incondicional de sesiones
para lo cual recurrimos a php.net/sessiones de donde
adquirimos conocimiento de toda la potencialidad de PHP 5
para el uso de sesiones.

Finalmente logramos solucionar todos los inconvenientes y el
resto, fue solo crear algoritmos eficientes que dieran
funcionalidad a los métodos de cada clase.
Nuestro aprendizaje, se base mas que nada en la prueba-error y en las
consultas a Internet. Internet es un lugar lleno de información, que al
mismo tiempo al ser tan grande suele “esconder” lo vital. Para eso fue de
vital importancia los conocimientos previos existentes en el grupo del
“camino de php en español”.
4. DOCUMENTACION
9
4.1.

Bibliografía, referencias electrónicas
www.php.net en su versión cl2, este sitio contiene la documentación
oficial de php en todas sus versiones, además contiene una gran
comunidad de visitas atentas a los comentarios.

www.maestrosdelweb.com tutoriales y códigos de PHP.

www.webestilo.com tutoriales y códigos de PHP.

www.webtaller.com tutoriales y códigos de PHP.

www.otros.cl sitio de uno de los miembros, en el cual corren
diferentes script con un sin numero de funciones que miramos para
tener un mejor uso de funciones.
5. CONCLUSIONES
10
 PHP es realmente un lenguaje que permite crear dinamismo e interacción,
además permite incluir diseños muy interesantes, creemos que es una gran
herramienta para cualquier tipo de programador que se interese por
desarrollar plataformas web.
 La programación orientada a objetos es similar en todos los lenguajes, y
PHP no es la excepción, la forma de manipular los objetos es muy parecida
a los demás lenguajes que contienen POO, aunque PHP se caracteriza por
una preocupación desde su versión 5 por funciones de la librería principal
para su mejor manipulación.
 El aprendizaje de los lenguajes en general se hace mucho mas fácil cuando
se presenta una de las siguientes razones:
o Guía: En persona o en documentación. Este caso tuvimos la
documentación y la persona. Lo cual nos ayudo bastante a omitir
problemas de PHP o etiquetas HTML y centrarnos en la POO.
o Conocimientos Previos: Conocer otros lenguajes, en nuestro caso
ya manejábamos lenguajes con POO y habíamos aprendido a
adaptarnos en diferentes lenguajes.
 Para finalizar y como conclusión mayor, el sistema de autoaprendizaje y la
buena selección del lenguaje, motivaron a un aprendizaje mas didáctico,
grupal y que sin dudas dejo mejores experiencias que los dos lenguajes
anteriores del curso.
11
Descargar