Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Programación de un juego de damas en Visual Basic 2005 (página 6)




Enviado por jaimemontoya



Partes: 1, 2, 3, 4, 5, 6

'Inicialmente se ponen las siguientes 2
variables en
una posición en la que nunca podría haber una
ficha: (7, 0), fila 7 y columna 0. Con esto no se pueden soplar
pieza equivocadas inicialmente.

Public soplarfila2
As Integer = 7 'Para saber qué posición en las filas se
le debe soplar al Jugador 2.

Public
soplarcolumna2 As
Integer = 0
'Para saber qué posición en
las columnas se le debe soplar al Jugador 2.

Public Sub crear_cas() 'Este procedimiento
sirve para crear el tablero con las 64 casillas en colores blanco y
negro.

posy = 0 'Variable para
determinar la posición de las columnas o eje x (dado en
pixeles).

For f = 0
To 7 '8 iteraciones, correspondientes a las 8
filas.

posx = 0 'Variable para
determinar la posición de las filas o el eje x (dado en
pixeles).

For c = 0
To 7 '8 iteraciones, correspondientes a las 8
columnas.

casilla(f, c) = New
CASILLAS 'La variable
casilla(f, c) es una instancia de la clase CASILLAS
(es un objeto).

casilla(f, c).Size = New Size(75, 75) 'La propiedad Size
funciona gracias a que la variable matriz
casilla(7, 7) es de tipo CASILLAS, y la clase CASILLAS hereda la
clase Panel, y la clase Panel tiene la propiedad Size, por lo
tanto la clase Panel le hereda a la clase CASILLAS la propiedad
Size. "(75, 75)" son los pixeles, que va a tener 75 pixeles de
ancho y 75 pixeles de alto, pues se quiere que sea cuadrado. El
Panel3 (que se encuentra en la misma ubicación en la que
se va a dibujar el tablero y donde va a estar el escenario para
jugar) es cuadrado y mide 620*620 pixeles, entonces tomando en
cuenta que cada cuadrito mide 75*75 pixeles, se van a tener 64
cuadritos en total que van a caber, 8 filas y 8 columnas de
cuadritos. Pero (620/8)=77.5 pixeles, pero como cada cuadrito
tiene 75 pixeles, entonces 75*8=600 pixeles, entonces sobran 20
pixeles (pues el Panel3 no mide 600 pixeles sino que 620
pixeles), y esos 20 pixeles se van a usar para márgenes,
que se distribuirían en 10 pixeles de margen al lado
izquierdo, 10 al lado derecho, 10 arriba y 10 abajo. Gracias a
los 2 ciclos For, se harán 64 iteraciones y con ello se
les da el tamaño de 75*75 pixeles a cada uno de los 64
cuadritos que componen el tablero de damas. Size es una estructura que
almacena un par de enteros ordenados, en este caso el ancho y
alto del rectánculo. Las 64 casillas del tablero se
crearán sobre el Panel3, y el Panel3 quedará
atrás pero servirá para que se vea el margen de 10
pixeles arriba, abajo, a la izquierda y a la derecha.

casilla(f, c).Location = New Point(357 + posx, 66 + posy)
'Luego de definir el tamaño de cada
cuadrito que compone el tablero de damas, con esta línea
se define la ubicación que va a tener cada uno de esos
cuadritos, de modo que en las 64 iteraciones de los ciclos For
anidados, se darán 64 ubicaciones y quedarán bien
localizados y estructurados cada uno de los elementos que
componen el tablero. La estructura Point representa un par
ordenado de coordenadas x e y de enteros que define un punto en
un plano bidimensional. El punto de origen o el 0,0 es la parte
superior izquierda del formulario (sin contar la barra de
título como parte de las coordenadas). Las coordenadas x
positivas van hacia la derecha del punto 0,0. Las coordenadas x
negativas van hacia la izquierda del punto 0,0. Las coordenadas y
positivo van hacia abajo del punto 0,0. Las coordenadas y
negativo van hacia arriba del punto 0,0. (347, 56) es la
posición del Panel3 en el formulario. Entonces como se
quiere que queden 10 pixeles de margen arriba, abajo, a la
izquierda y a la derecha del tablero (el tablero estará
ubicado sobre el Panel3), entonces por eso se pone (357 + posx,
66 + posy), considerando los 10 pixeles de margen tanto para el
eje x como para el eje y, y sabiendo que inicialmente o en la
primera iteración (cuando f y c valgan 0) tanto posx como
posy van a valer 0.

Form1.Controls.Add(casilla(f, c)) 'Añade el objeto creado en el formulario, con
las dimensiones y ubicación establecida en las dos
líneas anteriores.

casilla(f, c).BringToFront() 'Esto sirve para que el objeto añadido al
formulario con la línea anterior aparezca encima del
objeto Panel3, pues de lo contrario no se va a ver el tablero
generado porque va a estar detrás del Panel3.

casilla(f, c).ocupada = False 'Con esto se hace
que las 64 casillas aparezcan desocupadas, pues lo que se busca
con este procedimiento público es crear el tablero, no
hacer jugadas ni poner fichas
todavía, entonces se hace que todas las casillas se
encuentren vacías.

If (f + c)
Mod 2 = 0 Then 'Si el residuo de la
suma de la fila más la columna entre dos es cero (lo cual
significaría que esa suma fue un número par). Por
ejemplo las casillas (0,0), (2,4), (3,5), etc.

casilla(f, c).BackColor = Color.White 'El color
de la casilla se pone blanco.

Else 'Si el
residuo de la suma de la fila más la columna entre dos es
diferente de cero (lo cual significaría que esa suma fue
un número impar). Por ejemplo las casillas (1,3), (3,4),
(6,3), etc.

casilla(f, c).BackColor = Color.Black
'El color de la casilla se pone
negro.

End If 'Entonces inicialmente
las casillas van a estar blanco y negro, con la casilla (0,0) o
la que está en la parte superior izquierda de color
blanco.

posx = posx + 75 'Para que
en la siguiente iteración, la siguiente casilla se ubique
75 pixeles a la derecha de la anterior hasta formar la fila
completa de 8 casillas en una fila.

Next

posy = posy + 75 'Para que
en la iteración de las filas, que la siguiente casilla se
ubique 75 pixeles abajo de la anterior, y que luego con el For
interno se comience a formar la segunda fila completa.

Next

'NOTA: Con los dos ciclos For anidados
anteriores, el orden en en que se van a ir formando las casillas
es de izquierda a derecha hasta formar la primera fila y luego de
arriba hacia abajo formando fila por fila hasta formar las 8
filas y que se tengan las 64 casillas que componen el
tablero.

End Sub

Public Sub crear_ficha() 'Este procedimiento sirve para crear las 24 fichas
sobre el tablero, 12 para cada jugador, es decir que 12 de un
color y 12 de otro.

Dim objDraw1
As
System.Drawing.Drawing2D.GraphicsPath = New
System.Drawing.Drawing2D.GraphicsPath

objDraw1.AddEllipse(0, 0, 50, 50)

Dim x As Integer

x = 0

'En total, entre los 2 ciclos For
anidados, se harán 48 iteraciones.

For f = 0
To 2 'Debido a las fichas correspondientes al Jugador 1 (las
fichas de arriba) se van a ubicar en las primeras 3 filas del
tablero (contando las filas de arriba hacia abajo), el ciclo
irá de 0 a 2.

For c = 0
To 7 'Se hacen 8 iteraciones porque de las primeras 3 filas
del tablero se van a evaluar casilla por casilla.

If (f + c)
Mod 2 = 0 Then 'Si la suma de la
fila más la columna da un número par (por ejemplo
(0, 0), (0, 2), (0,6), (1,1), (2, 4), etc.), entonces se va a
poner una ficha en esa casilla.

ficha = New
FICHAS 'La variable "ficha" es
una instancia de la clase FICHAS (es un objeto).

ficha.Region = New
Region(objDraw1)

ficha.Size = New
Size(50, 50) 'La propiedad
Size funciona gracias a que la variable "ficha" es de tipo
FICHAS, y la clase FICHAS hereda la clase Panel, y la clase Panel
tiene la propiedad Size, por lo tanto la clase Panel le hereda a
la clase CASILLAS la propiedad Size. "(50, 50)" son los pixeles,
que va a tener 50 pixeles de ancho y 50 pixeles de alto, que es
cuadrado pero con el procedimiento AddEllipse se hará
circular. Recuérdese que las casillas tienen 75×75
pixeles, entonces las fichas se van a poner 50×50 pixeles para
que quepan bien dentro de las casillas.

'ficha.BackColor =
Color.BlueViolet

'Seleccionar la imagen de la
ficha correspondiente para el Jugador 1.

Select Case Form1.ComboBox4.Text

Case "Águila"

ficha.BackgroundImage =
Form1.ImageList1.Images(0)

Case "Blue
Boar Ice Ale"

ficha.BackgroundImage =
Form1.ImageList1.Images(1)

Case "Cherry Coke"

ficha.BackgroundImage =
Form1.ImageList1.Images(2)

Case "Chucho"

ficha.BackgroundImage =
Form1.ImageList1.Images(3)

Case "Coca Cola
Real"

ficha.BackgroundImage =
Form1.ImageList1.Images(4)

Case "Coca
Cola"

ficha.BackgroundImage =
Form1.ImageList1.Images(5)

Case "Cream
Soda"

ficha.BackgroundImage =
Form1.ImageList1.Images(6)

Case "Corona Extra"

ficha.BackgroundImage =
Form1.ImageList1.Images(7)

Case "Diana"

ficha.BackgroundImage =
Form1.ImageList1.Images(8)

Case "Diet
Pepsi"

ficha.BackgroundImage =
Form1.ImageList1.Images(9)

Case "Dr
Pepper"

ficha.BackgroundImage =
Form1.ImageList1.Images(10)

Case "Fanta"

ficha.BackgroundImage =
Form1.ImageList1.Images(11)

Case "Heineken Beer"

ficha.BackgroundImage =
Form1.ImageList1.Images(12)

Case "Hello
Kitty"

ficha.BackgroundImage =
Form1.ImageList1.Images(13)

Case "Mirinda"

ficha.BackgroundImage =
Form1.ImageList1.Images(14)

Case "Nehi
Grape"

ficha.BackgroundImage =
Form1.ImageList1.Images(15)

Case "Pepsi"

ficha.BackgroundImage =
Form1.ImageList1.Images(16)

Case "Red"

ficha.BackgroundImage =
Form1.ImageList1.Images(17)

Case "Scandinavian Pepsi"

ficha.BackgroundImage =
Form1.ImageList1.Images(18)

Case "Star"

ficha.BackgroundImage =
Form1.ImageList1.Images(19)

Case "Stars"

ficha.BackgroundImage =
Form1.ImageList1.Images(20)

End Select

'ficha.BorderStyle =
BorderStyle.Fixed3D

Form1.Controls.Add(ficha) 'Añade el objeto creado en el formulario, con
las dimensiones establecidas en "ficha.Size" y ubicación
que se establecerá dos líneas adelante en
"ficha.Location".

ficha.BringToFront() 'Esto
sirve para que el objeto añadido al formulario con la
línea anterior aparezca encima del objeto Panel3 y encima
de las casillas, pues de lo contrario no se va a ver la ficha
generada porque va a estar detrás del Panel3 y de las
casillas del tablero.

ficha.Location = New
Point(357 + (c * 75) + 12.5, 66 + (f * 75) + 12.5)
'El Panel3 (que se encuentra en la misma
ubicación en la que se van a dibujar las fichas y donde va
a ser el escenario para jugar) es cuadrado y mide 620*620
pixeles, entonces tomando en cuenta que cada ficha mide 50*50
pixeles (aunque no van a ser cuadradas sino que se van a hacer
redondas con el procedimiento AddEllipse), se va a trabajar de
esta forma: luego de definir el tamaño de cada ficha, con
esta línea se define la ubicación que va a tener
cada una de esas fichas, de modo que en las 48 iteraciones de los
ciclos For anidados, se darán 24 ubicaciones
(correspondientes a las 12 fichas para cada jugador, pues con la
condición If, de las 48 iteraciones solamente 24 van a
colocar fichas), y quedarán bien localizadas cada una de
las fichas sobre el tablero. La estructura Point representa un
par ordenado de coordenadas x e y de enteros que define un punto
en un plano bidimensional. El punto de origen o el 0,0 es la
parte superior izquierda del formulario (sin contar la barra de
título como parte de las coordenadas). Las coordenadas x
positivas van hacia la derecha del punto 0,0. Las coordenadas x
negativas van hacia la izquierda del punto 0,0. Las coordenadas y
positivo van hacia abajo del punto 0,0. Las coordenadas y
negativo van hacia arriba del punto 0,0. (347, 56) es la
posición del Panel3 en el formulario. Entonces como se
quiere que queden 10 pixeles de margen arriba, abajo, a la
izquierda y a la derecha del tablero (el tablero estará
ubicado sobre el Panel3), entonces por eso se pone (357 + (c *
75) + 12.5, 66 + (f * 75) + 12.5), considerando los 10 pixeles de
margen tanto para el eje x como para el eje y (por eso 357 en vez
de 347, y 66 en vez de 56). (c * 75) y (f * 75) es para que en
cada iteración se tome el inicio desde donde se va a
formar la casilla tanto de filas (la "f") como de columnas (la
"c"). + 12.5 es porque no se quiere que la ficha se forme justo
desde la parte superior izquierda de la casilla, sino que se
desea que quede en el centro de la casilla, entonces se ponen
esos 12.5 pixeles de margen izquierdo para el caso del eje x y
12.5 pixeles de margen superior para el caso del eje y, entonces
la casilla va a tomar 50 pixeles (50 + 12.5 = 62.5 pixeles), y
van a quedar otros 12.5 pixeles tanto de margen derecho como de
margen inferior, con lo cual se completan los 75 pixeles de cada
casilla (pues 62.5 + 12.5 = 75 pixeles).

'ficha.equipo = 1

casilla(f, c).jugador = 1

casilla(f, c).ocupada = True 'Para que la casilla
correspondiente según la iteración de los ciclos
For anidados, que la casilla quede ocupada para efectos de
programación, que no se pueda poner otra
casilla mientras esta no se haya quitado o mientras no haya sido
comida, etc.

Jugador1(x) = ficha

x = x + 1

End If

Next

Next

x = 0

For f = 5
To 7 'Debido a las fichas correspondientes al Jugador 2 (las
fichas de abajo) se van a ubicar en las últimas 3 filas
del tablero (contando las filas de arriba hacia abajo, es decir
las filas 6, 7 y 8), el ciclo irá de 5 a 7.

For c = 0
To 7 'Se hacen 8 iteraciones porque de las filas 6, 7 y 8
del tablero se va a evaluar casilla por casilla.

If (f + c)
Mod 2 = 0 Then 'Si la suma de la
fila más la columna da un número par (por ejemplo
(5, 1), (5, 3), (6,0), (6,4), (7, 3), etc.), entonces se va a
poner una ficha en esa casilla.

ficha = New
FICHAS 'La variable "ficha" es
una instancia de la clase FICHAS (es un objeto).

ficha.Region = New
Region(objDraw1)

ficha.Size = New
Size(50, 50) 'La propiedad
Size funciona gracias a que la variable "ficha" es de tipo
FICHAS, y la clase FICHAS hereda la clase Panel, y la clase Panel
tiene la propiedad Size, por lo tanto la clase Panel le hereda a
la clase CASILLAS la propiedad Size. "(50, 50)" son los pixeles,
que va a tener 50 pixeles de ancho y 50 pixeles de alto, que es
cuadrado pero con el procedimiento AddEllipse se hará
circular. Recuérdese que las casillas tienen 75×75
pixeles, entonces las fichas se van a poner 50×50 pixeles para
que quepan bien dentro de las casillas.

'ficha.BackColor =
Color.Crimson

'Seleccionar la imagen de la ficha
correspondiente para el Jugador 2.

Select Case Form1.ComboBox3.Text

Case "Águila"

ficha.BackgroundImage =
Form1.ImageList1.Images(0)

Case "Blue
Boar Ice Ale"

ficha.BackgroundImage =
Form1.ImageList1.Images(1)

Case "Cherry Coke"

ficha.BackgroundImage =
Form1.ImageList1.Images(2)

Case "Chucho"

ficha.BackgroundImage =
Form1.ImageList1.Images(3)

Case "Coca
Cola Real"

ficha.BackgroundImage =
Form1.ImageList1.Images(4)

Case "Coca
Cola"

ficha.BackgroundImage =
Form1.ImageList1.Images(5)

Case "Cream
Soda"

ficha.BackgroundImage =
Form1.ImageList1.Images(6)

Case "Corona Extra"

ficha.BackgroundImage =
Form1.ImageList1.Images(7)

Case "Diana"

ficha.BackgroundImage =
Form1.ImageList1.Images(8)

Case "Diet
Pepsi"

ficha.BackgroundImage =
Form1.ImageList1.Images(9)

Case "Dr
Pepper"

ficha.BackgroundImage =
Form1.ImageList1.Images(10)

Case "Fanta"

ficha.BackgroundImage =
Form1.ImageList1.Images(11)

Case "Heineken Beer"

ficha.BackgroundImage =
Form1.ImageList1.Images(12)

Case "Hello
Kitty"

ficha.BackgroundImage =
Form1.ImageList1.Images(13)

Case "Mirinda"

ficha.BackgroundImage =
Form1.ImageList1.Images(14)

Case "Nehi
Grape"

ficha.BackgroundImage =
Form1.ImageList1.Images(15)

Case "Pepsi"

ficha.BackgroundImage =
Form1.ImageList1.Images(16)

Case "Red"

ficha.BackgroundImage =
Form1.ImageList1.Images(17)

Case "Scandinavian Pepsi"

ficha.BackgroundImage =
Form1.ImageList1.Images(18)

Case "Star"

ficha.BackgroundImage =
Form1.ImageList1.Images(19)

Case "Stars"

ficha.BackgroundImage =
Form1.ImageList1.Images(20)

End Select

'ficha.BorderStyle =
BorderStyle.Fixed3D

Form1.Controls.Add(ficha) 'Añade el objeto creado en el formulario, con
las dimensiones establecidas en "ficha.Size" y ubicación
que se establecerá dos líneas adelante en
"ficha.Location".

ficha.BringToFront() 'Esto
sirve para que el objeto añadido al formulario con la
línea anterior aparezca encima del objeto Panel3 y encima
de las casillas, pues de lo contrario no se va a ver la ficha
generada porque va a estar detrás del Panel3 y de las
casillas del tablero.

ficha.Location = New
Point(357 + (c * 75) + 12.5, 66 + (f * 75) + 12.5)
'El Panel3 (que se encuentra en la misma
ubicación en la que se van a dibujar las fichas y donde va
a ser el escenario para jugar) es cuadrado y mide 620*620
pixeles, entonces tomando en cuenta que cada ficha mide 50*50
pixeles (aunque no van a ser cuadradas sino que se van a hacer
redondas con el procedimiento AddEllipse), se va a trabajar de
esta forma: luego de definir el tamaño de cada ficha, con
esta línea se define la ubicación que va a tener
cada una de esas fichas, de modo que en las 48 iteraciones de los
ciclos For anidados, se darán 24 ubicaciones
(correspondientes a las 12 fichas para cada jugador, pues con la
condición If, de las 48 iteraciones solamente 24 van a
colocar fichas), y quedarán bien localizadas cada una de
las fichas sobre el tablero. La estructura Point representa un
par ordenado de coordenadas x e y de enteros que define un punto
en un plano bidimensional. El punto de origen o el 0,0 es la
parte superior izquierda del formulario (sin contar la barra de
título como parte de las coordenadas). Las coordenadas x
positivas van hacia la derecha del punto 0,0. Las coordenadas x
negativas van hacia la izquierda del punto 0,0. Las coordenadas y
positivo van hacia abajo del punto 0,0. Las coordenadas y
negativo van hacia arriba del punto 0,0. (347, 56) es la
posición del Panel3 en el formulario. Entonces como se
quiere que queden 10 pixeles de margen arriba, abajo, a la
izquierda y a la derecha del tablero (el tablero estará
ubicado sobre el Panel3), entonces por eso se pone (357 + (c *
75) + 12.5, 66 + (f * 75) + 12.5), considerando los 10 pixeles de
margen tanto para el eje x como para el eje y (por eso 357 en vez
de 347, y 66 en vez de 56). (c * 75) y (f * 75) es para que en
cada iteración se tome el inicio desde donde se va a
formar la casilla tanto de filas (la "f") como de columnas (la
"c"). + 12.5 es porque no se quiere que la ficha se forme justo
desde la parte superior izquierda de la casilla, sino que se
desea que quede en el centro de la casilla, entonces se ponen
esos 12.5 pixeles de margen izquierdo para el caso del eje x y
12.5 pixeles de margen superior para el caso del eje y, entonces
la casilla va a tomar 50 pixeles (50 + 12.5 = 62.5 pixeles), y
van a quedar otros 12.5 pixeles tanto de margen derecho como de
margen inferior, con lo cual se completan los 75 pixeles de cada
casilla (pues 62.5 + 12.5 = 75 pixeles).

'ficha.equipo = 2

casilla(f, c).jugador = 2

casilla(f, c).ocupada = True

Jugador2(x) = ficha

x = x + 1

End If

Next

Next

End Sub

Public Sub cambiar_color_casillas()
'Procedimiento público para cambiar
el color de las casillas del tablero.

For f = 0
To 7 '8 iteraciones, correspondientes a las 8
filas.

For c = 0
To 7 '8 iteraciones, correspondientes a las 8
columnas.

If (f + c)
Mod 2 = 0 Then 'Si el residuo de la
suma de la fila más la columna entre dos es cero (lo cual
significaría que esa suma fue un número par). Por
ejemplo las casillas (0,0), (2,4), (3,5), etc.

casilla(f, c).BackColor = CASILLAS.color1
'El color de la casilla se pone del color
contenido en la variable Public Shared color1.

Else 'Si el
residuo de la suma de la fila más la columna entre dos es
diferente de cero (lo cual significaría que esa suma fue
un número impar). Pr ejemplo las casillas (1,3), (3,4),
(6,3), etc.

casilla(f, c).BackColor = CASILLAS.color2
'El color de la casilla se pone del color
contenido en la variable Public Shared color2.

End If

Next

Next

End Sub

Public Sub crear_corona1()

corona = New
CORONAS

Dim objDraw1
As
System.Drawing.Drawing2D.GraphicsPath = New
System.Drawing.Drawing2D.GraphicsPath

objDraw1.AddEllipse(0, 0, 50, 50)

corona.Region = New
Region(objDraw1)

corona.Size = New
Size(50, 50) 'La propiedad
Size funciona gracias a que la variable "ficha" es de tipo
FICHAS, y la clase FICHAS hereda la clase Panel, y la clase Panel
tiene la propiedad Size, por lo tanto la clase Panel le hereda a
la clase CASILLAS la propiedad Size. "(50, 50)" son los pixeles,
que va a tener 50 pixeles de ancho y 50 pixeles de alto, que es
cuadrado pero con el procedimiento AddEllipse se hará
circular. Recuérdese que las casillas tienen 75×75
pixeles, entonces las fichas se van a poner 50×50 pixeles para
que quepan bien dentro de las casillas.

'corona.BackColor = Color.Red

corona.BackgroundImage =
Form1.ImageList1.Images(21)

Form1.Controls.Add(corona)

corona.BringToFront()

corona.Location = New Point(cposx, cposy)

End Sub

Public Sub crear_corona2()

corona = New
CORONAS

Dim objDraw1
As
System.Drawing.Drawing2D.GraphicsPath = New
System.Drawing.Drawing2D.GraphicsPath

objDraw1.AddEllipse(0, 0, 50, 50)

corona.Region = New
Region(objDraw1)

corona.Size = New
Size(50, 50) 'La propiedad
Size funciona gracias a que la variable "ficha" es de tipo
FICHAS, y la clase FICHAS hereda la clase Panel, y la clase Panel
tiene la propiedad Size, por lo tanto la clase Panel le hereda a
la clase CASILLAS la propiedad Size. "(50, 50)" son los pixeles,
que va a tener 50 pixeles de ancho y 50 pixeles de alto, que es
cuadrado pero con el procedimiento AddEllipse se hará
circular. Recuérdese que las casillas tienen 75×75
pixeles, entonces las fichas se van a poner 50×50 pixeles para
que quepan bien dentro de las casillas.

'corona.BackColor =
Color.Blue

corona.BackgroundImage =
Form1.ImageList1.Images(22)

Form1.Controls.Add(corona)

corona.BringToFront()

corona.Location = New Point(cposx, cposy)

End Sub

Public Sub posibilidad_soplar()

'Evaluación
para determinar si el Jugador 1 tiene que comer hacia su
izquierda (derecha de la pantalla).

For f = 0
To 5 'Desde la fila 1 hasta la 5 porque una ficha que no sea
reina puede comer como máximo desde la fila 6 (para llegar
a caer a la fila 8).

For c = 0
To 5 'Desde la columna 1 hasta la 6 porque una ficha que no
sea reina puede comer hacia la derecha de la pantalla (hacia la
izquierda del Jugador 1) como máximo desde la columna 6
del tablero (para llegar a caer a la columna 8).

If casilla(f, c).jugador =
1 Then 'Si hay una ficha del Jugador 1 en esta
casilla.

If casilla(f + 1, c +
1).jugador = 2 Then
'Si hay una pieza del Jugador 2 que se
puede comer en diagonal hacia la izquierda del Jugador 1 (hacia
la derecha de la pantalla)

If casilla(f + 2, c +
2).ocupada = False
Then 'Si se
puede comer porque el espacio donde va a ir a quedar la ficha
para comer está vacío.

'If turno = 1 Then 'Para que sea posible
soplarle una pieza al Jugador 1 solamente si a él le
correspondía mover y no comió.

soplar1 = True

soplarfila1 = f

soplarcolumna1 = c

End If

End If

End If

Next

Next

'Evaluación para determinar si el
Jugador 1 tiene que comer hacia su derecha (izquierda de la
pantalla).

For f = 0
To 5 'Desde la fila 0 hasta la 5 porque una ficha que no sea
reina puede comer como máximo desde la fila 6 (para llegar
a caer a la fila 8).

For c = 2
To 7 'Desde la fila 3 hasta la 8 porque una ficha que no sea
reina puede comer hacia la izquierda de la pantalla (hacia la
derecha del Jugador 1) como máximo desde la columna 3 del
tablero (para llegar a caer a la columna 1).

If casilla(f, c).jugador =
1 Then 'Si hay una ficha del Jugador 1 en esta
casilla.

If casilla(f + 1, c –
1).jugador = 2 Then
'Si hay una pieza del Jugador 2 que se
puede comer en diagonal hacia la derecha del Jugador 1 (hacia la
izquierda de la pantalla).

If casilla(f + 2, c –
2).ocupada = False
Then 'Si se
puede comer porque el espacio donde va a ir a quedar la ficha
para comer está vacío.

'If turno = 1 Then 'Para que sea posible
soplarle una pieza al Jugador 1 solamente si a él le
correspondía mover y no comió.

soplar1 = True

soplarfila1 = f

soplarcolumna1 = c

End If

End If

End If

Next

Next

If soplar1 =
False Then

Else

End If

'Evaluación para determinar si el
Jugador 2 tiene que comer hacia su izquierda (izquierda de la
pantalla).

For f = 2
To 7 'Desde la fila 3 hasta la 8 porque una ficha que no sea
reina puede comer como máximo desde la fila 3 (para llegar
a caer a la fila 1).

For c = 2
To 7 'Desde la columna 3 hasta la 8 porque una ficha que no
sea reina puede comer hacia la izquierda de la pantalla (hacia la
izquierda del Jugador 2) como máximo desde la columna 3
del tablero (para llegar a caer a la columna 1).

If casilla(f, c).jugador =
2 Then 'Si hay una ficha del Jugador 2 en esta
casilla.

If casilla(f – 1, c –
1).jugador = 1 Then
'Si hay una pieza del Jugador 1 que se
puede comer en diagonal hacia la izquierda del Jugador 2 (hacia
la izquierda de la pantalla)

If casilla(f – 2, c –
2).ocupada = False
Then 'Si se
puede comer porque el espacio donde va a ir a quedar la ficha
para comer está vacío.

soplar2 = True

soplarfila2 = f

soplarcolumna2 = c

End If

End If

End If

Next

Next

'Evaluación para determinar si el
Jugador 2 tiene que comer hacia su derecha (derecha de la
pantalla).

For f = 2
To 7 'Desde la fila 3 hasta la 8 porque una ficha que no sea
reina puede comer como máximo desde la fila 3 (para llegar
a caer a la fila 1).

For c = 0
To 5 'Desde la fila 1 hasta la 6 porque una ficha que no sea
reina puede comer hacia la derecha de la pantalla (hacia la
derecha del Jugador 2) como máximo desde la columna 6 del
tablero (para llegar a caer a la columna 8).

If casilla(f, c).jugador =
2 Then 'Si hay una ficha del Jugador 2 en esta
casilla.

If casilla(f – 1, c +
1).jugador = 1 Then
'Si hay una pieza del Jugador 1 que se
puede comer en diagonal hacia la derecha del Jugador 2 (hacia la
derecha de la pantalla).

If casilla(f – 2, c +
2).ocupada = False
Then 'Si se
puede comer porque el espacio donde va a ir a quedar la ficha
para comer está vacío.

soplar2 = True

soplarfila2 = f

soplarcolumna2 = c

End If

End If

End If

Next

Next

End Sub

End Module

 

 

Autor:

Jaime Montoya

Santa Ana, 22 de junio de 2008

El Salvador

Partes: 1, 2, 3, 4, 5, 6

Partes: 1, 2, 3, 4, 5, 6
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter