七行プログラミング (452レス)
七行プログラミング http://medaka.5ch.net/test/read.cgi/php/1036141603/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
150: nobodyさん [sage] 03/05/29 12:44 ID:??? use Socket;($h,$s,$e)=@ARGV;$i=inet_aton($h)||die;print"host $h\n\n";for$p($s.. $e){for('tcp','udp'){socket S,PF_INET,SOCK_STREAM,getprotobyname$_;print"$p $_ "if connect S,pack_sockaddr_in$p,$i;close S}} http://medaka.5ch.net/test/read.cgi/php/1036141603/150
151: nobodyさん [sage] 03/07/01 18:25 ID:??? #!/usr/local/bin/perl print "Hello World!"; print "Hello World!"; print "Hello World!"; print "Hello World!"; print "Hello World!"; print "Hello World!"; http://medaka.5ch.net/test/read.cgi/php/1036141603/151
152: nobodyさん [sage] 03/07/06 12:17 ID:??? お前ら!すごいですね http://medaka.5ch.net/test/read.cgi/php/1036141603/152
153: 山崎 渉 [(^^)] 03/07/15 11:13 ID:??? __∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄ http://medaka.5ch.net/test/read.cgi/php/1036141603/153
154: nobodyさん [sage] 03/07/24 09:35 ID:??? おもしろそう・・・ http://medaka.5ch.net/test/read.cgi/php/1036141603/154
155: 山崎 渉 [(^^)sage] 03/08/02 02:38 ID:??? ∧_∧ ( ^^ )< ぬるぽ(^^) http://medaka.5ch.net/test/read.cgi/php/1036141603/155
156: ぼるじょあ ◆ySd1dMH5Gk [(^^)] 03/08/02 05:21 ID:??? ∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ http://medaka.5ch.net/test/read.cgi/php/1036141603/156
157: 山崎 渉 [(^^)] 03/08/15 22:57 ID:??? (⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン http://medaka.5ch.net/test/read.cgi/php/1036141603/157
158: nobodyさん [sage] 03/08/17 15:16 ID:??? 山崎ばかりなのもナニなので kat2xhtml 更新。あと 10 byte ほどなんだが…。 $l='<a href="';sub a{"$l@_\">$a</a>"}sub p{"<span class=\"@_</span>"}while(<>){ ($n,$m,$d,$_,$t,$")=split/[,\n]/;$.-1or$T=$t;$n=~m|<b>([^<]*)(</b>([^<]*))?|;$n =($1&&p"n\">$1").($3&&p"m\">$3");$n=p qq|k" title="$m">$n|if$m.0;s/\x81\x97\x81 M/,/gx;s/\s+(target="\w*"|$)//g;s|\s*<br>|<br />|g;s/&(?!\w+;|\#\d+;)/&/g;( ($u,$a
)=/^$l([^"]+)">([^<]+)/)?($_=$u=~s/~/%7E/g?a$u:$a=~/^(>){1,2}(\d+)/?a "#R$2":$_):s/"/"/g for@r=split/($l[^"]+">[^<]+<\/a>)/;$A.="<dt>$. :<a id" ."=\"R$.\">$n :$d</a></dt><dd>@r</dd>\n"}open T,$/="$0.tmpl";$_=<T>;s/%(.)/${ $1}/g;print ・?xHHHH 形式の数値実体参照を諦め。 ・テンプレートのファイル名を "$0.tmpl" に。 ・説明やら入れたアーカイヴは http://cm.xrea.cc/ に。 http://medaka.5ch.net/test/read.cgi/php/1036141603/158
159: nobodyさん [sage] 03/08/17 15:19 ID:??? >>158 s/?xHHHH/&#xHHHH/; http://medaka.5ch.net/test/read.cgi/php/1036141603/159
160: nobodyさん [sage] 03/08/18 07:15 ID:??? ちょっと長くなったけど、初心者質問スレを荒らしている彼に捧げよう。(w #--- br.p --- package P;sub c{bless pop,pop}sub s{$_[0]->{s}}sub n{$_[0]->{n}}sub h{my($s,$c) =@_;$c||return$s->{h};($s->{h}+=$c)>0or$s->{h}=0}sub b{my($s,$e)=@_;my@w=keys%{ $s->{w}};my$w=$w[int rand@w];print$s->n,' は ',$w," で攻撃!\n";my($d,$a)=@{$s-> {w}{$w}}{d,a};$d=(my$n=int rand 101)>$a?0:$n>$a/2?int($d/2)-$e->s:$n>$a/20?$d- $e->s:$d;print$d<=
0?"ミス!\n":($e->n,' に ',$d," ポイントのダメージ!\n");$e->h( -$d)||print$e->n," を倒した!\n"}package main;sub p{splice@p,int rand@p,1}@p=map P->c($_),@{do'./p.dat'};while(@p>1){my$o=p;my$d=p;print"\n",$o->n,':',$o->h,' ' ,$d->n,':',$d->h,"\n";$o->b($d);push@p,$o;$d->h>0&&push@p,$d}print(shift(@p)->n , " の 勝利!\n") #--- p.dat --- [{n=>'煽り',h=>400,s=>10,w=>{'キック'=>{d=>60,a=>60},'パンチ'=>{d=>20,a=>70},}} ,{n=>'荒らし',h=>300,s
=>0,w=>{'キック'=>{d=>100,a=>60},'パンチ'=>{d=>40,a=>70}} },{n=>'夏厨',h=>200,s=>20,w=>{'キック'=>{d=>80,a=>90},'パンチ'=>{d=>10,a=>100}} }]; http://medaka.5ch.net/test/read.cgi/php/1036141603/160
161: nobodyさん [sage] 03/08/18 12:36 ID:??? >>160 ワロタ http://medaka.5ch.net/test/read.cgi/php/1036141603/161
162: nobodyさん [sage] 03/08/19 11:57 ID:??? 縮めて CGI プログラムにした。これで彼も満足だろう。 #--- br.cgi --- #!/usr/local/bin/perl use CGI':all';put header(-charset=>($c='EUC-JP')),start_html(-lang=>ja,-title=> 'B.R.',-encoding=>$c);@p=@{do'br.dat'};sub e{splice@p,int rand@p,1}while(@p>1){ *o=e;*d=e;put p"$o{N}:$o{H} $d{N}:$d{H}";@w=keys%{$o{W}};$w=$w[int rand@w];($p, $a)=@{$o{W}{$w}}{D,A};put p("$o{N}は$wで攻撃!",(($p=($n=int rand 101)>$a?0:$n> $a/2?int($p/2)-$d{S}:$n>$a/20?$p
-$d{S}:$p)>0or$p=0)?"$d{N}に$pポイントのダメー" .'ジ!':'ミス!');($d{H}-=$p)>0or put p"$d{N}を倒した!";push@p,\%o;$d{H}>0&&push @p,\%d}put p(pop(@p)->{N}, 'の勝利!'),end_html #--- br.dat --- [ {N=>'煽り', H=>400,S=>10,W=>{'キック'=>{D=>60, A=>60},'パンチ'=>{D=>20,A=>70 }}}, {N=>'荒らし',H=>300,S=>0, W=>{'キック'=>{D=>100,A=>60},'パンチ'=>{D=>40,A=>70 }}}, {N=>'夏厨', H=>200,S=>20,W=>{'キック'=>{D=>80, A=>90},'パン
チ'=>{D=>10,A=>100}}}, ]; http://medaka.5ch.net/test/read.cgi/php/1036141603/162
163: nobodyさん [sage] 03/08/20 07:02 ID:??? メッセージを削るという安直な方法で七行達成。 #!/usr/local/bin/perl use CGI':all';put header(-charset=>($c='EUC-JP')),start_html -lang=>ja,-title=> BR,-encoding=>$c;@p=@{do'br.dat'};while(@p>1){put p map"$_->{N}:$_->{H}",@p;*d= splice@p,int rand@p,1;*o=$p[int rand@p];@w=keys%{$o{W}};($p,$a)=@{$o{W}{$w=$w[ int rand@w]}}{D,A};put p"$o{N}は$d{N}に$wで攻撃!",(($p=($n=int rand 100)>$a?0: $n>$a/2?int($p/2)-$d{S}:$n>$a/20?$p-$d{S}:$p)>0
or$p=0)?"$pダメージ!":'ミス!';( $d{H}-=$p)>0?push@p,\%d:put p b"$d{N}を倒した!"}put p"$p[0]{N}の勝利!",end_html http://medaka.5ch.net/test/read.cgi/php/1036141603/163
164: nobodyさん [sage] 03/08/28 05:11 ID:??? 「素早さ」を実装したいけど、どうも巧くない。 #--- br.dat --- # 名前, 防御力, 体力, 素早さ(1〜99), [ [ 武器名, 攻撃力, 命中率(1〜99) ] ... ] [ [ '煽り', 10, 300, 99, [['キック',60,50], ['パンチ',30,70]] ], [ '荒らし', 0, 400, 50, [['キック',90,70], ['パンチ',40,80]] ], [ '夏厨', 20, 200, 25, [['キック',80,90], ['パンチ',20,90]] ], ]; #--- br.cgi (素早さ実装版) --- #!/usr/local/bin/perl use CGI':all';put header(-charset=>($C='EUC-JP')),start_htm
l -encoding=>$C,lang ,ja,title=>BR;@p=@{do'br.dat'};while($#p){put p map"[$_->[0]:$_->[2]]",@p;$N=0; {for(0..$#p){int$c%(99/$p[$_][3])&&next;($N,*W)=@{*O=splice@p,$_,1}[0,4];($W,$D ,$A)=@{$W[rand@W]};last}$c=0if++$c>99;$N||redo}($n,$s)=@{*d=splice@p,rand@p,1}; put p"$Nは$nに$W!",(($D-=($i=rand 100)>$A?$D:$i>$A/2?int($D/2)+$s:$i>$A/20?$s:0 )>0or$D=0)?"$Dダメージ!":'ミス!';@p=sort{$b->[3]<=>$a->[3]}@p,\@O;($d[2]-=$D)>0 ?@p=(\@d,@p):put p b"$nを倒した!"}put p"$Nの勝利!
",end_html #--- br.cgi (素早さ未実装版) --- #!/usr/local/bin/perl use CGI':all';put header(-charset=>($C='EUC-JP')),start_html -encoding=>$C,lang ,ja,title=>BR;@p=@{do'br.dat'};while($#p){put p map"[$_->[0]:$_->[2]]",@p;($N, *W)=@{$p[-1]}[0,4];($W,$D,$A)=@{$W[rand@W]};($n,$s)=@{*d=splice@p,rand$#p,1}; put p"$Nは$nに$W!",(($D-=($i=rand 100)>$A?$D:$i>$A/2?int($D/2)+$s:$i>$A/20?$s:0 )>0or$D=0)?"$Dダメージ!":'ミス!';($d[2]-=$D)>0?push@p,\@d:put p b"$nを倒した!"} put p"$Nの勝利!",e
nd_html http://medaka.5ch.net/test/read.cgi/php/1036141603/164
165: nobodyさん [sage] 03/08/28 12:01 ID:??? >>164 まだやってたのかよw がんがれ! http://medaka.5ch.net/test/read.cgi/php/1036141603/165
166: 保守 [sage] 03/10/04 05:54 ID:??? $$_=1for"@ARGV"=~/\w/g;for('0019'..9999){my%c;$n=$_;next if$h{"@{[sort@v=/./g]} "}++&&$o||$z&&/0/||$d&&(grep$c{$_}++,@v);O:for(map[@{[qw(+ - * /)]}[$_&3,$_>>2& 3,$_>>4&3]],0..63){@x=(@$_,@v);eval==10&&do{print"$n:$_\n";$c&&last O}for grep s/(\d)/$x[$1]/g,qw/(304)1(526) ((304)15)26 30(41(526)) 30((415)26) (30(415))26/ }} http://medaka.5ch.net/test/read.cgi/php/1036141603/166
167: nobodyさん [sage] 03/10/05 03:33 ID:??? 本家スレで出てた切符問題の CGI プログラム版。 選択された4つの数字のみを調べる。 #!/usr/local/bin/perl use CGI':all';@n=param n;for(map[@{[qw(+ - * /)]}[$_&3,$_>>2&3,$_>>4&3]],0..63) {@x=(@$_,@n);for$t(qw/(304)1(526) ((304)15)26 30(41(526)) 30((415)26)/,'(30(41' .'5))26'){$_=$t;s/(\d)/$x[$1]/g;eval==10&&push@e,$_.br}}put header,start_html( -title=>7410),startform(0,script_name),p(scrolling_list(qw(-name n -size 10), -values=>[0..9])x4,submit),e
ndform,p(@e),end_html >>166 は 5.005_03 なら動いたけど 5.8.0 だと不可。 http://medaka.5ch.net/test/read.cgi/php/1036141603/167
168: nobodyさん [sage] 03/10/05 20:23 ID:??? コマンドライン・CGI 両対応版。 #--- 7410.cgi --- #!/usr/local/bin/perl use CGI':all';sub e{for(map[@{[qw(+ - * /)]}[$_&3,$_>>2&3,$_>>4&3]],0..63){@x=( @$_,@n);for$t(qw/(304)1(526) ((304)15)26 30(41(526)) 30((415)26) (30(415))26/){ $_=$t;s/(\d)/$x[$1]/g;eval==10&&do{$r?push@e,$_.br:print"$n:$_\n";$c&&return}}} @e}if($r=$ENV{'REMOTE_ADDR'}){@n=param n;put header,start_html(-title=>7410), startform(0,script_name),p(scrolling_list(qw(-name n -size 10
-values),[0..9])x 4,submit),endform,p(e),end_html}else{$$_=1for"@ARGV"=~/\w/g;$n=$_,$h{"@{[sort@n =/./g]}"}++&&$o||$z&&/0/||$d&&do{my%c;grep$c{$_}++,@n}or e for'0019'..9999} __END__ usage: ./7410.cgi [ -cdoz ] -c : 1組の数字に対し1つの計算式のみ出力 -d : 同じ数字を使わない -o : 1組の数字に対し1つの出現順序のみ出力 -z : 0を含めない http://medaka.5ch.net/test/read.cgi/php/1036141603/168
169: nobodyさん [sage] 03/10/08 01:14 ID:??? 5.005_03 と 5.8.0 の両方でマジメにチェック & 縮め。 #!/usr/local/bin/perl use CGI':all';sub e{my@e;for(0..63){@x=(@{[qw(+ - * /)]}[$_&3,$_>>2&3,$_>>4&3], @n,param n);for$t(qw/(304)1(526) ((304)15)26 30(41(526)) 30((415)26) (30(415))26/){$_=$t;s/(\d)/$x[$1]/g;10-eval or$r?push@e,$_.br:put("$n:$_\n"),$c &&return}}@e}($r=$ENV{REMOTE_ADDR})?put(header,start_html(-title=>7410), startform(0,script_name),p(scrolling_list(-values=>[0..9],name,n,size,1
0)x4, submit),endform,p(e),end_html):do{$$_=1for"@ARGV"=~/\w/g;$n=$_,$h{"@{[sort@n= /./g]}"}++&&$o||$z&&/0/||$d&&4>keys%{{map{$_,1}@n}}or e for'0019'..'9999'} http://medaka.5ch.net/test/read.cgi/php/1036141603/169
170: 7blosxom [] 03/12/01 03:01 ID:i/vnv4B8 #!/usr/bin/perl use CGI':all';use File::Find;$n=param('n')||0;@i=split'/',path_info;shift@i;($y, $m,$d)=grep{/^\d+$/}@i;$p=join'/',grep{/^\D+$/}@i;find sub{($f=$File::Find::name )=~/\.txt$/and$e{$f}=-M},"./$p";put header,start_html;for((sort{$e{$a}<=>$e{$b}} keys%e)[$n..$n+40]){($z,$x,$c)=(localtime(time-60*60*24*$e{$_}))[5,4,3];next if( ($y&&$y!=$z+1900)or($m&&$m!=$x+1)or($d&&$d!=$c)or!-f);s/^\.\///;open(F,$_)&&{ chomp($t=<F>),put(a({-href=>url."/
$_"},h2 $t),<F>,hr,"\n"),close F}}put end_html http://medaka.5ch.net/test/read.cgi/php/1036141603/170
171: 7blosxom [] 03/12/01 03:13 ID:i/vnv4B8 久しぶりに7行プログラミング。 PATH_INFOで指定できるのは、日付とカテゴリのみ。 月の指定は数字のみ可能。Decとかには未対応。 indexや他のFlavourは未実装。 リクエストの例 ./7blosxom.cgi ./7blosxom.cgi/2003 ./7blosxom.cgi/2003/11 ./7blosxom.cgi/2003/11/30 ./7blosxom.cgi/2003/11/foo ./7blosxom.cgi/2003/foo/bar ./7blosxom.cgi/foo/hoge.txt PAGING 機能。意味なくつけてみたけど、いらないよぉな気がする。(TODO remove) ./7blosxom.cgi?n=10 ./7blosxom.cgi?n=10/foo/2000 リクエ
スト例。例外 ./7blosxom.cgi///// ... 何も指定しないのと同じ。 ./7blosxom.cgi/2003/11/30/1/ ... 4つめ以降の数字は無視される。 ./7blosxom.cgi/foo2/ ... 正規表現が手抜きな為、数字+文字の組合せは無視される。 http://medaka.5ch.net/test/read.cgi/php/1036141603/171
172: nobodyさん [] 03/12/01 06:28 ID:i/vnv4B8 訂正。HTML&&桁数間違えてた。 #!/usr/bin/perl use CGI':all';use File::Find;@i=split'/',path_info;shift@i;($y,$m,$d)=grep/^\d+ $/x,@i;$p=join'/',grep{/^\D+$/}@i;find sub{($f=$File::Find::name)=~/\.txt$/and$ e{$f}=-M},"./$p";put header,start_html;for(sort{$e{$a}<=>$e{$b}}keys%e){($z,$x, $c)=(localtime(time-86400*$e{$_}))[5,4,3];if(!(($y&&$y!=$z+1900)or($m&&$m!=$x+1 )or($d&&$d!=$c))&&-f&&open F,$_){s/^\.\///;chomp($t=<F>);put hr,h2 a({href,url. "/$_"},
$t),pre<F>,"\n";close F}}put end_html - データ用のディレクトリをカレントディレクトリ以外に指定したい場合。 ln -s /home/your/data/path home とリンクを作り。 7blosxom.cgi/home とアクセスする。 http://medaka.5ch.net/test/read.cgi/php/1036141603/172
173: 128 [] 03/12/01 18:34 ID:xLzdr2os それじゃ漏れも久々に投稿。 スレッド式掲示板です。 データ用ディレクトリ G が必要です。 ---------------------- 7thread.cgi ----------------------- use CGI":all";charset"x-sjis";*i=*param;*e=*escapeHTML;chdir G;i B,$b,open F,"> $b"if($b=e(i S))&&!-e$b;$b||=i(B);*x=*textfield;open F,"+<$b";[<F>];seekF,0,2;s !http://.+$!a{href,$&},$&!emg,s/\n/br/eg,$n=e(i N)||'七氏',print F dt(++$.,':'. b(a{i(M)&&(href,'mailto:'.e(i M))},$n),':'.localtime),dd($_.p),"\n"if$_=e(
i T); seek F,0,0;put header,start_html($b),h1($b),startform,(i B)?dl(<F>).a{href,'?'} ,'一覧':ol(li[map{a{href,"?B=$_"},$_}sort{-A$a<=>-A$b}<*>]).hr.'スレ'.x(S),hidden (B),br,submit,'名前',x(N),'MAIL',x(M),br,textarea(T,'',6,80,1),endform,end_html ------------------------------------------------------ http://medaka.5ch.net/test/read.cgi/php/1036141603/173
174: nobodyさん [] 03/12/01 20:35 ID:lEOu0k9S モジュールありだったらいくらでも短くできるのでは? http://medaka.5ch.net/test/read.cgi/php/1036141603/174
175: nobodyさん [] 03/12/01 23:22 ID:i/vnv4B8 #!/usr/bin/perl #7blosxom.cgi use CGI':all';use File::Find;($p,$y,$m,$d)=grep/^\D+$/,(@i=split'/',path_info), grep/^\d+$/,@i;find sub{($f=$File::Find::name)=~/\.txt$/and $e{$f}=-M},"./$p"; put header,start_html;for(sort{$e{$a}<=>$e{$b}}keys%e){($c,$x,$z)=(localtime( time-86400*$e{$_}))[3..5];if(!($y&&$y!=$z+1900||$m&&$m!=$x+1||$d&&$d!=$c)&&-f&& open F,$_){s/^\.\///;chomp($t=<F>);put h2 a({href=>url."/$_"},$t),pre<F>,hr; close F}}put end_htm
l __END__ 変更点 < shift@i はいらなかった。 < [5,4,3] をスライスに変更。 < 変数をまとめて宣言。 >174 そうだね。過去ログを読めばわかる通り、それは人によって意見がわかれる所。標準モジュールはokとか。 自分は、モジュールを使っても既存のリソースの有り合わせでおもしろいものが出来ればいいなと思ってる。 wikiもCPANのWiki::関連のモジュールを使えば制限内でも、もっと機能追加出来そうだし。 ただし、短くするためにわざわざモジュールを作る気はなし。 http://medaka.5ch.net/test/read.cgi/php/1036141603/175
176: nobodyさん [sage] 03/12/02 14:16 ID:??? >>175 h2タグの中にpreタグ(と本文)が入るのですが・・・ http://medaka.5ch.net/test/read.cgi/php/1036141603/176
177: nobodyさん [sage] 03/12/02 18:25 ID:??? >>175 Blosxom 知らんかったので和訳サイト読みながらゴニョゴニョ中。 動作確認用の txt ファイルセット用意してくれたら嬉しい。日付と 中身が違うファイルを沢山作るのは結構ダルい。;) http://medaka.5ch.net/test/read.cgi/php/1036141603/177
178: nobodyさん [sage] 03/12/02 22:21 ID:??? >>173 足したり引いたりしてみた。 use CGI":all";*i=*param;*x=*textfield;sub e{escapeHTML i(pop)}chdir G;-e($b=i(B )||e S)or open F,">$b";open F,"+<$b";eval{flock F,2};[<F>];s!http://.+$!a{href, $&},$&!eg,s/\n/br/eg,print F dt($.+1,':',b(a{href,'mailto:'.e M},e(N)||nobody), ':'.localtime),dd($_),"\n"if$_=e T;seek F,0,0;put header,start_html($b), startform,$b?h1($b).dl(<F>).hidden(B,$b).a{href,'?'},list:ol(li[map{a{href, "?B=$_"},$_}sort{-M
$a<=>-M$b}<*>]).thread.x(S),br,submit,NAME,x(N),MAIL,x(M),br ,textarea(T,'',6,80,1),endform,end_html http://medaka.5ch.net/test/read.cgi/php/1036141603/178
179: nobodyさん [sage] 03/12/02 23:32 ID:??? >>177 #!/usr/bin/perl @c=('a'..'z','A'..'F');$t=time;sub j{join'',@c[$_[0]..$_[0]+2]}for(0..23){open( T,'>'.($f=j($_).'.txt'))||die$!;print T j($_),"\n",j($_+3),"\n",j($_+6);utime( $t,$t,$f)||die$!;$t-=25000}opendir(D,'.')||die$!;@f=grep!/^\./,sort readdir D; $t=(stat$f[0])[9]-32000000;for(@f){open(S,$_)||die$!;s/^(\w+)/++$i.uc$1/e;open( D,">$_")||die$!;print D map uc,<S>;utime$t,$t,$_;$t-=50000} http://medaka.5ch.net/test/read.cgi/php/1036141
603/179
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 273 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s