Resultados 1 al 4 de 4

Tema: Juego: Ajedrez capitalista

  1. #1
    Registrado Avatar de Arielo
    Fecha de ingreso
    07 sep, 06
    Ubicación
    Abya Yala
    Mensajes
    8,152

    Predeterminado Juego: Ajedrez capitalista

    Hoy comienzo con este tema, donde desarrollaremos un juego basado en el ajedrez. Concretamente, en el caballo y su movimiento. Además, se jugará en un tablero de 8x8 casillas, como el ajedrez. El juego no está aún programado, pero lo iremos haciendo a medida que avance el tema.

    El objetivo del juego será recolectar la mayor cantidad de dinero posible, dentro de un tiempo determinado. El dinero irá apareciendo en forma de monedas, ubicado en casillas aleatorias, y estará en el tablero por un tiempo indefinido, aunque breve.

    Comenzaremos con explicar el movimiento del caballo de ajedrez, para quien no lo conozca.

    Este se mueve en forma de "L" por el tablero, llegando a una casilla destino que estará a una fila y dos columnas, o dos filas y una columna de distancia de la actual, en cualquier sentido. Claro que esto dependerá de la casilla donde esté ubicado, ya que si está en un borde, sólo podrá hacer algunos de esos movimientos.
    En la imagen adjunta, se puede ver los distintos movimientos posibles de un caballo.

    Aquí podemos apreciar otra característica de este movimiento: siempre, la casilla de destino, tendrá un color distinto a la actual.
    Imágenes adjuntadas Imágenes adjuntadas
    Rara paradoja de la vida: comúnmente, a militares genocidas se les premia dándoles su nombre a calles, mientras que a científicos que salvan vidas, dándoles su nombre a virus y bacterias ...
    ----------
    El 75% de las personas, deja sin terminar lo que estaba hac

  2. #2
    Registrado Avatar de Arielo
    Fecha de ingreso
    07 sep, 06
    Ubicación
    Abya Yala
    Mensajes
    8,152

    Predeterminado Respuesta: Juego: Ajedrez capitalista

    Primero, dividiremos el tablero en Filas (F) y Columnas (C). La primera Fila tendrá el número 0 (cero) y la primera Columna tendrá el número 0 (cero)
    - Las Filas comprenderán todas las hileras de casillas horizontales.
    - Las Columnas, comprenderán todas las hileras de casillas verticales.

    Para identificar las casillas, las nombraremos por los dos números que identifican tanto la Fila como la Columna que se cruzan en esa casilla. Por ejemplo, en el tablero que vemos en el adjunto, el Caballo está ubicado en la casilla (4,4)

    A su vez, cada casilla (comenzando por la 0,0) tendrá un número correlativo que la identificará inequívocamente del resto. Así, a la casilla (0,0) le corresponde el número 0 (cero), a la (0,1) el número 1, y así sucesivamente hasta llegar a la última casilla, (7,7), a la que le corresponde el número 63, ya que un tablero de ajedrez tiene 64 casillas, y comenzamos por la 0 (cero)
    De esta manera, el Caballo que tenemos ubicado sobre el tablero, lo está en la casilla 36.

    Para conocer qué número le corresponde a cada casilla, bastará con multiplicar por 8 el número de Fila, y sumarle el número de Columna de dicha casilla. Por ejemplo, para llegar al número de casilla donde se encuentra el caballo (Fila 4, Columna 4), tenemos que hacer la siguiente cuenta:
    nc = (F*8) + C
    nc = (4*8) + 4
    nc = 32 + 4
    nc = 36
    .
    Imágenes adjuntadas Imágenes adjuntadas
    Rara paradoja de la vida: comúnmente, a militares genocidas se les premia dándoles su nombre a calles, mientras que a científicos que salvan vidas, dándoles su nombre a virus y bacterias ...
    ----------
    El 75% de las personas, deja sin terminar lo que estaba hac

  3. #3
    Registrado Avatar de Arielo
    Fecha de ingreso
    07 sep, 06
    Ubicación
    Abya Yala
    Mensajes
    8,152

    Predeterminado Respuesta: Juego: Ajedrez capitalista

    Movimiento del caballo

    Ya tenemos todo listo como para tratar el tema del movimiento del Caballo por el tablero.

    Viendo los esquemas de los movimientos posibles, y teniendo en cuenta la numeración de filas y columnas del tablero, podemos ver que es posible definir los 8 movimientos del caballo en base a la diferencia de Fila y Columna que tiene la casilla de destino, con respecto a la actual.

    Para esto, haremos un diagrama sobre el tablero, numerando los posibles movimientos, y viendo la diferencia de F,C de cada uno (ver adjunto)

    De esta manera, comprobamos que:
    Para realizar el movimiento 1, debemos restar 2 a la Fila, y 1 a la Columna actuales. Si estamos en (4,4), haremos:
    FilaDestino = 4 - 2 = 2
    ColumnaDestino = 4 - 1 = 3
    O sea, llegamos a la casilla (2,3), cuya numeración será, de acuerdo a lo que ya vimos: (2*8)+3 = 19

    Para el mov. 2, restaremos 2 a la Fila, y sumaremos 1 a la Columna actuales. La casilla de destino (2,5) será la número (2*8)+5 = 21

    Resumiendo, las cuentas que deberemos sacar para lograr los distintos movimientos, son:

    Mov. F C
    1-2-1
    2-2+1
    3-1+2
    4+1+2
    5+2+1
    6+2-1
    7+1-2
    8-1-2

    Con este método, lograremos saber rápidamente si el movimiento es posible o no: si la Fila o Columna de destino es menor a 0 (cero) o mayor a 7, entonces ese movimiento no es posible desde la casilla actual.

    .
    Imágenes adjuntadas Imágenes adjuntadas
    Rara paradoja de la vida: comúnmente, a militares genocidas se les premia dándoles su nombre a calles, mientras que a científicos que salvan vidas, dándoles su nombre a virus y bacterias ...
    ----------
    El 75% de las personas, deja sin terminar lo que estaba hac

  4. #4
    Registrado Avatar de Arielo
    Fecha de ingreso
    07 sep, 06
    Ubicación
    Abya Yala
    Mensajes
    8,152

    Predeterminado Respuesta: Juego: Ajedrez capitalista

    Comencemos a armar el juego...

    En un Form nuevo, agregar un array de 64 controles Image.
    Estos controles tendrán como nombre imgCasilla(). El tamaño de estos controles será de 34x34 pixeles.
    Disponerlos en una grilla de 8x8

    Agregar otro array de 64 elementos, de controles Shape.
    De éstos, 32 tendrán como fondo, el color Blanco, y 32 otro color bien diferenciado. El nombre de los controles será shpCasilla(). Tamaño: 34x34 pixeles.
    Disponerlos en la misma grilla que los Image, de forma tal que quede armado el tablero de ajedrez. Puede ser necesario colocarlos por detrás de los Image, haciendo clic derecho sobre ellos, y seleccionando "Enviar al Fondo".

    Agregar un nuevo control Image, éste de nombre imgCaballo, el que contendrá una imagen del caballo de ajedrez que utilizaremos como personaje principal (Adjunto una imagen) Este control lo ubicaremos sobre el tablero de tal manera, que su posición inicial sea Fila 3 y Columna 4.

    Agregar dos controles Label. Ambos serán invisibles para el jugador (setear propiedad Visibe a False) Uno se llamará filaCab y el otro colCab. El valor inicial de filaCab será 3, y el de colCab será 4. En estos labels, iremos colocando la fila actual del caballo (en filaCab) y la columna actual (en colCab).
    Lo haremos así sólo para no utilizar variables...

    Agregaremos otro control Image, con la moneda que habrá que ir recolectando. Este Image se llamará imgMoneda, y también será invisible cuando ejecutemos el juego. Adjunto imagen.

    Agregar por último, dos controles Timer. Uno contará en tiempo transcurrido desde la última vez que recolectamos una moneda (tmrUltMon), y el otro el tiempo que transcurrió desde que apareció una moneda en el tablero (tmrMoneda). Por el momento, la propiedad Interval de éstos, será igual a 0, por lo que no contarán tiempo.

    Una vez terminado este paso, les debería haber quedado un Form como el del adjunto.


    continuará...


    .
    Imágenes adjuntadas Imágenes adjuntadas
    Rara paradoja de la vida: comúnmente, a militares genocidas se les premia dándoles su nombre a calles, mientras que a científicos que salvan vidas, dándoles su nombre a virus y bacterias ...
    ----------
    El 75% de las personas, deja sin terminar lo que estaba hac

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •