Vous êtes sur la page 1sur 7

1

Proyecto # 1
Oficina Redes

Universidad
Nacional
Sede Regional
Brunca
Programacin II
Proyecto # 1
Nombre Proyecto

Estudiante:
Johan Barboza Vega.
Carnet: 143641
Profesor:
Lic. Josu Naranjo Cordero

I Ciclo, 2016

2
Proyecto # 1
Oficina Redes

Tabla de contenidos
Introduccin
.3
Objetivos:

..3
Descripcin General del
Sistema
..4
Planteamiento del
Problema
..5
Solucin
Adaptada
..5
Conclusiones
..
6Recomendaciones
..6

Introduccin
En el siguiente documento, se ir detallando toda la informacin necesaria
acerca del desarrollo del primer proyecto de programacin que consiste en
crear un ajedrez en el lenguaje C++ utilizando el IDE Builder 2010 y sus
diferentes elementos grficos adems del uso indispensable de un paradigma
de programacin orientada a objetos.
La aplicacin como tal, simula un ajedrez, un juego de mesa y estrategia donde
ambos jugadores luchan por vencer al otro. El juego cosiste bsicamente en
dos jugadores donde cada uno tiene la misma cantidad de piezas y con las
cuales, irn tejiendo jugadas para acabar con el rey enemigo y de esa manera
ganar. Cada pieza tiene sus movimientos especficos y la aplicacin delimita
cada uno de ellos conforme las reglas del juego. Que la suerte los acompae
en los campos de batalla!
Nota: Los movimientos especiales como la coronacin, enroque y captura al
paso no estn contemplados para este caso.

Objetivos:
Objetivo General:
Desarrollar y disear una aplicacin que simule un ajedrez utilizando un
paradigma de programacin orientada a objetos.
Objetivos Especficos:

Elaborar un esquema UML de la distribucin de las posibles clases a


utilizar en el proyecto.
Crear diferentes funciones para delimitar las acciones de las piezas,
gestionar el tablero y controlar otros procesos dentro de la aplicacin.
Implementar eventos y acciones que faciliten la gestin del tablero y
piezas.

Descripcin General del Sistema

El proyecto como se ha venido diciendo, emula el famoso y conocido juego del


ajedrez. Para lograr esto, se han implementado diferentes mtodos que tienen
como fin, el facilitar la implementacin de otros mtodos igualmente
necesarios. Por ejemplo el movimiento de una pieza.
Para entrar en contexto, existe un mtodo encargado de la gestin del tablero o
la matriz, esta funcin, se encarga de analizar campo por campo hasta
encontrar las diferentes piezas, a su vez, este mtodo liga esas piezas con el
propio tablero de una manera lgica. Esto, es imprescindible para el
funcionamiento de los dems mtodos y es la base para casi todos los otros
anlisis importantes a nivel del tablero y piezas. Dicho esto, es importante
mencionar que a lo largo de la aplicacin, se irn dando diferentes eventos,
mayormente eventos OnClick(entre piezas y tablero) que son de suma
importancia para todos los procesos y acciones de las piezas.
El tablero como tal, es una matriz de la clase tablero (presente en el proyecto),
esta clase contiene todas las propiedades necesarias para las funciones del
tablero (X, Y, eventos, etc.) adems de un elemento TImage el cual es el
elemento visual para representar el tablero, las caractersticas como X y Y, se
utilizaran para modificar valores de ese TImage y por tanto crear el tablero
segn se desee, por ejemplo, las posiciones de cada uno de esos TImage o el
color. El dibujado del tablero se hace mediante otra clase y un mtodo
especifico para el tablero donde adems se enviara como parmetro el
elemento en el cual se va a dibujar el tablero, un elemento TPanel en este
caso. Adems del elemento TImage del tablero, existe otro elemento TImage
(Piece) pero que solo servir para unir las piezas con el tablero, proceso que
lleva a cabo la clase de manejo (Manage).
Las piezas como tal, tambin tendrn su respectiva clase con sus respetivas
propiedades adems del elemento TImage que las representara. Un punto
importante en las piezas es que cada una tiene un identificador que facilita la
identificacin (valga la redundancia) de la misma.
A lo largo del proyecto, habrn otras clases adems de las ya mencionadas,
cada una con un propsito que puede ir desde analizar turnos, pintar, manejar
el movimiento de las piezas, manejar la muerte de las piezas hasta reiniciar el
juego mismo. Hay que tener en cuenta que en muchas de estas clases se
trabaja directamente sobre los objetos del tablero o piezas.
El manejo del movimiento de las piezas y muerte de las mismas es una
combinacin de todo, pero en proceso general, primero se identifica la pieza a
mover o matar para luego analizar si esta puede realizar o no esa accin
especfica. Para explicar esto de una manera ms detallada, hay que tener
varias cosas presentes, una vez dentro del juego, al darle click a una pieza,
esta carga un identificador que va a permitir saber que pieza es(todo esto
mediante un evento OnClick) , luego si por ejemplo se da click en algn lugar

del tablero, se hace una distincin las piezas de ese tipo segn el identificador
de la pieza hasta encontrarla entre los objetos de esa pieza, una vez
encontrada, se enva el elemento TImage de la pieza como parmetro a un
mtodo de movimiento de piezas(correspondiente a la pieza seleccionada)
para comprobar si se puede o no mover a ese lugar del tablero, todo esto en el
evento OnClick del tablero. Con respecto a la muerte de las piezas es algo muy
similar, la nica diferencia es que todo el proceso ocurre entre eventos OnClick
de pieza y pieza y no entre eventos OnClick de pieza y tablero.
Las validaciones en general, hacen un anlisis segn el movimiento de la
pieza. Por ejemplo, las torres se pueden mover en lnea recta para cualquier
lado siempre y cuando no haya nada en su camino. As que si se intenta mover
una torre hacia arriba, se har un anlisis hacia arriba de los campos de la
matriz segn la posicin de la torre hasta encontrar una pieza, cuando se
encuentra esa pieza, todos los dems anlisis se harn basados en ella, por
ejemplo si se dio click en un lugar mayor a esa pieza(intentar brincar la pieza),
entonces la validacin no lo dejara hacer ese movimiento pero si por otro lado
el movimiento de la torre se hace dentro del rango de esa pieza encontrada, el
movimiento se dar sin ningn problema. Esto es lo mismo para todas las
piezas, la nica diferencia es que por ejemplo el alfil hace la validacin en
diagonal y no en lnea recta como la torre.
Nota: los peones cuentan con esta validacin en su primero movimiento, luego
es innecesario porque va de cuadro en cuadro, con el rey no se hace esto por
la misma razn, con el caballo tampoco porque se puede brincar las piezas.

Planteamiento del Problema y Solucin


adoptada
El problema: Elaborar un ajedrez funcional con sus diferentes piezas y
delimitaciones utilizado un paradigma de programacin orientado a objetos.
Solucin: Elaborar mtodos para el manejo, validacin y acciones del ajedrez
mediante simples clculos y procesos lgicos utilizando siempre un paradigma
de programacin orientada a objetos.

Conclusiones
Una vez finalizado el proyecto se llegaron a las siguientes conclusiones:

Un diagrama UML facilita todo el proceso.


Llevar un buen manejo del tablero hace ms fciles las validaciones.
Hacer la documentacin antes del proyecto es una buena idea.

Recomendaciones
Luego de haber realizado la programacin del proyecto se recomienda lo
siguiente:

Se pueden fusionar la funcin de movimiento y muerte de las piezas.


Eso no se implemento debido a uso inadecuado del tiempo por parte
del desarrollador.
La interfaz grafica se puede mejorar. El programador no tiene ni pizca
de creatividad.
La implementacin de los movimientos especiales es ms que posible
pero no se hizo debido al ya mencionado uso inadecuado del tiempo.
Darle un mejor uso al tiempo.

Es todo, gracias!

Vous aimerez peut-être aussi