Red de conocimiento informático - Material del sitio web - Escribir un programa protector de pantalla de lluvia digital en un lenguaje sencillo. ¿Alguien puede darme algunas ideas?

Escribir un programa protector de pantalla de lluvia digital en un lenguaje sencillo. ¿Alguien puede darme algunas ideas?

Preparación: una ventana (ventana _startup), un tablero de dibujo (tablero de dibujo 1), un reloj (reloj 1)

Las visualizaciones de la ventana _startup y del tablero de dibujo 1 son ambas falsas , y la visualización del reloj 1 El período de tiempo es 0, y el que siempre está al frente en la ventana _startup es verdadero.

Vaya al ensamblado de la ventana correspondiente a la ventana _startup y copie el siguiente código. .¿Versión? 2

. ¿Biblioteca de soporte? OPenGL

. ¿Biblioteca de soporte? EHilo

. Biblioteca de especificaciones de soporte

Biblioteca de soporte ?iext

. Ensamblaje de Windows 1, ?, ?, ? matriz

. Variable de ensamblaje ?t, ? tipo entero

Variable de configuración del programa x, tipo entero. El programa establece la variable y, número entero

. Variable ensambladora z, tipo entero

. Variables de ensamblaje ?altura-pantalla, entero,?,?,?altura-pantalla

. Variables de ensamblaje ?ancho de pantalla, número entero? Ancho de pantalla. Subrutina ?Iniciar ventana_Altura de pantalla creada (altura de pantalla) = ?Obtener altura de pantalla? ()

¿Ancho de pantalla? ¿Obtener el ancho de pantalla? ()

Panel 1. ¿Color de fondo del panel? #negro

_Ventana de inicio. Mover(0,?0,?Ancho de pantalla,?Alto de pantalla)

Panel 1. ¿Mover? (0,?0,?Ancho de pantalla,?Alto de pantalla)

t? /p>

z?=?Alto de la pantalla?÷20)

Mostrar cursor (falso)

_Iniciar ventana. ¿visible? Verdadero

Panel 1.Verdadero

_Iniciar ventana. ¿Ajustar jerarquía? (1)

Definir?()

Panel 1.()

Reloj 1. El intervalo de tiempo para generar cada columna (ms)

¿Iniciar hilo? (amp; salida de lluvia digital,?,?)

¿Retraso? (400)

¿Iniciar hilo? (amp; salida de lluvia digital,?,?)

¿Retraso? (300)

¿Iniciar hilo? (¿y salida de lluvia digital,?,?)

¿Retraso? (200)

¿Iniciar hilo?( (amp; salida de lluvia digital, ?,?)

Retraso? (200)

¿Iniciar hilo? (amp; salida de lluvia digital, ?,?)

¿Retraso? (200)

¿Iniciar hilo? (y salida de lluvia digital, ?, ?)

¿Retraso? (200)

Reloj 2.( )

.Subroutine_Panel1_mouse_position_moved,?Tipo lógico

. Parámetros?posición horizontal,?entero

. ¿Parámetros? Posición vertical, tipo entero

. ¿parámetro? Estado de la tecla de función, tipo entero.

si es cierto? (Valor absoluto (¿posición horizontal?)> ¿O tomar el valor absoluto de la posición vertical?>?50)

Definir?()

t=t 1

. si es cierto?(t? > ?3) ?' ?no sucederá más de tres veces

end ? ()

.if end. Terminar si es verdadero

. ¿Subrutina?_Panel1_Presionar una tecla,?Tipo lógico

. ¿parámetro? Código clave, número entero

. ¿parámetro? Estado de la tecla de función, ? Fin entero?()

Definición de subrutina x?=? ¿Obtener la posición vertical del mouse? Subrutina de salida digital de lluvia,?,?,?Salida digital de lluvia

. Variables locales ?E, ? entero, ?, ?, ?posición vertical

. Variables locales ?F, ? Entero, ?, ?, ? Posición horizontal, punto de partida

. Las variables locales ?G, ? Entero, ?, ?, ? muestran la longitud en bits

. ¿Variable local?H,?entero,?,?,tasa de disminución

.Variable local?I,?entero,?,?,número de movimientos

.Variable local?J, ? entero, ?, ? , ? verde y blanco

Variable local ?CHR, ?tipo de texto, ? "1000" como semilla de número aleatorio ()

=?Obtener un número aleatorio? (1,?5)

. Si (J? =?1? o ?J? =?3? o ?J? =?5)

¿Colocar semilla de número aleatorio?()

E?Obtener número aleatorio (0, ancho de pantalla)

Colocar semilla de número aleatorio ()

F?=?Obtener número aleatorio (0,?a entero?(alto de pantalla×x?0.75))

Colocar una semilla de número aleatorio ()

G?=?Obtener un número aleatorio (z×0.2, z×0.65)

Colocar una semilla de número aleatorio ( )

p>

H=?Tomar un número aleatorio? (10,?600)

. Determine el primer ?(verdadero) del bucle

'?Mesa de trabajo 1. Fuente. Nombre de fuente = ?"Bold"

'?Palette1.Font.Tamaño de fuente=?16

CHR[I] [1]?GetCharacter()

Panel1.Color del texto? =?#Verde

Panel1.localizar escritura?(E,?F? ?I?×?20,?CHR?[I? ?1])

.¿Si es cierto?(I?≠?0)

Panel 1.# Verde oscuro

Panel 1. Encuentra y escribe ?(e,?f? ? ( i?- ?1)?×?20,?CHR?[I])

Si es verdadero, final

. si es cierto? (I?>?G? ?1)

Panel 1. Color del texto =? ¿Obtener valor de color? (0, ? 40, ? 0)

Panel 1. ¿Buscar y escribir? Ingrese?(e,?f? (i?-?g?-?1)?×?20,?CHR?[I?-?G])

Panel 1. Color del texto =? Negro

Panel 1. Encuentra y escribe ?(E,?F? ? (I?-?G?-?2)?×?20,?CHR?[I?-?G? -? 1])

.

Si es verdadero final

I?1

.Si es verdadero (F? ?I?×?20?>?altura de la pantalla)

Salir del ¿bucle? ()

. Finalizar si es verdadero

¿Retraso? (H)??Evitar sobrecarga de CPU

. si es cierto? (I? > ?1000)

Fin?()

Si es verdadero, termina. ¿Estás seguro de que el ciclo ha terminado? ()

¿Determinar el punto inicial del bucle? (verdadero)

.¿Si es cierto? (I?>?G? ?1)

Panel 1. Color del texto = ?Obtener valor de color? (0, ?40, ?0)

Panel 1. Buscar y escribir Ingrese?(e,?f? (i?-?g?-?1)?×?20,?CHR?[I?-?G])

Panel 1. Color del texto =? Negro

Panel 1. Encuentra y escribe ?(E,?F? ? (I?-?G?-?2)?×?20,?CHR?[I?-?G? -? 1])

. Si es verdadero final

I?1

.Si es verdadero (F? ?I?×?20?-? (G? ?2)?×alto de pantalla)

¿Salir del circuito? ()

. Si es verdadero,

¿Retraso? (H)??Evitar sobrecarga de CPU

. ¿Si es verdadero?(I > ?1000)

¿Fin?()

Si es verdadero, finalice. ¿Estás seguro de que el ciclo ha terminado? ()

. De lo contrario, use un número aleatorio como semilla()

E?=?Tome un número aleatorio (0, ancho de pantalla)

Coloque un número aleatorio seed()

F ?=?Obtener un número aleatorio (0,?a un número entero?(alto de la pantalla × x?0.75))

Colocar una semilla de número aleatorio ()

G?=?Obtener un número aleatorio ( z×0.2, z×0.65)

Colocar una semilla de número aleatorio ()

H=?Obtener un número aleatorio (10,?600)

. Determine el primer ?(verdadero) del bucle

'?Mesa de trabajo 1. Fuente. Nombre de fuente = ?"Bold"

'?Palette1.Font.Tamaño de fuente=?16

CHR[I] [1]?GetCharacter()

Panel1.Color del texto? =?#Blanco

Panel 1. ¿Dónde escribir? (E,?F?I?×?20,?CHR?[I??1])

. Si es verdadero ?(I?≠?0)

Panel 1.# gris claro

Panel 1. Encuentra y escribe ?(e, ?f? ? (i?-? 1 )?×?20,?CHR?[I])

Si es verdadero, final

. si es cierto? (I?>?G? ?1)

Panel 1.# Gris

Panel 1. Encuentra y escribe ?(E,?F? ? (I?-?G ? -?1)?×?20,?CHR?[I?-?G])

Panel 1. ¿Color del texto?#Negro

Panel 1. ¿Buscar y escribir?( E,?F? (I?-?G?-?2)?×?20,?CHR?[I?-?G?-?1])

. Si es verdadero final

I?1

.Si es verdadero (F? ?I?×?20?>?altura de la pantalla)

Salir del ¿bucle? ()

.

Finalizar si es verdadero

¿Retraso? (H)??Evitar sobrecarga de CPU

. si es cierto? (I? > ?1000)

Fin?()

Si es verdadero, termina. ¿Estás seguro de que el ciclo ha terminado? ()

¿Determinar el punto inicial del bucle? (verdadero)

.¿Si es cierto? (I?>?G? ?1)

Panel 1. Color del texto = ?# Gris

Panel 1. Encuentra y escribe ?(E, ?F? ? (I ? -?G?-?1)?×?20,?CHR?[I?-?G])

Panel 1.Color del texto?#Negro

Panel 1. Buscar y escribe ?(E, ?F? ? (I?-?G?-?2)?×?20, ?CHR?[I?-?G?-?1])

. Si es verdadero final

I?1

.Si es verdadero (F? ?I?×?20?-? (G? ?2)?×alto de pantalla)

¿Salir del circuito? ()

. Si es verdadero,

¿Retraso? (H)??Evitar sobrecarga de CPU

. ¿Si es verdadero?(I > ?1000)

¿Fin?()

Si es verdadero, finalice. ¿Estás seguro de que el ciclo ha terminado? (). ¿Y si se acaba?

.¿Subrutina? Obtener carácter, tipo de texto

. Variable local A, ?A, ?semilla textual con número aleatorio ? ()

A?=?A? (¿tomar número aleatorio? (27,?127))

.Determina el primer dígito del bucle. (A?=? ""? o ?A?=? "?" ? o ?A?=? " ")

¿Colocar semilla de número aleatorio?()

A? =?(¿Tomar un número aleatorio? (27,?127))

¿Determinar la posición final del bucle? ()

A?=? al ancho completo? (A)

retorno?(A)

Subrutina?_clock1_cycle hilo de inicio (amp; número). ¿Salida de lluvia?