Комментарии 76
10 PRINT CHR$(205.5+RND(1));: GOTO 10Сегодня же видел такую реинкарнацию:
yes 'c=(╱ ╲);printf ${c[RANDOM%2]}'|bash
Еще куча немного версий на bash :)
Извиняюсь за оффтоп. Никто не знает, почему
yes 'c=(╱ ╲);printf ${c[RANDOM%2]}'|bash
нормально работает, аyes 'c=(1 2);printf ${c[RANDOM%2]}'|bash
Вешает GNOME Terminal намертво(версия 2.30.2)?Что-то не могу подобрать подходящего шрифта под windows — без слешей повёрнутых на 45 градусов получается некрасиво :)
А в fb2/epub где-нибудь есть? PDF всё же не самый удобоваримый формат.
А конвертеры ныне не модны или под запретом? Сам пользуюсь одним «комбайном» для конвертации в epub. Писать название не буду (не сочли бы за рекламу), но напоминает оно птичку маленькую.
X… У…
Хорошо, что третью букву не может нарисовать.
Хорошо, что третью букву не может нарисовать.
Для тех, у кого только cmd под рукой:
@echo off
:1
set /a a=%random% %% 2
if %a%==0 set /p "t=/"<nul & goto 1
if %a%==1 set /p "t=\"<nul & goto 1
Только тут генератор псевдослучайных чисел какой-то неинтересный: очень много квадратиков, и вообще повторяющихся последовательностей.
Да, косяк. Вот получше:
хороший генератор с периодом 2^96-1
@echo off
set /a x=123456789+%random%
set /a y=362436069+%random%
set /a z=521288629+%random%
:1
set /a "x ^= x << 16"
set /a "x ^= x >> 5"
set /a "x ^= x << 1"
set /a "t = x"
set /a "x = y"
set /a "y = z"
set /a "z = t ^ x ^ y"
set /a "a = z & 1"
if %a%==0 set /p "t=/"<nul & goto 1
if %a%==1 set /p "t=\"<nul & goto 1
хороший генератор с периодом 2^96-1
А все потому что нужно брать не младший бит случайного числа, а старший.
Меряемся, у кого короче )
@echo off & setlocal enabledelayedexpansion
:a
set c=/\ &for /f %%i in ('set /a %random% %% 2') do echo|set /p=!c:~%%i,1!&goto a
добился однострочника, запускаемого из командной строки (без bat-файла):
cmd /v:on/q/c for /l %j in (0,0,1)do if !random! LSS 16384 (<nul set/p=/)else (<nul set/p=\)
У Васика операторы не заканчивались ";" Двоеточия достаточно.
А на js нет подобного?
Моя скромная поделка jsfiddle.net/SyfMU/
Ткните носом, как можно сделать код красивее, т.к. на js пишу крайне редко.
Ткните носом, как можно сделать код красивее, т.к. на js пишу крайне редко.
В одну строчку:
for (var i=1; i<=640; i++) document.write((parseInt(0.5+Math.random())?"/":"\\")+(i%40?"":"\n"));
for(var i=640,m=Math; i-->0;) document.write((m.floor(0.5+m.random())?"/":"\\")+(i%40?"":"\n"));
Я тоже пробовал делать просто текстом, но из-за шрифтов оно выглядит некрасиво. Пришлось делать в виде изображения.
Исходник (PHP + Gd)
Исходник (PHP + Gd)
Скриншот

Можно использовать другие символы:
╱╲
╱╲
ностальгия: только сейчас, глядя на видео, вспомнил как успокаивает мигающий курсор — прям как собачка, виляющая хвостом… нынешние компы какие-то высокомерные — а этот ждет команды, тут же исполняет, виляет хвостиком в ожидании следующей команды… эх, старею… :-)
На Commodore конечно более таинственно выглядит, даже не сразу понял, как это получается :)
Почему исходники не на github?

Вот что странно — операторы уже не все помню (пришлось воспользоваться мануалом), а где какой символ на клавиатуре расположен — пальцы помнят.
А результат совсем не такой впечатляющий, как на C64.
На какой клавиатуре, JCUKEN — как на MSX?
Лучше заменить PRINT на RANDOMIZE USR, так будет прикольнее :-)
Я когда недавно решил побаловаться спектрумовским бейсиком удивился, что пальцы помнят не только символы, но вообще все операторы. Стоит подумать про оператор и я уже знаю на какой клавише и в каком регистре он находится…
Басик… Почти 20 лет прошло с тех пор, как я впервые набрал GOTO:))
15 лет прошло с тех пор, как я впервые отказался от оператора goto :)
Cколько лет пройдет до того момента, когда от goto откажутся компиляторы? :)
Поглядите код ядра Линукс, вы очень сильно удивитесь…
Я про ассемблерные jump-ы, безусловные переходы, что есть тот же самый goto по сути. Неужто в линуксе обошлись без него? Тогда очень сильно удивлюсь.
Простите, вы написали именно про goto, в ядре линукса именно этот оператор используется невероятно часто. А тут вы внезапно ассемблер вспомнили.
В ассемблере таки да, одни джампы. При чём условные, безусловные. Но при чём здесь ассемблер?
В ассемблере таки да, одни джампы. При чём условные, безусловные. Но при чём здесь ассемблер?
Извиняюсь, не так понял. Значит таки есть там goto. Как я ответил ниже habrahabr.ru/post/161035/#comment_5529703 это всего лишь подколка в сторону ненавистников goto.
В DCPU-16, насколько я помню, без него обошлись, оставили MOV IP, адрес. Но вообще, от IP пора отказываться. Слишком неэффективная штука.
Фундаментальный вопрос — без бутылки не разобраться
Это я так хитро поддел ненавистников goto. Как не абстрагируйся, все равно код сведется к простым машинным командам, где без него никак.
Не «if else», а «if goto»! Иногда даже goto не пишут, просто if условие метка (или if число три метки, как в Фортране).
Достаточно запретить все языки, кроме Brainfuck — в нём goto не предусмотрен. Для особо сопротивляющихся можно оставить интерпретаторы алгоритмов Маркова.
Very short C programs and Javascript expressions generating musical output.
www.youtube.com/watch?v=tCRPUv8V22o
www.youtube.com/watch?v=tCRPUv8V22o
Раз пошла такая пьянка, то вот вам код на Пайтоне:
import random; while 1: print random.choice(u'╱╲'),
Пару месяцев назад делал штуку по похожему алгоритму: explored.tk/experiments/swoop/
В каждом тайле 2 диагональных линии, "
В каждом тайле 2 диагональных линии, "
//
" либо "\\
". Получается красивее.Зарегистрируйтесь на Хабре, чтобы оставить комментарий
10 PRINT CHR$(205.5+RND(1));: GOTO 10