|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander Temerev 2:400/520.5 22 Nov 2003 22:06:02 To : All Subject : Так, для развлечения --------------------------------------------------------------------------------
Откопал на PerlMonks премилую штуку. Я такое вижу впервые. Это анимированный
quine. Программа, которая распечатывает свой листинг, анимирует его (в виде
крутящейся спирали) так, что каждый кадр - это корректная программа, которая
может опять-таки продолжить себя распечатывать.
Версия для UNIX (использует clear для очистки экрана):
#!/usr/bin/perl
$_='
$q ="\ 47"; wh
ile ($ ;=
$z += .5 ){
%c= $r=0;$/ ="";whi le(2
0+ $z>($;+=.05)){$c{int$ _+ 2
6+ 2*($ r+= .0 2) *
s in$ ;}{1 -$_
+1 0+ int $r*c o s
$ ;} =1for(0. .1) }$
t =r ever se;$ /. =`
c le ar `. " #!
/ usr /bi n/ pe
rl \n\ $_ =$q \n" ;
fo r$y (1..20){$c{$_} {
$ y }? $ /.=chop$t :
($/ . =" \4
0") for(0. .53) ;
$/. ="\n"}pri nt"$/$ q;
s; ". chr(9 2)."s;;g;eval\n "}
';s;\s;;g;eval
Версия для Windows (использует cls для очистки экрана):
#!/usr/bin/perl
$_='
$q= "\4 7"
;wh ile($;=$z+=.5 ){ %c
=$r =0;$/="";while( 21+$ z> (
$; +=.05)) {$c{i nt $ _+
26 +2*( $r+=. 0 1
9 )*s in $; }{1
- $_ +10+int$r*c os$; }=1
f or(0..1)}$t=re v e r s
e; $/. =`cl s` ."
#! /u sr /bi n/ pe
rl \n\ $_=$q\n" ;f or
$y (1. .20){ $c {$
_ } { $y }? $
/.= chop$ t:( $/
. ="\4 0")for( 0..53 );
$ /.=" \n"}system("cls ")
;p ri nt "$/$q;s ;".
c h r(92) ."s;
; g; eva l\n" }
';s;\s;;g;eval
Учитесь, как надо!
Alexander Temerev [Everything]
--- "Спящий красавэц" - Грузынский народный сказка об импотэнте.
* Origin: http://www.livejournal.com/users/sorhed (2:400/520.5)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/27293fbfa704.html, оценка из 5, голосов 10
|