Red de conocimientos turísticos - Conocimientos sobre calendario chino - Código fuente del sistema de estimación

Código fuente del sistema de estimación

El código fuente del juego de damas escrito en VB, es mejor tenerlo en papel. Porque hay que presentar tanto el proyecto de graduación como la tesis.

Respuesta:

[1] Por desgracia, es una lástima que tu puntuación sea 100. Supongo que aquí no hay respuesta. Después de todo, la gente corriente no escribiría un programa para ti sólo por 100, ¿verdad?

[2]Código de damas VB:

Código de formulario:

Tablero de ajedrez Dim (-2to10,-2to10) como tablero de bytes (8 verticales * 8 Ajedrez internacional )

Dim x (10) es un número entero, y (10) es un número entero '' para buscar en cada sentido.

Dim x 1 (10) es un número entero, y 1 (10) es un número entero'' y las coordenadas de las piezas comestibles encontradas para cada movimiento.

Atenuar BestLocate como CHESSER

Mostrar el jugador actual como bytes ''jugador actual

Atenuar CurrentStep como entero ''paso actual

El modo difuso hombre-máquina es booleano

¿Qué pieza eligió el jugador?

Dim tTemp es un valor booleano

Const MAXDOWNPOINT = 7

Rem Si Cer es 1 (cuadrado negro), devuelve 2 (cuadrado rojo), de lo contrario Agregará 1 (cuadrado negro).

Función pública NextCer(ByVal Cer As Byte) As Byte

NextCer = 1

Si Cer = 1, entonces NextCer = 2

Función final

Tablero de ajedrez Rem

Letra inicial secundaria privada ()

Dim i es un número entero, j es un número entero

Para i = 1 a 8: Para j = 1 a 8: Tablero (I, j) = 0: Siguiente j: Siguiente I

Tablero de ajedrez (1, 2) = 201

Tablero de ajedrez (1, 4) = 201

Tablero de ajedrez (1, 6) = 201

Tablero de ajedrez (1, 8) = 201

Tablero de ajedrez (2, 1) = 201

Tablero de ajedrez(2,3) = 201

Tablero de ajedrez(2,5) = 201

Tablero de ajedrez(2,7) = 201

Tablero de ajedrez(3,2) = 201

Tablero de ajedrez(3,4) = 201

Tablero de ajedrez(3,6) = 201

Tablero de ajedrez (3, 8) = 201

Tablero de ajedrez (6, 1) = 101

Tablero de ajedrez (6, 3) = 101

Tablero de ajedrez (6, 5) = 101

Tablero de ajedrez(6,7) = 101

Tablero de ajedrez(7,2) = 101

Tablero de ajedrez(7,4) = 101

Tablero de ajedrez(7,6) = 101

Tablero de ajedrez(7,8) = 101

Tablero de ajedrez(8,1) = 101

Tablero de ajedrez (8, 3) = 101

Tablero de ajedrez (8, 5) = 101

Tablero de ajedrez (8, 7) = 101

Conector final

Rem invierte la visualización (guarda el contenido mostrado en la pantalla en la matriz de tablero de ajedrez)

Private Sub redisplay()

Dim i es un número entero, j es un número entero, k es un número entero

k = 0

Para i = 1 a 8

Para j = 1 a 8

Si cbText( k). Text = " "Entonces tablero de ajedrez(I, j) = 0

Si cbText(k). Texto = "101 "Entonces tablero de ajedrez(I,j) = 101

Si cbText(k). Texto = "201 "Entonces tablero de ajedrez(I, j) = 201

Si cbText(k).

Texto = "102 "Entonces tablero de ajedrez(I,j) = 102

Si cbText(k). Text = "202 "Entonces el tablero de ajedrez (I, j) = 202

k = k + 1

Siguiente j

Siguiente yo

Conector final

Pantalla Rem (muestra el contenido de la matriz de tablero de ajedrez detrás de la pantalla)

Subpantalla privada()

Dim i es un número entero y j es un número entero, k es un número entero

k = 0

Para i = 1 a 8

Para j = 1 a 8

Si el tablero (I, j) = 0, entonces

cbText(k). text = " "

Otro

cbText(k). Texto = tablero de ajedrez (I, j)

Terminará si...

k = k + 1

Siguiente j

Continuar Bajame

Llamar juicio de victoria o derrota

Finalizar conjunto

Rem juicio de victoria o derrota

Juicio privado de victoria o derrota ( )

Dim i es un número entero, j es un número entero

Dim a es un número entero, b es un número entero

a = 0: b = 0

Para i = 1 a 8

Para j = 1 a 8

Si int(tablero de ajedrez(I, j)/100) = 1 entonces a = a+1 ' 'Cuenta el número de piezas de los jugadores de ajedrez.

Si int(chessboard(I,J)/100) = 2thenb = b+1 ' 'Calcula el número de piezas de ajedrez en la computadora.

Siguiente j

Siguiente yo

Si a = 0, llame a MsgBox("¡Gané!"), vbOKOnly+32, "Preguntar :"): Salir de Sub

Si b = 0 entonces llame a MsgBox("¡Me rindo!"), vbOKOnly+32, "Pregunta:"):Salir de Sub

Finalizar conector

Evaluación de retorno Rem

Función privada CurrentValue (Cer es un byte) es un número entero

Dim i es un número entero, j es un número entero

Actual Valor = 0

Para i = 1 a 8

Para j = 1 a 8

Si Int(Tablero de ajedrez(I,j)/100) = Cer Entonces_

Valor actual = valor actual + tablero (I, J) mod 100 * 10100 '' es nuestra pieza de ajedrez. La pieza de ajedrez es 1 más 100 puntos, y la pieza de ajedrez es 2 más 200. agujas.

Si Int(Chessboard(I,j)/100) = NextCer(Cer) entonces_

Valor actual = Valor actual-(Chessboard(I,J)mod 100 * 100 + 100)'La pieza de ajedrez del oponente es 1 menos 100 puntos, y la pieza de ajedrez es 2 menos 200 puntos.

Siguiente j

Siguiente yo

Función final

Si las piezas I y J de Cer aún se pueden capturar, Rem devuelve Verdadero.

La función privada IsLine (Cer es byte, I es byte, j es byte) es un valor booleano

Dim x es byte, y es byte, x1 es sección de palabra, y1 es un byte

IsLine = False

Empieza a buscar en el tablero.

Si es la pieza de ajedrez del lado de Cer.

Si Int(Tablero de ajedrez (I, j) / 100) = Cer entonces

La fórmula 'comer pieza' es 1: es decir, si hay una pieza de ajedrez del oponente en el posición de la fórmula básica, puedes saltar Captura en el pasado (restricción de la fórmula: Cer es 1 o la pieza de ajedrez solo se puede mover para fortalecer el ajedrez).

Si Int(Tablero de ajedrez(i - 1, j-1)/100) = siguiente Cer(Cer)And(Cer = 1 o Tablero de ajedrez(I, j) Mod 100 = 2) Entonces

X = (i-1)-1 ' 'Coordenadas objetivo

y = (j - 1) - 1

X1 = i-1 ' 'Coordenadas del grupo

y1 = j - 1

Si x & gt0 e y & gt0 y x & lt9 e y & lt9 y tablero de ajedrez (x, y) = 0 entonces es línea = Verdadero 'si Si hay algo para comer, devuelve True.

Terminará si...

Método 2 de comerse el caminar de un niño

Si Int(Tablero de ajedrez(i - 1, j+1)/100 ) = siguiente Cer(Cer)Y(Cer = 1 o tablero de ajedrez (I, j) Mod 100 = 2) entonces

x = (i - 1) - 1

y = (j + 1) + 1

x1 = i - 1

y1 = j + 1

Si x & gt0 e y & gt0 y x & lt9 y y & lt9 y board (x, y) = 0 entonces es line = True 'Si hay algo para comer, devuelve True.

Terminará si...

Comprueba, vamos, vamos 3

Si Int (tablero (i+1, j-1)/100) = siguiente Cer (Cer)Y(Cer = 2 o tablero (I, j) Mod 100 = 2) entonces

x = (i + 1) + 1

y = ( j - 1 ) - 1

x1 = i + 1

y1 = j - 1

si x & gt0 e y & gt0 y x & lt9 y y & lt9 Y el tablero de ajedrez (x, y) = 0 entonces es línea = True 'Si hay algo para comer, devuelve True.

Terminará si...

"Caminar como comer" 4

If Int(Tablero de ajedrez(i+1,j+1)/100) = siguiente Cer(Cer)Y(Cer = 2 o tablero (I, j) Mod 100 = 2) entonces

x = (i + 1) + 1

y = ( j + 1) + 1

x1 = i + 1

y1 = j + 1

si x & gt0 e y & gt0 y x & lt9 y y & lt9 y board (x, y) = 0 entonces es line = True 'Si hay algo para comer, devuelve True.

Terminará si...

Terminará si...

Finalizar función

Si los fragmentos de Cer pueden Todavía se puede comer, Rem devuelve True.

La función privada IsLine2 (Cer es byte) es un valor booleano

Dim x es byte, y es byte, x1 es byte, y1 es byte

Dim i es un número entero, j es un número entero

IsLine2 = False

Empiece a buscar en el tablero de ajedrez.

Para i = 1 a 8

Para j = 1 a 8

Si es la pieza de ajedrez del lado de Cer.

Si Int(Tablero de ajedrez (I, j) / 100) = Cer entonces

La fórmula 'comer pieza' es 1: es decir, si hay una pieza de ajedrez del oponente en el posición de la fórmula básica, puedes saltar Captura en el pasado (restricción de la fórmula: Cer es 1 o la pieza de ajedrez solo se puede mover para fortalecer el ajedrez).

Si Int(Tablero de ajedrez(i - 1, j-1)/100) = siguiente Cer(Cer)And(Cer = 1 o Tablero de ajedrez(I, j) Mod 100 = 2) Entonces

X = (i-1)-1 ' 'Coordenadas objetivo

y = (j - 1) - 1

X1 = i-1 ' 'Coordenadas del grupo

y1 = j - 1

Si x & gt0 e y & gt0 y x & lt9 e y & lt9 y board(x, y) = 0 entonces fila 2 = verdadero 'Si hay comida, vuelve verdadero.

Terminará si...

Método 2 de comerse al niño que camina

Si Int(Tablero de ajedrez(i - 1, j+1)/100 ) = siguiente Cer(Cer)Y(Cer = 1 o tablero de ajedrez (I, j) Mod 100 = 2) entonces

x = (i - 1) - 1

y = (j + 1) + 1

x1 = i - 1

y1 = j + 1

Si x & gt0 e y & gt0 y x & lt9 y y & lt9 y board(x,y) = 0 entonces línea 2 = true 'Si hay algo para comer, devuelve verdadero.

Terminará si...

Comprueba, vamos, vamos 3

Si Int (tablero (i+1, j-1)/100) = siguiente Cer (Cer)Y(Cer = 2 o tablero (I, j) Mod 100 = 2) entonces

x = (i + 1) + 1

y = ( j - 1 ) - 1

x1 = i + 1

y1 = j - 1

si x & gt0 e y & gt0 y x & lt9 y y & lt9 y board(x, y) = 0 luego línea 2 = true 'Si hay algo para comer, devuelve verdadero.

Terminará si...

"Caminar como comer" 4

If Int(Tablero de ajedrez(i+1,j+1)/100) = siguiente Cer(Cer)Y(Cer = 2 o tablero (I, j) Mod 100 = 2) entonces

x = (i + 1) + 1

y = ( j + 1) + 1

x1 = i + 1

y1 = j + 1

si x & gt0 e y & gt0 y x & lt9 y y & lt9 y tablero (x, y) = 0, luego línea 2 = verdadero 'Si hay algo para comer, devuelve verdadero.

Terminará si...

Terminará si...

Siguiente j

Siguiente yo

Función final

Programa de búsqueda Rem

Búsqueda de función privada (Cer es bytes, Steps es un número entero, IsTop es booleano, UpMax es un número entero)

Dim a es un número entero, b es un número entero, b1 es un número entero, b2 es un número entero, I es un número entero, j es un número entero, k es un número entero, l es un número entero, v es un número entero

Dim MaxValue es un número entero

Dim Sc(40)As CHESSER

Dim IsEat(7) As Boolean ' '¿Comiste las siete formas en que buscaste?

¿Dim se comió a un niño como Boolean?

Si esTop, entonces

List1. Borrar

Para i = 0 a 40: Sc(i). Permitir = False:Siguiente I '; De forma predeterminada, no se permiten todos los recorridos, si todos los valores son falsos, se permiten todos los recorridos.

Terminará si...

Eat = False

Para i = 0 a 7: IsEat(7) = False: Siguiente i 'Por defecto, No se comerán todos los movimientos buscados.

Número de pasos = Número de pasos - 1

Si Paso & lt1 e IsLine2(Cer) = Falso entonces

Si no tenemos niños para comer, volveremos a Valoración

Search = -CurrentValue(Cer)' 'Devuelve una estimación.

Salir de la función

Finalizar si...

k = 0

Empieza a buscar en el tablero.

Para i = 1 a 8

Para j = 1 a 8

Si es la pieza de ajedrez del lado de Cer.

Si Int(Tablero de ajedrez(I,j)/100) = Cer entonces

para I 1 = 1 hasta el punto máximo descendente:x(I 1)= 0:x 1(I 1) = 0:siguiente ' ' x registra todos los movimientos y borra x.

Enumera todos los métodos.

Métodos básicos: superior izquierda, superior derecha, inferior izquierda, inferior derecha.

x(0) = i - 1: y(0) = j - 1

x(1)= I-1:y(1)= j+1

p>

x(2) = i + 1: y(2) = j - 1

x(3) = i + 1: y(3) = j + 1

Representantes de las piezas de ajedrez: Ajedrez blanco 101 (normal), 102 (ajedrez fuerte con fondo)

Ajedrez rojo 201 (normal), 202 (ajedrez fuerte con fondo)

Siguiente oración Explicación: Si es blanco (101, 102), no se permite la retirada (elimine x(2), x(3)).

Si Cer = 1 y tablero (I, j) Mod 100<>2 entonces x(2) = -2: x(3) = -2

Siguiente frase Explicación: Si es una pieza de ajedrez roja (201, 202), no se permite la retirada (eliminar x(0), x(1)).

Si Cer = 2 y tablero (I, j) Mod 100<>2 entonces x(0) = -2: x(1) = -2

' La fórmula Zi' es 1: es decir, si hay una pieza de ajedrez del oponente en la posición de la fórmula básica, puedes saltar para capturarla (la restricción de la fórmula: Cer es 1 o la pieza de ajedrez solo se puede mover para fortalecer el ajedrez ).

Si Int(Tablero de ajedrez(i - 1, j-1)/100) = siguiente Cer(Cer)And(Cer = 1 o Tablero de ajedrez(I, j) Mod 100 = 2) Entonces

X(4) = (i-1)-1 ' 'Coordenadas del objetivo.

y(4) = (j - 1) - 1

X1(4) = i-1 ' 'Coordenadas del estanque

y1(4) = j - 1

Si x(4)>0 e y(4)>0 y x(4)<9 e y(4)<9 y tablero de ajedrez(x(4), y( 4)) = 0 Entonces _

EAT = True: IsEat(4) = True ' 'Tienes algo para comer, así que debes dar este paso, otros métodos no son válidos.

Terminará si...

Método 2 de comerse el caminar de un niño

Si Int(Tablero de ajedrez(i - 1, j+1)/100 ) = siguiente Cer(Cer)Y(Cer = 1 o tablero de ajedrez (I, j) Mod 100 = 2) entonces

x(5) = (i - 1) - 1

y( 5) = (j + 1) + 1

x1(5) = i - 1

y1(5) = j + 1

Si x( 5)>0 y y(5)>0 y x(5)<9 e y(5)<9 y el tablero (x(5), y(5)) = 0 Entonces _

EAT = True: IsEat(5) = True ' 'Tienes algo para comer, debes dar este paso, otros métodos no son válidos.

Terminará si...

Comprueba, vamos, vamos 3

Si Int (tablero (i+1, j-1)/100) = siguiente Cer (Cer)Y(Cer = 2 o tablero de ajedrez (I, j) Mod 100 = 2) entonces

x(6) = (i + 1) + 1

y(6 ) = (j - 1) - 1

x1(6) = i + 1

y1(6) = j - 1

Si x(6 )>0 y y(6)>0 y x(6)<9 e y(6)<9 y tablero de ajedrez(x(6),y(6)) = 0 Entonces _

EAT = True: IsEat(6) = True ' 'Tienes algo para comer, así que debes dar este paso, otros métodos no son válidos.

Terminará si...

"Caminar como comer" 4

If Int(Tablero de ajedrez(i+1,j+1)/100) = siguiente Cer(Cer)Y(Cer = 2 o tablero (I, j) Mod 100 = 2) entonces

x(7) = (i + 1) + 1

y (7) = (j + 1) + 1

x1(7) = i + 1

y1(7) = j + 1

Si x (7)>0 y y(7)>0 y x(7)<9 e y(7)<9 y el tablero (x(7), y(7)) = 0 Entonces _

EAT = True: IsEat(7) = True ' 'Tienes algo para comer, debes dar este paso, otros métodos no son válidos.

Terminará si...

Si hay una manera de comerse al niño, elimine otros métodos si no se come al niño.

Si eat = True, entonces

Para a = 0 a 7

Si IsEat(a) = False, entonces x(a) = -1

Siguiente a

Terminará si...

Guardar en Sc (mover tabla)

Para a = 0 a 7

p>

Si x(a) = 5, y(a) = 2, entonces detente

Si cruzas el tablero, no puedes moverte.

Si x(a)>0 e y(a)>0 y x(a)<9 e y(a)<entonces 9

Si objetivo Si hay piezas de ajedrez, no puedes ir. Si es 0, guardar.

Si el tablero (x(a), y(a)) = 0 entonces

Guarda el movimiento en la "tabla de movimientos"

Sc(k ). Initx = i

Sc(k). Inidad = j

Sc(k). ObjX = x(a)

Sc(k). ObjY = y(a)

Sc(k).x1 = x1(a)' 'La posición comida

Sc(k).y1 = y1(a)

Si iseat (a) = verdadero, entonces sc (k).

Allow = true ' 'Permitir este movimiento si hay niños.

k = k + 1

Terminará si...

Terminará si...

Siguiente a

Si eat = true entonces I = 100: J = 100 ' 'Si hay niños, ya no hay necesidad de buscar.

Terminará si...

Siguiente j

Siguiente yo

MaxValue = -30000 ' 'Puntuación actual

tTemp = False

Busca para ver si hay movimientos permitidos, si no, permite todos los movimientos.

Para i = 0 a k - 1

Si Sc(i). Permitir = Verdadero Entonces tTemp = Verdadero

Siguiente yo

Si hay movimientos permitidos, todos los demás movimientos excepto el movimiento permitido no están permitidos.

Si tTemp = False, entonces

Para i = 0 a k - 1: Sc(i). Permitir = Verdadero: A continuación

Terminará si...

Intenta todos los medios posibles.

Para i = 0 a k - 1

Si Sc(i). Entonces Permitir = Verdadero

B1 =Tablero de ajedrez(SC (I)). initx, SC(I). inity)' 'Registra los segmentos inicial y final.

b2 =Tablero de ajedrez(Sc(i).ObjX,Sc(i).ObjY)

B =Tablero de ajedrez(SC(I).x1,SC(I).y 1 )''Registrar las piezas que han sido capturadas.

Chessboard(sc(一).initx,sc(I).inity) = 0 ' 'Borra la pieza inicial.

Tablero de ajedrez(sc(一).objx,sc(I).objy) = b1 ' 'Intenta jugar al ajedrez.

Chessboard(SC(一).x1,SC(I).y1) = 0 ' 'Limpiar las piezas de ajedrez en las posiciones capturadas.

Si llegas a la frontera, tu poder aumenta.

Siguiente oración: Si es negro (101, 102)

Si Cer = 1, entonces

Siguiente oración: Si vas a la primera línea, la pieza de ajedrez pasa a ser 102 y se aumenta la potencia.

Si Sc(i). ObjX = 1 entonces el tablero (Sc(i). ObjX, Sc(i). ObjY) = 102

Terminará si...

Siguiente oración: Si es rojo (201, 202)

Si Cer = 2, entonces

Siguiente oración: Si llega a la octava línea, la pieza de ajedrez se convierte en 202 y su fuerza aumenta.

Si Sc(i). ObjX = 8 entonces el tablero (Sc(i). ObjX, Sc(i). ObjY) = 202

Terminará si...

Si b & gt0 e IsLine (Cer, Sc(i)). ObjX,Sc(i). ObjY) = Verdadero, entonces COMER = Verdadero

Si puedes comer a los niños continuamente.

V = Valor actual (Cer) + 300 ''V es el valor de la situación actual más 300 puntos.

Otros

V = buscar (next cer (cer), pasos-1, falso, -up max) ''No hay comida continua para comer, continúa buscando.

Terminará si...

Restaurar el tablero de ajedrez

Tablero de ajedrez (pb (uno). x1, pb (I). y1) = b' 'Restaurar el tablero de ajedrez Niños comidos.

Chessboard(sc(I).initx,sc(I).inity) = b1 ' 'Registra los segmentos inicial y final.

Tablero de ajedrez (Sc(i). ObjX, Sc(i).

ObjY) = b2

Muestra la puntuación de cada caminata.

Si esTop, entonces

Lista 1. Agregue "de" y Str(Sc(i)). Initx) y amp"," & ampStr(Sc(i)). inidad)& _

"to"&Str(Sc(i)). ObjX)&","&Str(Sc(i)). ObjY) & "Score:" & Str(v)

Terminará si...

Si esta acción obtiene un puntaje alto, regístralo.

Si IsTop y (v & gtMaxValue o MaxValue = -30000) entonces

Mejor posicionamiento. Initx = Sc(i). Initx

Mejor posicionamiento. Inidad = Sc(i). Ilimitado

Mejor posicionamiento. ObjX = Sc(i). ObjX

Mejor posicionamiento. ObjY = Sc(i). ObjY

mejorlocalización . x 1 = Sc(I x 1

mejorlocalización . /p>

Terminará si...

Si v & gtMaxValue Entonces MaxValue = v

Siguiente oración: Si valor máximo> = -UpMax //α-β Poda, se cortarán aquellas que cumplan las condiciones de poda. UpMax es el valor máximo de la capa superior.

Si IsTop = False y MaxValue & gt= -UpMax Entonces i = 100 ' 'Programa de poda

Terminará si...

Siguiente yo

p>

Si IsTop = False, entonces Search = -MaxValue, de lo contrario Search = MaxValue

Fin de función

Private Sub cbText_Click (el índice es un número entero )

Dim I asinteger, J asinteger, C asinteger'' c registra niños comiendo.

Dim Temp es una cadena, Temp2 es una cadena, Temp3 es una cadena

Dim x es un byte, y es un byte, x2 es un byte, y2 es un byte

Si cbText(índice). BackColor & lt& gt& ampHC0E0FF luego llama a MsgBox("¡El ajedrez no es válido!", vbOKOnly+32, "Pregunta: "): Salga de Sub

Si cSel = 0 y Trim(cbText(Index)). Texto)>" "Entonces csel = index: cbtext (csel). forecolor = QB color(12):exit sub ' 'Si todos los jugadores de ajedrez no son los primeros y hay una pieza de ajedrez en la posición actual del tablero, significa que el jugador de ajedrez ha seleccionado esta pieza de ajedrez.

Si cSel & lt& gt0 y Val(cbText(Index)). Texto) = Val(cbText(cSel). Texto) luego cbText(cSel). ForeColor = H80000008 & amp:cSel = 0: Salir Sub 'Si el jugador selecciona la misma pieza dos veces, cancele la selección.

Si cSel & lt& gt entonces 0

Juega al ajedrez.

cbText(índice). Texto = cbText(cSel). Texto

Determina si se puede convertir en una pieza de ajedrez mejorada.

k = Val(cbText(Índice)).

Text)

Si Int(k/100) = 1 e Index & lt8 entonces CB text (índice). text = "102 " 'Si 1 llega a la cima, se convierte en un movimiento de refuerzo.

Si Int(k/100) = 2 e Index & gt55 entonces cbText(index). Text = "202 " 'Si dos jugadores llegan a la cima, se convierte en un juego mejorado.

cbText(cSel). texto = " "

cbText(cSel). ForeColor = H80000008 & amp

Para determinar si hay niños comiendo.

Inclinación hacia la parte superior izquierda.

Si Índice - cSel = -18, entonces

CbText(índice +9). Texto = " ":' 'Comer.

C = exponente + 9

Terminará si...

Inclinación hacia la parte superior derecha.

Si Índice - cSel = -14, entonces

CbText(índice +7). Texto = " ":' 'Comer.

C = exponente + 7

Terminará si...

Inclinación hacia abajo a la izquierda.

Si Índice - cSel = 14, entonces

CbText(index-7). Texto = " ":' 'Comer.

C = Índice - 7

Terminará si...

Diagonalmente hacia abajo a la derecha.

Si Índice - cSel = 18, entonces

CbText(index-9). Texto = " ":' 'Comer.

C = index - 9

Terminará si...

'Método de almacenamiento'

k = 0: Temp = " " : Temp2 = "": Temp = " " "

Para i = 1 a 8

Para j = 1 a 8

Si k = cSel, entonces Temp = " from " & Str(i) +", "+ Str(j)

Si k = Índice entonces Temp2 = "to"+str (i)+", "+str (j ): x = i: y = j

Si k = C, entonces Temp3 = "pool" & Str(i)&"," & ampStr(j): x2 = i: y2 = j.

k = k + 1

Siguiente j

Siguiente yo

Agregar elemento "Primero" & ;Paso actual "mano" & Str (CurrentPlayer)+"cuadrado"+Temp+Temp2+Temp3.

Paso actual = paso actual + 1

SMS 3. Temperatura 2

cSel = 0

Volver a mostrar la llamada

Siguiente oración: si es el modo hombre-máquina, el jugador no tiene nada para comer

si el modo hombre-máquina = verdadero y (. es línea (jugador actual, x, y) = verdadero y x2 > 1 e y2 y gt2) = falso entonces

Si el modo hombre-máquina = verdadero, entonces

Mira cuál lado de la pieza de ajedrez que movió el jugador, y luego cuente el otro lado de la pieza de ajedrez

Jugador actual = NextCer(Int(Val(CB text(Index)).Text) / 100))<. /p>

Llame a Command2_Click ' 'Si está en modo hombre-máquina, deje que la computadora funcione durante un tiempo prolongado

Terminará si...

Lo hará end if...

Finalizar conector

Subcomando privado 1_Click()

Lista 2. Borrar '' Borrar el registro del juego.

CurrentStep = 1

Inicialización de llamada

Visualización de llamada

Conector final

Subcomando privado 2_Click()

Marcar t como valor booleano

Comando 2. enable=false

t:

Texto1. Texto = Str(Search(CurrentPlayer, Val(Text2. Text), True, 0))

Comando 2. Habilitar = Verdadero

Usar BestLocate

t = Undercut(.Initx, .Inity, .ObjX, .ObjY, .x1, ..y1)

Llamar Mostrar

Si t = true y es la línea (jugador actual, . objx, . objy) entonces llama a msgbox ("Quiero tomar otro"): Ir a t 'Si aún puedes conseguir ajedrez (continuo) tomar) ), calcular de nuevo.

Termina con...

jugador actual = siguiente cer(jugador actual)

Finalizar conjunto

Rem juega al ajedrez.

Rem Sx, Sy: iniciar el movimiento Ex, Ey: finalizar el movimiento Ax, Ay: ser capturado.

Si hay hijos, Rem devuelve True.

Función privada DownChess(Sx como byte, Sy como byte, ex como byte, ey ​​como byte, Ax como byte, Ay como byte) como booleano

Tablero de ajedrez(ex, ey) = Tablero de ajedrez(Sx, Sy)

Tablero de ajedrez(Sx, Sy) = 0

Tablero de ajedrez(Ax, Ay) = 0 ' 'Elimina al niño comido.

Si Ax & lt& gt0 y Ay & lt& gt0 entonces DownChess = True, en caso contrario DownChess = False

SMS 3. text = " no . " & Paso actual "mano" & Str(CurrentPlayer)+"Fang Cong" & Str(Sx)+", "+Str(Sy)+" a "+str (ex)+", "+ Str(ey)&_

"Cómete al niño"&Str(Ax)&","&Str(Ay)

Paso actual = paso actual + 1

Lista 2. Agregar texto de elemento 3. Texto

Siguiente frase: Si es negro (101, 102)

Si Int (tablero de ajedrez (ex, ey) / 100) = 1 entonces

Siguiente Una frase: si vas a la primera línea, las piezas de ajedrez serán 102 y su poder aumentará.

Si ex = 1, entonces el tablero de ajedrez (ex, ey) = 102

Terminará si...

Siguiente frase: Si es rojo (201, 202 )

Si Int(tablero de ajedrez(ex,ey)/100) = 2 entonces

Siguiente oración: Si llega a la octava línea, la pieza de ajedrez se convierte en 202 y su fuerza aumenta.

Si ex = 8, entonces tablero (ex, ey) = 202

Terminará si...

Finalizar función

Rem Acción No. 1

Subcomando privado 3_Click()

CurrentPlayer = 1

Llamar al comando 2_Click

Finalizar conector

Operación remota 2

Subcomando privado 4_Click()

CurrentPlayer = 2

Llamar comando 2_Click

Finalizar conector

Subcomando privado 5_Click()

Revisualización de llamada

Conector final

Subcomando privado 6_Click()

If If humano -modo máquina=false, entonces modo hombre-máquina=true, de lo contrario modo hombre-máquina=false

Si modo hombre-máquina=false, entonces comando 6. Caption = "Modo humano-computadora": Comando6. ToolTipText = "Modo actual: todos están peleando" De lo contrario Comando 6. Título = "Modo de descanso": Comando6. ToolTipText = "Modo actual: Batalla hombre-máquina"

Finalizar conector

Subcomando privado 7_Click()

Finalizar

Finalizar conector

Espectro almacenado REM

Subcomando privado 8_Click()

Ir a e en caso de error

Anotar I como un número entero

p >

Abra InputBox("Ingrese el nombre del archivo:") como salida n.° 1.

Para i = 0 en Lista2. Recuento de listas: 1

Imprimir número 1, lista 2. Lista (1)

Siguiente I

Cerrar #1

Conector de salida

e:

Llamar a MsgBox ("¡Error de almacenamiento!", vbOKOnly+32, "Pregunta:")

Uh. borrar

Conector de salida

Conector final

Privado subform_Load()

Modo Humano=False

cSel = 0

CurrentPlayer = 1

Llamar comando 1_Click

Conector final

Código del módulo:

Tipo CHESSER

Ubicar como byte '' por qué posicionar, en BestLocate, por qué indica una matriz.

La posición inicial de Initx es el byte ""

Inicializado en byte

La posición de ObjX después de la operación es Byte ''.

Objeto como byte

x1 como byte

y1 como byte

¿Se permite utilizarlo como valor booleano ""?

Tipo de fin