Fuente remota
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 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, 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 de ajedrez (I, j) = 0, entonces
cbText(k). text = " "
Otro
cbText(k). Texto = tablero de ajedrez (I, j)
Terminará si...
k = k 1
Siguiente j
Siguiente Yo
Llamo juicio de victoria o derrota
Fin 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 que tiene un jugador.
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, "Pregunta: "): Salir Sub
Si b = 0 entonces llama 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
Valor actual = 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 de ajedrez (I, J) mod 100 * 100 100 '' 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 puntos.
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 de 'capturar 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 el tablero (x, y) = 0 entonces es línea = True 'Si hay algo para comer, devuelve verdadero.
Terminará si...
Método 2 de comerse el caminar de un niño
If Int(Chessboard(i - 1, j 1)/100) = siguiente Cer (Cer)Y(Cer = 1 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 e y lt9 y el tablero ( x, y) = 0 entonces es line = True 'Si hay algo para comer, devuelve True.
Terminará si...
Comprueba, vamos, vamos 3
Si Int(tablero de ajedrez(i 1, j-1)/100) = siguiente Cer( Cer)Y(Cer = 2 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 e y lt9 y el tablero de ajedrez (x, y) = 0 entonces es line = True 'Si hay algo para comer, devuelve True.
Terminará si...
"Caminar como comer" 4
Si Int(Tablero de ajedrez(i 1, j 1)/100) = siguiente Cer (Cer)Y(Cer = 2 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 e y lt9 y tablero de ajedrez (x, y) = 0 entonces is 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 de 'capturar 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 = true 'si hay una toma , devuelve verdadero.
Terminará si...
Método 2 de comerse el caminar de un niño
If Int(Chessboard(i - 1, j 1)/100) = siguiente Cer (Cer)Y(Cer = 1 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 e y lt9 y el tablero ( x, y) = 0 entonces línea 2 = verdadero 'Si hay algo para comer, devuelve verdadero.
Terminará si...
Comprueba, vamos, vamos 3
Si Int(tablero de ajedrez(i 1, j-1)/100) = siguiente Cer( Cer)Y(Cer = 2 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 e y lt9 y el tablero de ajedrez (x, y) = 0 entonces línea 2 = verdadero 'Si hay algo para comer, devuelve verdadero.
Terminará si...
"Caminar como comer" 4
Si Int(Tablero de ajedrez(i 1, j 1)/100) = siguiente Cer (Cer)Y(Cer = 2 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 e y lt9 y tablero de ajedrez (x, y) = 0 entonces Es la 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 = Falso: SiguienteI' 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 el paso lt1 e IsLine2(Cer) = False entonces
Si no tenemos niños para comer, volverá al valor estimado
Search = -CurrentValue(Cer)' 'Devuelve un valor estimado.
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: el 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
x(2) = i 1: y(2) = j - 1
x(3) = i 1: y(3) = j 1
Ajedrez pieza Representativa: Ajedrez blanco 101 (normal), 102 (ajedrez fuerte con fondo)
Ajedrez rojo 201 (normal), 202 (ajedrez fuerte con fondo)
Explicación de la siguiente frase : Si es blanco (101, 102), no se permite la retirada (eliminar x(2), x(3)).
Si Cer = 1 y el tablero (I, j) Mod 100 lt2 entonces x(2) = -2: x(3) = -2
Explicación de la siguiente frase: Si es una pieza de ajedrez roja (201, 202), no se permite la retirada (elimine x(0), x(1)).
Si Cer = 2 y el tablero (I, j) Mod 100 lt gt2 entonces x(0) = -2: x(1) = -2
'Come el pieza' La fórmula 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 y y(4)>0 y x(4) lt; y(4) lt; ( 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
If Int(Chessboard(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)lt;9 y y(5)lt;9 y board(x(5),y(5)) = 0 Entonces _
COMER = Verdadero : IsEat(5) = Verdadero ' 'Tienes algo para comer, así que debes dar este paso, otros métodos no son válidos.
Terminará si...
Comprueba, vamos, vamos 3
Si Int(tablero de ajedrez(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)lt;9 y y(6)lt;9 y board(x(6),y(6)) = 0 Entonces _
COMER = 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
Si Int(Tablero de ajedrez(i 1, j 1)/100) = siguiente Cer (Cer)Y(Cer = 2 o tablero de ajedrez (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 e y ( 7)>0 y x(7) lt; 9 y y(7) lt; y board(x(7), y(7)) = 0 Entonces _
COMER = Verdadero: IsEat ( 7) = Verdadero ' 'Tienes algo para comer, así que 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 y y(a)>0 y x(a) lt; 9 y y(a) lt entonces 9
Si el objetivo tiene un pieza, 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 p>
Si eat = true entonces I = 100: J = 100 ' 'Si hay niños, ya no es necesario 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...
No dejes ninguna piedra sin remover.
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 paseo.
Si esTop, entonces
Lista 1. Agregue "de"; Str(Sc(i)). Initx) y amp"," ampStr(Sc(i)). inicio) & _
"a"; Str(Sc(i)). ObjX) amp;"," ampStr(Sc(i)). ObjY) amp; "Score:" ; Str(v)
Terminará si...
Si esta acción obtiene una puntuación alta, regístrela.
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: If max> = -UpMax //α-β shear Branches que cumplan las condiciones de poda serán podados. 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: Exit Sub 'Si el jugador selecciona la misma pieza dos veces, anule su 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 y 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 y 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 = índice 9
Terminará si...
Inclinación hacia la parte superior derecha.
Si Índice - cSel = -14, entonces
CbText(índice 7). Texto = " ":' 'Comer.
C = índice 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" y amp"," ampStr(j): x2 = i: y2 = j
k = k 1
Siguiente j
Siguiente yo
Lista 2. AddItem "Primero"; Paso actual "Mano" Str(CurrentPlayer) "Fang " Temp Temp2 Temp3.
Paso actual = paso actual 1
SMS 3. Temperatura 2
cSel = 0
Llamada para volver a mostrar
Siguiente frase: 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 y y2 gt2) = falso entonces
Si el modo hombre-máquina = verdadero, entonces
Mira qué lado de la pieza de ajedrez tiene el jugador. movido y luego calcula el otro lado de la pieza de ajedrez. Un lado
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 mucho tiempoFinalizar si...
Finalizar si...
Finalizar conector
Subcomando privado 1_Click()
Lista 2. Borrar '' Borrar el registro del juego
CurrentStep = 1
Llamar inicialización
Visualización de llamadas
Conector final
Subcomando privado 2_Click()
Marcar t como booleano
Comando 2 enable=false
t:
Text1. >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: Comienza el movimiento Ex, Ey: Finaliza 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 "hand" Str(CurrentPlayer) "Fang Cong"; Str(Sx) ", " Str(Sy) " a " str (ex) ", " Str(ey); p>
"se comió al niño"; Str(Ax) y amp"," ampStr(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 pasas 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