2014-12-08 2 views
0

Я немного разбираюсь в пакетных файлах и запускаю этот код. Я не писал его, я нашел его, и он просто запускает случайные синие числа в командной строке до выхода. Мой вопрос в том, что я хочу сделать так, чтобы каждый персонаж был случайным цветом. так что, по-видимому, это будет выглядеть как радуга, вырвавшая кегли на моем экране. Но я отвлекся. Это моя задача, и до сих пор я не смог ее решить. Любые идеи были бы замечательными!Использование нескольких цветов в матричном пакетном файле

@echo off 
color 01 
cls 
:a 
set /a a=%random% 
if %a% geq 16384 set /a aa=1 
if %a% lss 16384 set /a aa=0 
set /a b=%random% 
if %b% geq 16384 set /a bb=1 
if %b% lss 16384 set /a bb=0 
set /a c=%random% 
if %c% geq 16384 set /a cc=1 
if %c% lss 16384 set /a cc=0 
set /a d=%random% 
if %d% geq 16384 set /a dd=1 
if %d% lss 16384 set /a dd=0 
set /a e=%random% 
if %e% geq 16384 set /a ee=1 
if %e% lss 16384 set /a ee=0 
set /a f=%random% 
if %f% geq 16384 set /a ff=1 
if %f% lss 16384 set /a ff=0 
set /a g=%random% 
if %g% geq 16384 set /a gg=1 
if %g% lss 16384 set /a gg=0 
set /a h=%random% 
if %h% geq 16384 set /a hh=1 
if %h% lss 16384 set /a hh=0 
set /a i=%random% 
if %i% geq 16384 set /a ii=1 
if %i% lss 16384 set /a ii=0 
set /a j=%random% 
if %j% geq 16384 set /a jj=1 
if %j% lss 16384 set /a jj=0 
set /a k=%random% 
if %k% geq 16384 set /a kk=1 
if %k% lss 16384 set /a kk=0 
set /a l=%random% 
if %l% geq 16384 set /a ll=1 
if %l% lss 16384 set /a ll=0 
set /a m=%random% 
if %m% geq 16384 set /a mm=1 
if %m% lss 16384 set /a mm=0 
set /a n=%random% 
if %n% geq 16384 set /a nn=1 
if %n% lss 16384 set /a nn=0 
set /a o=%random% 
if %o% geq 16384 set /a oo=1 
if %o% lss 16384 set /a oo=0 
set /a p=%random% 
if %p% geq 16384 set /a pp=1 
if %p% lss 16384 set /a pp=0 
set /a q=%random% 
if %q% geq 16384 set /a qq=1 
if %q% lss 16384 set /a qq=0 
set /a r=%random% 
if %r% geq 16384 set /a rr=1 
if %r% lss 16384 set /a rr=0 
set /a s=%random% 
if %s% geq 16384 set /a ss=1 
if %s% lss 16384 set /a ss=0 
set /a t=%random% 
if %t% geq 16384 set /a tt=1 
if %t% lss 16384 set /a tt=0 
set /a u=%random% 
if %u% geq 16384 set /a uu=1 
if %u% lss 16384 set /a uu=0 
set /a v=%random% 
if %v% geq 16384 set /a vv=1 
if %v% lss 16384 set /a vv=0 
set /a w=%random% 
if %w% geq 16384 set /a ww=1 
if %w% lss 16384 set /a ww=0 
set /a x=%random% 
if %x% geq 16384 set /a xx=1 
if %x% lss 16384 set /a xx=0 
set /a y=%random% 
if %y% geq 16384 set /a yy=1 
if %y% lss 16384 set /a yy=0 
set /a z=%random% 
if %z% geq 16384 set /a zz=1 
if %z% lss 16384 set /a zz=0 
echo %aa% %bb% %cc% %dd% %ee% %ff% %gg% %hh% %ii% %jj% %kk% %ll% %mm% %nn% %oo% %pp% %qq% %rr% %ss% %tt% %uu% %vv% %ww% %xx% %yy% %zz% 
goto a 
+0

так что вы хотите сделать то же самое, но каждый персонаж должен иметь разный цвет? – npocmaka

+0

[См. Этот вопрос] (http://stackoverflow.com/q/4339649/1683264) для нескольких возможных решений для печати символов разных цветов. – rojo

ответ

1

Я не знаю, если у вас есть еще, но у меня была та же мысль и решил посмотреть его я не мог найти ничего, кроме как использовать цвета и генератор случайных чисел, так вот что я получил

@echo off 
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" 
) 
:a-0a0 
set eddie=%time:~-2% 
set first=%eddie:~0,1% 
if %first%==0 set eddie=%eddie:~1,1% 
set /a eddie=(%eddie%%%9) 
call :ColorText 0%eddie% " %random%" 
goto a-0a0 
pause >null 

:ColorText 
<nul set /p ".=%DEL%" > "%~2" 
findstr /v /a:%1 /R "^$" "%~2" nul 
del "%~2" > nul 2>&1 
Смежные вопросы