Bienvenido a mi antigua web ;-)

Mi actual página web la puedes encontrar en esta dirección. El mantenimiento de ésta, mi antigua página web lo abandoné hace bastante tiempo ya y su contenido está muy desfasado. Como hay muchas cosas interesantes en estas antiguas páginas he decidido dejarlas en la red.

Me he pasado a una página más sencilla y esta se quedará siempre como está, por lo que ten en cuenta que todo el contenido es antiguo, algunas cosas pueden no ser válidas ya.

Home Como contactar conmigo
Información acerca de quien soy yo
Algunos programas que he hecho y que puedes coger
Sección dedicada a la Universidad Nacional de Educación a Distancia
Sección dedicada al sistema operativo Linux
Colección de links sobre programación
Links diversos














Introducción
    En el diseño de la jerarquía de objetos y las relaciones entre los mismos se ha intentado conseguir un diseño extensible, utilizando para ello las características de encapsulación, herencia y polimorfismo que la programación orientada a objetos ofrece.

    La jerarquía de objetos diseñada es la siguiente:

    La práctica ha sido desarrollada en C++ utilizando el compilador Borland Turbo C++ 1.01 bajo sistema operativo MS DOS.

     

    TPantalla

    Este objeto encapsula el acceso al sistema gráfico contribuyendo a la portabilidad del código. La mayoría de las funciones son simples "cambios de nombre" de las funciones que incorporan las librerías gráficas del Turbo C++.

    TElemVis

    Define un elemento visible. Sirve como clase base para los diferentes elementos visibles del programa. Aporta los atributos de posición y color y los métodos para manejarlos.

    Al ser una clase abstracta no se puede instanciar, obligando a las clases descendientes de esta a redefinir las funciones virtuales puras.

    Métodos

    • Paint. Visualiza el objeto (virtual puro).
    • SetRect. Fija la posición y el tamaño (virtual).
    • GetRect. Obtiene posición y tamaño.
    • SetColor y GetColor. Fijan y obtienen el color

    TMesa

    Mesa controla todo el terreno de juego. Contiene todos los objetos que están en el interior de una mesa de billar, por lo que tiene instancias (o punteros a ellas) de objetos TBanda, TAgujero y TBola (ver más adelante). Se encarga de la visualización de la mesa y de controlar la partida coordinando a todos los objetos que contiene.

    Métodos

    • Paint(Bolas). Dibuja la mesa. Si bolas es "true" también las bolas
    • Partida. Bucle principal que gestiona la marcha de la partida. Entra en un ciclo en el que va llamando al método Step de cada bola para que la bola calcule su nueva posición, compruebe colisiones y se visualice. También se llama al método TragaBolas de los agujeros para que comprueben si alguna bola esta sobre ellos.
    • GetnBolas y operador []. Sirven para el acceso a las bolas de la mesa. GetnBolas devuelve el número de bolas en la mesa y a través del operador [] obtenemos la i-esima bola de la mesa.
    • GetBandaSup, GetBandaInf, GetBandaIzq, GetBandaDer.Devuelven una referencia a una banda de la mesa.
    • QuitaBola. Quita una bola de la mesa. Este método lo usan los agujeros cuando detectan que hay una bola sobre ellos para decirle a la mesa que la quite.
    • Movida. Lo usan las bolas para indicar que se han movido. Si en un paso no se ha movido ninguna bola se vuelve a lanzar la blanca.

     

    TElemMesa

    Un elemento que es susceptible de estar en una mesa. Dota a sus descendientes de una forma de acceder a la mesa que los contiene a través del puntero pMesa.

    Métodos:

    • Ninguno añadido.

    TBanda

    Representa una de las bandas que forman parte de la mesa.

    Métodos:

    • Redefine el método Paint.

    TAgujero

    Representa a uno de los agujeros que están sobre la mesa de billar. Además de dibujarse a si mismo es capaz de detectar si hay una bola sobre él (en cuyo caso tendrá que "tragársela") y decirle a la mesa que la quite.

    Métodos:

    • Redefine el método Paint
    • Redefine los métodos Set/Get para posición.
    • TragaBolas. Comprueba si alguna bola está sobre él y en caso afirmativo invoca el método QuitaBola de TMesa.

    TElemAnim

    Es una elemento que puede estar sobre la mesa y que tiene la particularidad de que se debe mover al ritmo marcado por la mesa. Para esto dispone de un método Step que la mesa llamará para solicitar al elemento que avance. La mesa llamará al metodo Step de cada uno de sus elementos animados y cuando llegue al último volverá a empezar.

    Métodos:

    • Step. (virtual)

    TBola

    Una de las bolas que se deben mover por la mesa. Incorpora toda la funcionalidad de movimiento y visualización. Una bola "sabe" calcular su nueva posición, comprobar si ha chocado con una banda o con una bola y calcular la dirección que debe tomar después del choque. En este sentido un objeto del tipo TBola es casi autónomo ya que controla prácticamente todos sus movimientos.

    Métodos:

    • Redefine Step. En este método se calcula la nueva posición de la bola, se detectan colisiones y se ajustan de nuevo las componentes de velocidad y dirección de la bola.
    • Redefine Paint
    • Redefine SetRect, GetRect.
    • Proporciona Setxy y Getxy para posicionamiento.

     

    TBolaBlanca

    Es un tipo de bola que tiene la capacidad para preguntar al usuario la velocidad y dirección para empezar su próximo movimiento.

    Métodos:

    • Añade el método AskMove para solicitar un moviento del usuario.


 Home.gif - .166 KHome Page
Comentarios y sugerencias en la Sección de Correo
Última actualización: