More ... | ネタ:自己出力プログラムHSPで自分自身を出力させてみよう。というネタ。プログラミングパズルの定番じゃないかと思う。 で、とりあえず、作ってみた。 sdim a,256,10 a.0="sdim a,256,10" a.1="for i,0,10:c=\"\":d=\"\":strlen l,a.i" a.2=" for j,0,l:strmid c,a.i,j,1" a.3=" if (c=\"\\\\\")|(c=\"\\\"\"):d+=\"\\\\\"" a.4=" d+=c" a.5=" next" a.6=" k=i:str k:mes \"a.\"+k+\"=\\\"\"+d+\"\\\"\":next" a.7="a.0=\"mes a.0\"" a.8="mes a.0" a.9="for i,1,10:mes a.i:next:stop" mes a.0 for i,0,10:c="":d="":strlen l,a.i for j,0,l:strmid c,a.i,j,1 if (c="\\")|(c="\""):d+="\\" d+=c next k=i:str k:mes "a."+k+"=\""+d+"\"":next a.0="mes a.0" mes a.0 for i,1,10:mes a.i:next:stop 議論の叩き台になると思うので、上のコードはできるだけいじらないで下さいな。--iwata 改良案など
例のブツです|・)ノsdim s,1024:str q:poke q,0,34:sdim t,1024:t="+q:s+s+t:poke s,44,34:poke s,128,34:mesbox s,winx,winy:stop;Output clone of myself!":s="sdim s,1024:str q:poke q,0,34:sdim t,1024:t='+q:s+s+t:poke s,44,34:poke s,128,34:mesbox s,winx,winy:stop;Output clone of myself!':s="+q:s+s+t:poke s,44,34:poke s,128,34:mesbox s,winx,winy:stop;Output clone of myself!
卑怯かもしれないけどstr a bload "hsptmp",a mes a stop
別例1完全版 やる気なし... 完全版の本質を表したバージョン m = "m" : e = "e" : s = "s" : q = "q" sp = " " : eq = "=" : us = "_" : pl = "(" : pr = ")" : cl = ":" : ps = "+" : lf = "\n" : dq = "\"" : es = "\\" _q = "e + s + sp + eq + sp + dq + es + es + dq + lf + us + q + sp + eq + sp + dq + _q + dq + lf + m + e + s + pl + sp + _q + sp + pr" mes( e + s + sp + eq + sp + dq + es + es + dq + lf + us + q + sp + eq + sp + dq + _q + dq + lf + m + e + s + pl + sp + _q + sp + pr ) 完全版をできるだけ短くしたバージョン m="m":e="e":s="s":n="n" mm="=":ms="(":em=")":ee=":":es="\"":sm="\\":se="\n" nn="m+mm+es+m+es+ee+e+mm+es+e+es+ee+s+mm+es+s+es+ee+n+mm+es+n+es+se+m+m+mm+es+mm+es+ee+m+s+mm+es+ms+es+ee+e+m+mm+es+em+es+ee+e+e+mm+es+ee+es+ee+e+s+mm+es+sm+es+es+ee+s+m+mm+es+sm+sm+es+ee+s+e+mm+es+sm+n+es+se+n+n+mm+es+nn+es+se+m+e+s+ms+nn+em" mes(m+mm+es+m+es+ee+e+mm+es+e+es+ee+s+mm+es+s+es+ee+n+mm+es+n+es+se+m+m+mm+es+mm+es+ee+m+s+mm+es+ms+es+ee+e+m+mm+es+em+es+ee+e+e+mm+es+ee+es+ee+e+s+mm+es+sm+es+es+ee+s+m+mm+es+sm+sm+es+ee+s+e+mm+es+sm+n+es+se+n+n+mm+es+nn+es+se+m+e+s+ms+nn+em) 議論参考: http://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/quine.html |