Matrix-effekt

Här är en presentation av tre olika batch-skript som simulerar Matrix-effekten i olika svårighetsgrader: lätt, mellan och avancerad.

Enkel Matrix-effekt med slumpmässiga siffror

Detta första skript visar slumpmässiga siffror i en oändlig loop utan fördröjning. Det är ett bra val för nybörjare som vill skapa en enkel Matrix-liknande effekt utan att behöva hantera fördröjning eller avancerade inställningar.

Förklaring: %random% genererar ett slumpmässigt tal, och flera %random% tillsammans skapar en rad av slumpmässiga siffror.

@echo off
color 02
:loop
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
goto loop

Matrix-effekt med ettor och nollor samt fördröjning

Det andra skriptet lägger till fördröjning och använder en slumpmässig sekvens av bara ettor och nollor för att skapa en tydligare Matrix-effekt. Fördröjningen ger en mer kontrollerad hastighet.

Förklaring

  • Skriptet genererar en rad med 40 slumpmässiga ettor och nollor och skriver ut den, sedan fördröjs utskriften.
  • Fördröjning med ping localhost -n 1 > nul ger cirka 1 sekunds fördröjning mellan utskrifter, vilket ger en långsammare, rullande Matrix-effekt.
@echo off
setlocal enabledelayedexpansion
color 02
:loop
set "line="
for /l %%i in (1,1,40) do (
set /a "binary=!random! %% 2"
set "line=!line!!binary!"
)
echo !line!
ping localhost -n 1 > nul :: Fördröjning på ca 1 sekund
goto loop

Matrix-effekt med sekventiell visning av ettor och nollor från vänster till höger

Detta avancerade skript visar en rad av slumpmässiga ettor och nollor, men skriver ut dem en i taget från vänster till höger. Effekten är en rullande Matrix-effekt som visas långsamt över skärmen.

Förklaring:

  • Först genereras en rad med slumpmässiga ettor och nollor. Sedan skrivs varje tecken ut individuellt från vänster till höger, vilket simulerar en rullande Matrix-effekt.
  • En intern fördröjningsloop delay_loop styr hastigheten per tecken. För att justera hastigheten kan du ändra värdet 1000 i delay_loop.
@echo off
setlocal enabledelayedexpansion
color 02
echo Tryck på Enter för att starta Matrix-effekten.
pause > nul :: Väntar tills användaren trycker på Enter
:loop
set "line="
:: Generera en rad med slumpmässiga 1:or och 0:or
for /l %%i in (1,1,40) do (
set /a "binary=!random! %% 2"
set "line=!line!!binary!"
)
:: Visa siffrorna en i taget med fördröjning
for /l %%j in (0,1,39) do (
set /p "=!line:~%%j,1!"

Hantera fördröjning

Detta batch-skript skapar en Matrix-liknande effekt med slumpmässiga ettor och nollor som visas i en kontinuerlig ström på skärmen.

Förklaring:

  • etlocal enabledelayedexpansion: Aktiverar ”delayed expansion” för att kunna använda !variabel!-syntaxen, vilket är användbart inuti loopar.
  • set /a "binary=!random! %% 2": Varje gång loopen körs genereras ett slumpmässigt tal, som delas med 2 för att få resultatet 0 eller 1
  • :delay_loop): Den inbyggda fördröjningsloopen skapar en liten paus mellan varje utskrift för att simulera en långsammare, rullande effekt.
  • set /a delay+=1 och if %delay% lss 100 goto delay_loop: Loopen körs tills variabeln delay når 100 (eller det valda värdet), vilket kan justeras för längre eller kortare fördröjning. Högre värden skapar längre fördröjningar.
  • goto loop: När utskriften och fördröjningsloopen är klar, skickas programmet tillbaka till :loop, och processen upprepas.

Anpassning:

  • Du kan justera värdet 100 i if %delay% lss 100 goto delay_loop för att ändra hastigheten på effekten.
  • Du kan lägga till eller minska antalet !binary! för att kontrollera längden på raden med ettor och nollor.
@echo off
setlocal enabledelayedexpansion
color 02

echo Välkommen! Detta skript genererar en Matrix-liknande effekt med ettor och nollor.
echo Tryck på Enter för att starta programmet.
echo (Tryck Ctrl + C när som helst för att avsluta skriptet.)
pause > nul  :: Väntar tills användaren trycker på Enter

:loop
set /a "binary=!random! %% 2"
echo !binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!!binary!

:: Fördröjningsloop
set /a delay=0
:delay_loop
set /a delay+=1
if %delay% lss 100 goto delay_loop  :: Justera 100 för längre eller kortare fördröjning

goto loop

Sammanfattning

Dessa fyra olika skript har som syfte att simulera en Matrix-liknande effekt i kommandotolken, med olika grader av komplexitet och visuell detalj.

  • De första två skripten är enkla att förstå och använder en oändlig ström av slumpmässiga siffror eller endast ettor och nollor, vilket ger en snabb och enkel visuell effekt.
  • Det tredje skriptet lägger till en fördröjning, vilket gör att varje rad visas i en mer kontrollerad takt, och förbättrar effekten genom att skapa ett långsammare flöde som efterliknar Matrix-filmernas estetik.
  • Det fjärde och mest avancerade skriptet simulerar en sekventiell visning av varje siffra från vänster till höger, vilket ger en komplex och autentisk rullande Matrix-effekt.

Tillsammans ger dessa skript både nybörjare och mer avancerade användare möjlighet att experimentera med att skapa visuella effekter i kommandotolken.