矩阵雨;除了随机数变黄

问题描述 投票:0回答:1

刚刚开始学习自己批处理,我试图制作一个矩阵东西为了好玩。我想要制作的是一个显示“矩阵数字雨”的批处理程序。除非,每当一个 %random:~-1% 数字与另一个 %random:~-1% (目标数字)相等时,它应该以不同的颜色显示该目标数字。 视觉理念

矩阵部分相当容易完成;然而,让一个数字以不同的颜色显示对于菜鸟来说是一个不同的维度。到目前为止,我已经成功地做到了:使矩阵下雨,使文本以不同的颜色显示,并为指定的数字设置条件。这可能吗?

**问题是:** A. 如何从矩阵雨中检测到预定的数字,并使它们(单独)显示为黄色,而不明显破坏矩阵雨? B. 如何创建更多垂直线?

我在下面附加了链接,我从那里得到了答案;以及我当前的批处理脚本。 自定义 %random% 位数:如何在批处理文件中生成 4 位随机数? 不同的文本颜色:如何使批处理文件的特定行的颜色与其他行不同?

@echo off
color 02
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
  set "DEL=%%a"
)

cls

:start
Ping -l 1 -n 1 -w 1000 1.1.1.1 -4 1>nul 2>&1 REM"delay cause too fast"
set num1=%random:~-2%
set num2=%random:~-2%
set dn=%random:~-2%
if %num1% EQU %num2% (call :color 06 "%random:~-2% %dn% %random:~-2%" & goto start) else (echo %random:~-2% %dn% %random:~-2% & goto start)

:color
echo off
echo %DEL% > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1

我尝试过 echo %random:~-1% 。 。 。 %dn% %random:~-1% 但它所做的只是有一行随机数,偶尔会变成黄色。如果能随机出现在不同的垂直线上那就完美了。

我现在会研究数组,但我认为我不会很快得到它。预先感谢您的回答! :D

batch-file
1个回答
0
投票

您的代码带有 ansi 转义序列。

@echo off
color 02
SETLOCAL EnableDelayedExpansion
for /F %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a"

cls
set "off=%ESC%[m"
set "red=%ESC%[0;31m"
set "red_light=%ESC%[1;31m"
set "green=%ESC%[32m"
set "yellow=%ESC%[33m"


REM Show Color Table
REM for /L %%i in (30 1 39) do (
REM    echo %%i: %ESC%[0;%%im TEXT %OFF%
REM    echo %%i: %ESC%[1;%%im TEXT %OFF%
REM )

:start
Ping -l 1 -n 1 -w 1000 1.1.1.1 -4 1>nul 2>&1 REM"delay cause too fast"
set col1=%random:~-2%
set col2=%random:~-2%
set col3=%random:~-2%
if %col1% GTR %col3% (
    set "col1=%yellow%%col1%%OFF%"
)
if %col2% GTR %col3% (
    set "col2=%red%%col1%%OFF%"
)
echo %col1% %col2% %col3%
goto :start
© www.soinside.com 2019 - 2024. All rights reserved.