Здрасти! Ну что, кто смотрел фильм матрица? Короче сейчас будем делам матрицу в нашем любимом DOSе. Конечно, буквы так красиво падать не будут сверху как в оригинале. Но зеленый хаос на экране устроить можно.
@echo off color 0A :metka echo %random% %random% %random% %random% %random% %random% goto metka Ну, давайте разберем первый пример. Сначала я как обычно отключил вывод команд @echo off потом разумеется поставил цвет букв светло зеленым (это все таки матрица, там все зеленое было) Если вы хотите сделать красную или голубую матрицу то про команду color можно почитать ТУТ далее я поставил метку и назвал её по капитански :metka и команда вывода на экран текста echo я написал команду %random% с помощью неё мы будем случайно выводить на экран числа от 0 до 32767… Можно еще добавить побольше %random% чтобы на весь экранчик наш маленький бежали циферки. Ну и переходим опять к нашей капитанской метке goto metka тем самым мы делаем зацикливание вывода на экран строки echo и получается у нас матрица. Можете любоваться или медитировать. Если долго и пристально смотреть то… то, нечего не будет, у вас просто глаза устанут  Но чего-то не хватает… чего, чего же? Ага, в матрице помимо цифр еще и буквы летали по экрану. Как же это сделать? Запишем в переменную rрандомное число: set r=%random% а потом зададим небольшое правило. Когда в рандомном числе будет появляться 0 мы его заменим на букву R или давайте лучше на слово neo: set r=%r:0=neo% т.к. всего цифр у нас 10 (от 0 до 9) то каждой цифре можно присвоить свою букву или слово. @echo off color 0A :metka set r=%random% set r=%r:0=neo% set r=%r:1=trinity % set r=%r:2=matrix% set r=%r:3=morfius% set r=%r:4=raskolbass% set r=%r:5=haos% set r=%r:6=loh% set r=%r:7=batnik % set r=%r:8=W% set r=%r:9=+% echo %r% %r% %r% %r% %r% goto metka О какой хаос из буковок! Одна проблемка команда%random% создает число ну например 27767 и что же выведет наш батник на экран? А выведет он страшное слово:lohbatnikmorfiusneo+ как же нам сделать пробелы между словами? Надо просто создать диапазон рандомных чисел от 0 до 9. Сначала мы переменной ran присвоим рандомное число: set /a ran=%random% а потом переменнойran9 зададим некую формулу чтобы какое число не вылетело, оно обрезалось до 1 символа: set /a ran9=%ran%-(%ran%/9)*9
Ну, вот теперь слова вылетают через пробел. Осталось только между ними еще чисел написать чтобы цифры были смешаны вместе с буквами. Просто на выводе делаем примерно так: echo %ran9% %random% %ran9% %random% Но что-то окошко у нас слишком маленькое давайте попробуем растянуть его навесь экран монитора чтобы наша матрица заполнила весь экран. Для этого есть команда mode con: mode con cols=300 lines=300 cols это ширина, а lines это высота (по умолчанию где то примерно 80 на 25) Жаль только окно не совсем правильно растягивается на весь экран. Но это можно исправить с помощью другого батника прописав в нем запуск нашего батника с матрицей с параметром /max start /max matrix.bat Давайте я как обычно напишу код полностью для тех кто затрудняется сложить 2+2: @echo off mode con cols=300 lines=300 color 0A :metka set /a ran=%random% set /a ran9=%ran%-(%ran%/9)*9 set ran9=%ran9:0=neo% set ran9=%ran9:1=trinity% set ran9=%ran9:2=matrix% set ran9=%ran9:3=morfius% set ran9=%ran9:4=raskolbass% set ran9=%ran9:5=haos% set ran9=%ran9:6=loh% set ran9=%ran9:7=batnik% set ran9=%ran9:8=W% set ran9=%ran9:9=++% echo %ran9% %random% %ran9% %random% %ran9% goto metka А можно чтобы уж совсем рябило в глазах менять цвет букв с зеленого на красный и наоборот. Поставьте color 0a (зеленые буквы) после :metka и color 0c (красные буквы) после вывода текста на экран. И запустите в глазах будет рябить от меняющихся красно зеленых букв. Если хорошо подумать, то можно ведь сделать и растоманскую матрицу, чтобы она переливалась вся всеми цветами радуги. Возьмите переменную%ran9% (помните как мы её делали? В ней храниться случайное число от 0 до 9) и напишите color 0%ran9% ну или чтобы вообще рябило пусть меняется не цвет букв, а цвет фона %ran9%0
|