Red de conocimiento informático - Conocimiento sistemático - Fuente remota

Fuente remota

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 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

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

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 tiempo

Finalizar 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

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