Red de conocimiento de recetas - Industria de la restauración - Juego de plato de frutas

Juego de plato de frutas

El formulario debe tener los siguientes controles:

Matriz de imágenes táctiles (agréguela usted mismo): imagen1(0)-image1(9)

Imagen actual: imagen2(0) (= image1(0))

Puerta de enlace actual: lblLevel (label)

Además, el control de etiquetas también incluye: lblLink, lblMsg, lblNextScore, lblNowScore, lblScore.

Copie el siguiente código en el formulario.

Opción explícita

Atenuar filas como números enteros

Mostrar columnas como números enteros

Nivel de atenuación largo

Atenuar fracciones tienen la misma longitud

Imágenes borrosas que imágenes

Dim pic() es el número de serie correspondiente a la imagen Larga.

Dim sel() Como booleano 'Estado de selección de imagen

Después de seleccionar la imagen, el número de serie correspondiente se oscurece.

Altura oscura() siempre que

estado de selección actual "Seleccionar como booleano".

Dim Color tiene la misma longitud

Dim CountLink tiene la misma longitud

Private Subform_Load()

Número de filas = 10 ' Número total de filas

Cols = 10 'Número total de columnas

Drawboximage2, 4, 92, filas, columnas dibujando matriz de control.

Finalizar conector

Iniciar juego

Subimagen privada 3_Click()

Retiro automático = 0

Figura 3. visible = False

Inicializar

Finalizar conector

Inicializa un objeto organizado aleatoriamente.

Subinitialize()

Nivel = 0

Puntuación = 0

lblNowScore = Puntuación

Nueva vida

Conector final

Formulario de planificación, matriz de objetos de arriba a abajo, de izquierda a derecha.

Llamada de parámetro: ImageBox-matriz de control de imagen (se debe definir la imagen (0), Mleft-coordenada del punto de inicio x; Mtop-coordenada del punto de inicio y;

Mrows-número total de bancos; Mcols-Número total de columnas

Caja de dibujo secundaria (ImageBox como objeto, Mleft como entero, Mtop como entero, Mrows como entero, Mcols como entero)

-Matriz de inicialización

p>

ReDim pic(Mrows * Mcols - 1)

ReDim sel(Mrows * Mcols - 1)

ReDim alto(Mcols - 1)

-dibujar matriz de control

Atenuarme siempre

Para i = ImageBox UBound to 1 Paso-1

Desinstalar ImageBox (I)

Entonces

Para i = 1 a Mrows * Mcols - 1

Cargar ImageBox(I)

ImageBox(I) izquierda = m izquierda (I \ Mrows )* ImageBox(0). Ancho

ImageBox(1).top = Mtop (I Mod Mrows)* Alto

Luego

Mostrar. ayuda

Finalizar conector

Mostrar ayuda

Sub showhelp()

Crear información.

LblMsg = "Breve descripción de"; vbNewLine ampvbNewLine _

ampvbNewLine ampvbNewLine amp"●Haga clic en cualquier objeto con el mouse para seleccionar automáticamente el mismo objeto de conexión. Haga clic nuevamente en el objeto seleccionado para Elimínalo _

ampvbNewLine ampvbNewLine amp“●Reúne más objetos y consigue más puntos después de eliminarlos de una vez. "_

ampvbNewLine ampvbNewLine amp"Cuando se eliminen, los objetos de arriba se moverán hacia abajo para llenar los espacios."_

ampvbNewLine ampvbNewLine amp●Cuando todas las líneas estén vacías, los objetos en el derecha El conjunto se mueve hacia la izquierda para llenarlos_

ampvbNewLine ampvbNewLine amp“●Cuando los objetos ya no estén conectados, los puntos de bonificación se considerarán en función de la cantidad restante. Cuanto menos te quede, más puntos obtendrás. ”_

ampvbNewLine ampvbNewLine ampSi la puntuación actual no es inferior a la puntuación de autorización, el juego continuará en el siguiente nivel

Finalizar unión

Ingrese el nuevo costumbres.

p>

Sub NewLever()

Atenuarme mientras

lblMsg Visible=False

Level=Nivel 1

Hacer irregular

Para i = 0 a UBound

pic(i) = Int(Rnd * 5)

Imagen2(i) = Imagen 1 (Imagen (I))

Imagen 2 (I) = Visible

Entonces

col = Cols - 1

Para i = 0 a Cols - 1

Alto(i) = Número de filas - 1

Entonces

CountLink = 0

LBL nivel = " nivel " ; vbCrLf & nivel

LblNowScore = "Puntuación actual: " Formato (puntuación, "@@@@@@")

LblNextScore = "Pasar" puntuación: "; formato(nivel*(nivel4)*500,"@@@@@@")

seleccionado=falso

conector final

Seleccionar objetos y manejarlos en consecuencia

Private subimage2_Click(index as integer)

Si pic(index) =-1 entonces salga de sub 'Si hizo clic en espacios ya eliminados, no será eliminado. procesado y salir de

ReDim NowLink(0)

CountLink = 0

Índice de enlaces

Definir = verdadero

.

Si sel(Índice), eliminar, de lo contrario restablecer el índice

Conector final

Eliminar objeto

Subeliminar ()

Dim j As Long

Atenuar k As Long

Atenuar k As Long

Si CountLink = 1, entonces Salir Sub 'Si solo se selecciona un elemento , entonces no es válido y sale sin realizar ningún procesamiento

For i = 0 to UBound(NowLink)

Sel(NowLink(i). )) = False 'Borrar la marca de verificación

Pic(NowLink(i)) = -1 'Establece el número de serie correspondiente a la imagen en Ninguno.

Entonces

Para i = 0 en col 'Después de borrar la imagen, la imagen de arriba está al revés.

Para j = (número de filas - 1) - altura (I) a (número de filas - 1)

Si pic(i * Filas j) = -1, entonces

p>

Para k = j hasta fila alta(I) paso-1

pic(i *fila k) = pic(i *fila k - 1)

Entonces

pic(I * Filas (Filas-1)-Alto(I))=-1

Alto(i) = Alto(i) - 1

Terminará si...

Entonces

Entonces

Para i = col A 0 Paso -1 'Después de que la imagen sea Cuando se borra, la imagen de la derecha se mueve hacia la izquierda.

Si alto(i) = -1, entonces

Para j = i a col - 1

Para k = 0 a (fila - 1)

pic(j *fila k) = pic(j *fila k fila)

Entonces

alto(j) = alto(j 1)

Entonces

for j = col * Filas a col * Filas (Filas-1)

pic(j) = -1

Entonces

col = col - 1

Terminará si...

Entonces

Para i = 0 a (Filas * Cols- 1) 'Actualiza la imagen ajustada.

Si pic(i) = -1, entonces

Imagen2(i) = picNada

Otro

Imagen2(i) = Imagen1(Imagen(I))

Terminará si...

Entonces

Puntuación = Enlace de recuento de puntuación * (Enlace de recuento 2) * 5

LblNowScore = "Puntuación actual:" ; formato(puntuación, "@@@@@@")

Selected=False

LblLink = "Enlace: "

LblScore = "Puntuación:"

isLink

Conector final

Volver a seleccionar objeto

Sub-reinicio ( Indexado como número entero)

Atenúeme siempre

For i = 0 to UBound(NowLink)

sel(NowLink(i)) = False

imagen2(ahora enlace(I))= imagen 1(imagen(ahora enlace(I)))

Entonces

ReDim NowLink(0)

CountLink = 0

Índice de enlace

Conector final

Marca los objetos conectados.

Subenlace (el índice es un número entero)

imagen2(index)= imagen 1(PIC(index) 5)'El fondo de la imagen actual es gris.

sel(Index) = True

NowLink(UBound(NowLink)) = Index

CountLink = CountLink 1

Si Index \ Las filas gt "0 Then" comienzan desde la segunda columna.

Si pic (index-rows) = pic (index) pero no sel (index-rows), entonces 'es el mismo que el patrón adyacente a la izquierda y no está seleccionado.

ReDim Conservar ahora enlace(UBound(now link) 1)

La línea de índice del enlace

Terminará si...

Si...terminará

Si Index \ Rows lt(COLS-1) desde la columna 1 hasta la penúltima columna.

Si pic (filas de índice) = pic (índice) pero no sel (filas de índice), entonces 'es el mismo que el patrón adyacente a la derecha y no está seleccionado.

ReDim Conservar ahora enlace(UBound(ahora enlace) 1)

Línea de índice del enlace

Terminará si...

Si ... terminará

Si Index Mod Rows gt "0 Then" comienza desde la fila 2

Si pic (index-1) = pic (index) y no sel (index- 1 ) entonces 'es el mismo que el modo adyacente anterior y no está seleccionado.

ReDim Conservar ahora enlace(UBound(ahora enlace) 1)

Índice de enlace - 1

Terminará si...

Si...terminará

Si el módulo de índice, el número de filas lt(filas-1) es desde la fila 1 hasta la penúltima fila.

Si pic (índice 1) = pic (índice) pero no sel (índice 1), entonces 'es el mismo que el modo adyacente a continuación, sin selección.

ReDim Conservar ahora enlace(UBound(ahora enlace) 1)

Índice de enlace 1

Terminará si...

Si... Terminará

LBL link = "Connection:"; format(CountLink, "@@@@")

LblScore = "Score:"; link *(count link 2)* 5-IIf(count link gt; 1, 0, Cols), " @@@@ ")

Conector final

¿Hay algún enlace relacionado? ¿objeto?

Sublink()

Dim j As Long

Dim j As Long

El bono de atenuación es tan largo

Etiquete y como único

Para i = 0 a col

Para j = (número de filas - 1) - alto (I) a (número de filas - 2)

Si pic(I * Rows j) = pic(I * Rows j 1), entonces salga de Sub

Luego

Luego

Para i = 1 a la columna paso 2

Para j = (Número de filas - 1) - alto (I) a (Número de filas - 1)

Si pic(I * Filas j) = pic(I * Filas j-Filas), luego salga de Sub

Si pic(I * Filas j) = pic(I * Filas j Filas), luego salga de Sub

Entonces

Entonces

j = 0

Para i = 0 a col

j = j alto(i) 1

Entonces

bonus = IIf(j lt; 25, (25 - j) * (25 - j) * 25, 0)

LblMsg = "Cantidad restante :"; Format(j,"@@@"&"Puntos de bonificación:";Format(Bonus,"@@@"&"Puntos"

LblMsg.' Establecer tamaño de fuente.

lblMsg. Left = (ScaleWidth - lblMsg. Ancho) / 2

lblMsg. BackStyle = 1

lblMsg.

puntuación = bonificación de puntuación

LblNowScore = "Puntuación actual:" puntuación

ys = temporizador

en Timer-ys <2

Actividades múltiples

Ring

Si scoreltLevel*(Nivel 4)*500 entonces

LblMsg = "El juego falló, inténtalo de nuevo".

lblMsg.Left = (ScaleWidth) - lblMsg.Width)/2

ys=Timer

in Timer-ys lt;2

Múltiples actividades

Ring

Inicialización

Otros

LblMsg = "¡Felicitaciones por ingresar al siguiente nivel!"

lblMsg. Izquierda = (Ancho de escala - lblMsg.

ancho)/2

ys = temporizador

En Timer-ys <2

Múltiples actividades

anillo

Nueva vida

Terminará si...

Finalizar el ajuste