Código fuente del sistema de estimación
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>
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) p>
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 _ p>
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 p >
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