- 1 名前:デフォルトの名無しさん [02/04/15 12:09]
- 7行×79文字なら言語は問いません。
過去作品は>>2-5を参照。 ■前スレ pc.2ch.net/test/read.cgi/tech/984182993/
- 820 名前:デフォルトの名無しさん [02/09/19 20:40]
- 円周率は
#include <stdio.h> main(){printf("3.14159265358979323846264338327950288419716939937510582097494"); /* 以下略 */ } よりも桁が多いことを願います。 とりあえず、職人さんに (~~~゚∀~~)~~゚ メダマ ボーン
- 821 名前:デフォルトの名無しさん mailto:sage [02/09/19 20:43]
- #include <stdio.h>
main() { char* url = "www.prokofiev.ru/prikol/text/t5/pi.htm"; system(url); return 0; }
- 822 名前:デフォルトの名無しさん mailto:sage [02/09/19 23:29]
- >>814
不特定多数なWinMXみたいな奴でなくて、 相手を登録して交換するスタイル。Grooveとかがそんな感じかなぁ。 七行でできたらビックリだけどね。CUIでそういうの聞いたことないし。
- 823 名前:デフォルトの名無しさん mailto:sage [02/09/20 00:48]
- それもP2Pかもしれないけど、
P2P=ファイル交換じゃないぞ
- 824 名前:デフォルトの名無しさん mailto:sage [02/09/20 04:32]
- なんにせよ、もしできたら凄く便利だと思う
- 825 名前:デフォルトの名無しさん mailto:sage [02/09/20 04:57]
- 便利って・・・・・・別に7行でも覚えられるわけで無し・・・・・・
ぱっと思いつく最小のメディアであるFDに収まる1.44MBに入れば何だって同じ気が。 面白いけどね。
- 826 名前:デフォルトの名無しさん mailto:sage [02/09/20 08:53]
- 今更ながら>>800にワラタ
- 827 名前:トリッキーの1 mailto:sage [02/09/20 15:54]
- 円周率です。意外と七行は簡単でした。オイラーの公式使ってますので収束遅いです。
#include <stdio.h> #define s ( 5000 /*←希望する桁数*/ /4+2) int main(){int i,n,c,t,j,l,a[]={4,9},r[s][4]={0,0,8,12},k=10000;for(n=0;n<s*15 ;n++)for(i=0;i<2;i++){for(c=t=j=0;j<s;r[j++][i]+=((n&1)*-2+1)*l/(2*n+1))t=(l=k *t+r[j][i+2])%a[i],c=(l=k*c+(r[j][i+2]=l/a[i]))%(2*n+1);for(t=0,j--;j+1;r[j--] [i]%=k)t=(r[j][i]+=k+t)/k-1;}for(i=s-(t=1);i+1;*r[i--]%=k)t=(*r[i]=k+*r[i]+r[i ][1]+t)/k-1;printf("%d.",**r);for(i=1;i<s-1;printf("%04d",*r[i++]));return 0;}
- 828 名前:トリッキーの1 mailto:sage [02/09/20 15:56]
- こうやってみるとまだまだ短くなりそうですね。桁数固定にすれば後一行は軽そうです。
- 829 名前:デフォルトの名無しさん [02/09/20 20:47]
- 復活直後にでかいのを持ってきましたね。実質5行だし。相変わらず凄い。
7行にするのって、1字1字縮める技術ももちろんあるけれど、 組む前にデータ構造とアルゴリズムをなるべく文字数を減らすことを念頭に 構想する才能が必要だと思うが、それは知識と知恵の両方を要求するよね。 色々なネタで7行達成している常連の職人さんたちはかなりハイレベルだと思った。
- 830 名前:デフォルトの名無しさん mailto:sage [02/09/20 20:54]
- 有名人が出てくるたびにヨイショするこの雰囲気、
どうにかならんもんかねぇ。 名無しで新しいアイデア出てきても「たいしたことない」と言ってのけるのに。
- 831 名前:デフォルトの名無しさん mailto:sage [02/09/20 20:55]
- 本人がageてないのに他人がageるのも正直ウザい
- 832 名前:デフォルトの名無しさん mailto:sage [02/09/20 21:04]
- ただのひがみかもしれないがマジレス。
有名人をよいしょしているわけではなく、 優れたプログラムを書く人をほめているのでは?
- 833 名前:デフォルトの名無しさん mailto:sage [02/09/20 21:05]
- >>799
UNISYSに通報しますた
- 834 名前:デフォルトの名無しさん mailto:sage [02/09/20 21:29]
- はいはい、そこ雰囲気悪くしない!
作品いっぱい出るのはいいことだし、批評はその作者の次に繋がるので良し! でも830、無意味な煽りは入れない! 次のネタいきましょう、次。
- 835 名前:デフォルトの名無しさん mailto:sage [02/09/20 22:24]
- 次のネタ候補
・FORTH や C, LISP, BASICなどのプログラミング言語のサブセット ・囲碁 ・>>533の前スレの未達成もののうち、このスレでも未達成のもの 特に言語ものは20行以下になったらとりあえず見せて欲しいなぁ。 サブセット言語で作った7行プログラムとか出てきたりして:-P
- 836 名前:デフォルトの名無しさん mailto:sage [02/09/21 00:50]
- 7行でC/C++コンパイラ作ってくだちぃ。
- 837 名前:デフォルトの名無しさん mailto:sage [02/09/21 01:03]
- >>836
四則演算と表示くらいならできるかもしれないが、難しいだろうね。 つーか、>>836よ、インタプリタで良いから作ってみないか?
- 838 名前:デフォルトの名無しさん mailto:sage [02/09/21 01:23]
- >>837
>四則演算と表示くらいなら... マジで!?それともネタ? 冗談で言ったつもりなんだが… >インタプリタで良いから... 技術のない漏れには作れません...
- 839 名前:デフォルトの名無しさん mailto:sage [02/09/21 02:32]
- VTL系のBASICはどうなのかな?
オリジナルは768バイトなんでしょ?
- 840 名前:デフォルトの名無しさん mailto:sage [02/09/21 02:59]
- マンセーうぜー言われるかもしれないが、やっぱり>>827は(・∀・)イイ!
- 841 名前:デフォルトの名無しさん mailto:sage [02/09/21 05:50]
- FORTHモドキ(逆ポーランド電卓か?)。オペレータは+-*/.のみ。
#include <stdio.h> W[1000],*S=W,c,v;G(){c=getchar();}g(){v=0;do v=v*10+c-48;while((G(),c)-48<10U) ;return v;}main(){G();while(~c)c==45?G(),c-48>9U?v=*S--,*S-=v:(*++S=-g(),G()): (c-48<10U?*++S=g():c==43?v=*S--,*S+=v:c==42?v=*S--,*S*=v:c==47?v=*S--,*S/=v:c- 46?c-32&&c-10&&printf("err\n"):printf("ok\n%d\n",*S--),G());}
- 842 名前:デフォルトの名無しさん mailto:sage [02/09/21 10:04]
- 既出ネタのチェックはしてから話題振ることにせんか?
・四則演算 >>5
- 843 名前:デフォルトの名無しさん mailto:sage [02/09/21 10:22]
- 多倍長整数、さらには有理数演算に対応しろと言ってみる。
- 844 名前:デフォルトの名無しさん mailto:sage [02/09/21 11:58]
- ・何かをグラフィック
・非常に便利な関数を7行で作成 w
- 845 名前:デフォルトの名無しさん mailto:sage [02/09/21 14:51]
- >>842 ごめん、正直指摘間違いでは?、と始め思った。
つーか、>>841の勘違いですね。 四則演算はすでにあります。要求されたのは、 ・FORTHのサブセット あるいは ・四則演算のみ可能な C/C++ !!コンパイラ!! ですよん。そして、 ・多倍長整数、有理整数演算、浮動小数演算などに対応 が追加されますた。
- 846 名前:79文字で問題を出してみる(w mailto:sage [02/09/21 15:02]
- 問題:単なるクリックソートより早いqsort()互換のソート関数を79文字7行で記述せよ。
- 847 名前:846 mailto:sage [02/09/21 15:03]
- >846にパッチ当て。
---問題:単なるクリックソートより早いqsort()互換のソート関数を79文字7行で記述せよ。 +++問題:単なるクイックソートより早いqsort()互換のソート関数を79文字7行で記述せよ。
- 848 名前:デフォルトの名無しさん [02/09/21 16:42]
- >>835
いいだしっぺの法則
- 849 名前:デフォルトの名無しさん mailto:sage [02/09/21 17:22]
- 将棋作れ!
- 850 名前:デフォルトの名無しさん mailto:sage [02/09/21 17:47]
- ┃激┃し..┃く..┃ず┃れ┃て┃鬱┃だ.┃が┃
┣━╋━╋━╋━╋━╋━╋━╋━╋━┫ ┃こ.┃れ┃で┃12┃行┃な.┃ん┃だ┃YO┃ ┣━╋━╋━╋━╋━╋━╋━╋━╋━┫ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣━╋━╋━╋━╋━╋━╋━╋━╋━┫ ┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃ ┣━╋━╋━╋━╋━╋━╋━╋━╋━┫ ┃ ┃角┃ ┃ ┃ ┃ ┃ ┃飛┃ ┃ ┣━╋━╋━╋━╋━╋━╋━╋━╋━┫ ┃香┃桂┃銀┃金┃王┃金┃銀┃桂┃香┃ ┗━┻━┻━┻━┻━┻━┻━┻━┻━┛
- 851 名前:デフォルトの名無しさん mailto:sage [02/09/21 17:48]
- 激しくはずれなくてうれしいw
- 852 名前:デフォルトの名無しさん mailto:sage [02/09/21 17:49]
- 敵の歩なんかはどうしたらいいのさ?
┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃ ┣∨╋∨╋∨╋∨╋∨╋∨╋∨╋∨╋∨┫ とか?
- 853 名前:デフォルトの名無しさん mailto:sage [02/09/21 17:53]
- ニフで昔あった将棋は
|歩v|歩^| で表現していたな コンピュータの思考ルーチンが激しく難しそうだ
- 854 名前:デフォルトの名無しさん [02/09/21 23:20]
- 前のスレッドにあった自動インデントプログラムを機能拡張・7行版にしてみました。
使用方は program.exe(仮称) 入力ファイル名 出力ファイル名 です。 #include <stdio.h> FILE *s,*o;I,c,d;G(){return c=getc(s);}P(){c-10&&putc(c,o);}R(){putc(10,o);}T(t ){while(t-->0)putc(9,o);}S(p){d=1;P();while(~G()&&(P(),c!=41||--d))c-p||++d;}Q( p){P();while(~G()&&(P(),c!=p))if(c==92||_ismbblead(c))P(G());}main(a,v)char**v; {s=fopen(v[1],"r");o=fopen(v[2],"w");while(~G())c==63||c==58?R(),T(I),P():c==34 ||c==39?Q(c):c==40?S(c):c=='{'?R(),T(I),P(),R(),T(++I):c=='}'?fseek(o,-1,1),P() ,R(),T(--I):P(),c==59&&(R(),T(I));}
- 855 名前:デフォルトの名無しさん mailto:sage [02/09/21 23:36]
- >将棋
駒は数字で表せばいいじゃん。 王金銀桂香飛角歩 +1+2+3+4+5+6+7+8 玉金銀桂香飛角歩 -1-2-3-4-5-6-7-8
- 856 名前:デフォルトの名無しさん mailto:sage [02/09/21 23:55]
- >>855
お前は数字を見て将棋だと言えるのか? #現実問題、数字にでもしなければ不可能だとは思うが #つーか数字にしても不可能だろ(w
- 857 名前:デフォルトの名無しさん mailto:sage [02/09/22 00:02]
- 囲碁の九路盤みたいに、将棋もサブセットがあればいいのだが・・・詰め将棋か?
- 858 名前:デフォルトの名無しさん mailto:sage [02/09/22 00:08]
- 詰め将棋だと駒が全部必要になってしまうのではさみ将棋はどうでしょう?
- 859 名前:デフォルトの名無しさん [02/09/22 00:09]
- 王 玉
金 キン 銀 ギン 桂 ケイ 香 車 飛 ヒシャ 角 カク 龍 リュウ 馬 ウマ 歩 フ と ト でいけるんじゃ?
- 860 名前:デフォルトの名無しさん mailto:sage [02/09/22 00:13]
- >>859
それだったら漢字+「符号」とか「色」で区別した方が扱いも容易 つーか、>>859だと駒の表現だけで2行くらい使ってしまうぞぅ
- 861 名前:デフォルトの名無しさん mailto:sage [02/09/22 00:14]
- >>858
もはや別のゲームだが、面白いかもしれない。 コンピュータの思考ルーチンも簡単にかけるし。 よし、いっちょ作ってみるか。>>858が。
- 862 名前:デフォルトの名無しさん mailto:sage [02/09/22 00:15]
- >>859
タマキン
- 863 名前:858じゃないけど mailto:sage [02/09/22 03:31]
- はさみ将棋 現在9行+3文字 とりあえず動く版を作成
ルールは●○を縦横に移動させ、相手をはさむと取れます ただし、辺を使ってはさんでも無効です 角をはさむのは正式ルールなのかわからなかったので、今のところ無効 移動方法は移動元(x,y)と移動先(m,n)の4整数で指定、左上が(1,1) 1 2 3 4 [RET] コンピュータの思考ルーチンはまだなので、ランダムに移動します 今は、関数c()で動作を決めるようになっているので、どなたか作成をば! 変数vが移動元で変数zが移動先になってまつ。 int w[]={1,-1,12,-12},h[3],b[132],u=1,z,y,m,n,i=132,v,d=1;r(p,a,f,z){if(b[z=p+w [a]]==(u^3)){d++;r(z,a,f);f?b[z]=0:0;}if(b[z]==3||!b[z])d=0;}o(x,y,m,n){d=0;z=x +y*12;v=m+n*12;if((x!=m&&y!=n)||b[z]!=u||b[v]!=0)d=1;if(x==m){for(;y++<n;)d+=b[ x+y*12];}else if(y==n){for(;x++<m;)d+=b[x+y*12];}}c(){for(d=1;d;){for(i=132;i-- ;)if(b[i]==2)v=i,i=0;z=rand()%132;o(v%12,v/12,z%12,z/12);}}main(x){for(;i--;b[i ]=z-11?z&&z-10&&i-12U<109?z-1?z-9?0:2:1:3:4)z=i%12;for(;;){printf("%d:%d %d\n", u,h[1],h[2]);for(i=11;i++<131;)printf("・\0●\0○\0 \0\n"+b[i]*3);if(h[2]>7||h [1]>7)break;if(u<2){scanf("%d%d%d%d",&x,&y,&m,&n);o(x,y,m,n);if(d&&puts("Err")) continue;}else c();b[z]=0;for(i=4;i--;d?r(v,i,1):0)r(v,i,0),h[u]+=d;b[v]=u;u^=3;}}
- 864 名前:858じゃないけど mailto:sage [02/09/22 05:20]
- >>863
あー、移動可能判定間違えてました。現在修正中です。
- 865 名前:858じゃないけど mailto:sage [02/09/22 05:48]
- >>863
移動判定ミス修正、簡易思考ルーチン装備、やや縮めた版です。 int w[7]={1,-1,12,-12},b[132],u=1,z,y,m,n,i=132,v,d=1;r(p,a,f,z){b[z=p+w[a]]==3 -u?d++,r(z,a,f),f?b[z]=0:0:b[z]-1U>1?d=0:0;}o(x,y,m,n,p,a){d=b[v=m+n*12]+(b[a=z =x+y*12]!=u||(x-m&&y-n)?1:0);for(p=x==m?y<n?2:3:x<m?0:1;!d&&a!=v;)d+=b[a+=w[p]] ;}c(j,k,s,f,g){s=-1;for(i=120;i--;d=0)for(j=120;b[i]==u&&j--;)for(o(i%12,i/12,j %12,j/12),k=4;!d&&k--;d>s||d==s&&rand()%j<1?s=d,f=z,g=v:0)r(v,k,0);z=f;v=g;} main(x){for(;i--;b[i]=z-11?z&&z-10&&i-12U<109?z-9?z-1?0:1:2:3:4)z=i%12;for(;;){ printf("%d:%d %d",u,w[5],w[6]);for(i=9;++i<120;)printf("・\0●\0○\0 \0\n"+b[i ]*3);if(w[5]>7||w[6]>7)break;u<2?scanf("%d%d%d%d",&x,&y,&m,&n),o(x,y,m,n):u>1&& c();if(d&&puts("Err"));else{b[z]=0;for(i=4;i--;d?r(v,i,1):0)r(v,i,0),w[4+u]+=d; b[v]=u;u^=3;}}}
- 866 名前:デフォルトの名無しさん mailto:sage [02/09/22 08:48]
- >>865
相手のコマの上に持っていってエラーが出ても、相手のコマを消して続くぞ。
- 867 名前:858じゃないけど mailto:sage [02/09/22 16:47]
- >>866
1 1 9 1 等では再現しませんでした・・・ よろしければ、棋譜(?)を教えてください。
- 868 名前:デフォルトの名無しさん mailto:sage [02/09/22 16:55]
- >>867
俺は1 1 9 1 で一発再現。コンパイラ依存か?gccだけど あと、1 1 91 1 とかも出来たりして、好きな場所にとばせるが、これは仕方ないか
- 869 名前:デフォルトの名無しさん mailto:sage [02/09/22 22:49]
- だれか7行grepよろしく
- 870 名前:デフォルトの名無しさん mailto:sage [02/09/22 23:17]
- #!/usr/local/bin/ruby
$pattern = ARGV.shift while gets print if /#{$pattern}/ end
- 871 名前:デフォルトの名無しさん mailto:sage [02/09/22 23:18]
- >>868
#!/usr/local/bin/perl `grep @ARGV`;
- 872 名前:デフォルトの名無しさん mailto:sage [02/09/22 23:53]
- >>871 せめて
$p=shift;$f=shift||"-";open H,$f;while(<H>){/$p/&&print $_} perl grep.pl pattern file.txt perl grep.pl pattern < file.txt の両方を受け付けるように、という縛りをつけたらperlの短縮のいい例題になりますた。 見てのとおり初心者ですが、ここのスペースは要る、要らんとかいろいろあってなかなか 面白かったです。 まだパーサの改良ができるかもしれないです。 しかし、1行でこれだと7行は相当に死ねるな・・・・・・
- 873 名前:デフォルトの名無しさん mailto:sage [02/09/23 00:05]
- while(<>){/$ARGV[0]/&&print $_}
<>の仕様が良く分かってませんでした。 道理で最初に試したのがうまく動かなかったわけだ。
- 874 名前:デフォルトの名無しさん mailto:sage [02/09/23 00:06]
- あ、違った、こっちです。上のは動きませぬ。連投すま・・・・。
$p=shift;while(<>){/$p/&&print $_}
- 875 名前:871 mailto:sage [02/09/23 00:22]
- まさかネタに突っ込まれるとは思わなかった。
>>874 >print $_; print; でいけます。
- 876 名前:871 mailto:sage [02/09/23 00:26]
- $a=shift;/$a/&&print while(<>);
- 877 名前:デフォルトの名無しさん mailto:sage [02/09/23 01:01]
- >>876
惜しい。 $a=shift;/$a/&&print while<> でも始めから7行以内に収まる事が分かってるようなネタで 盛り上がるのは止めてもらえまいか。 どうせなら10行くらいから頼む。
- 878 名前:デフォルトの名無しさん mailto:sage [02/09/23 01:24]
- >>822
つーかそれって単なる認証付きファイル検索なのでは? 認証して自分の所のファイル検索するCGIとそのクライアントのセット? 呼び出し用鯖も作れば余計なhtttpシーケンス省けるかな?
- 879 名前:871 mailto:sage [02/09/23 01:24]
- >>877
while(<>) => while<> うおぉ!そんな省略まで…。 >どうせなら10行くらいから そうでつね。了解しました。
- 880 名前:デフォルトの名無しさん mailto:sage [02/09/23 02:06]
- C言語でgrepを実装するのは正規表現を実装することだからそれなりに面白いと思われ。
どこまで行けるんだろ。
- 881 名前:デフォルトの名無しさん mailto:sage [02/09/23 04:18]
- >>877
んじゃ、Cで作れ。 正規表現解析機を7行で実現しろって意味だったんだが、 perlとか糞Rubyに走るな
- 882 名前:877 mailto:sage [02/09/23 05:37]
- >>881
>>869 さんかい? このスレは言語問わずだから、 このお題の出し方じゃPerlやRubyで応えられても文句言えないぞ(笑)。 俺は >>872 の段階で既に7行どころか1行に収まっているコードを 書き込み続けるのを止めて欲しかっただけなんだが、表現が悪かったかな。 「ネタ」ってのは「*Perlで* 7行grep」を意図してる。他の言語は知らんよ。 出されたネタに対しどの言語で組むかは自由だと思うが、 簡単に達成できる言語で応えるのは控えて欲しい。面白くないし。 反対に、PerlやRubyでも7行に縮めるのが難しそうなネタなら大歓迎。 JavaやJavaScriptでも言語の特色を活かした作品いっぱい出てるしね。
- 883 名前:デフォルトの名無しさん mailto:sage [02/09/23 07:30]
- >>881
「正規表現解析機」て…。
- 884 名前:デフォルトの名無しさん mailto:sage [02/09/23 10:53]
- なんだか私のせいで荒れたようで……。
申し訳ありませんでした。つい出来て嬉しくて書き込んでしまいました。 初心者だからといって、ここでは発表せず、脳内にとどめた方がよさそうですね。
- 885 名前:デフォルトの名無しさん mailto:sage [02/09/23 13:20]
- 厨だなぁ・・・
ほんと最近レベル落ちてるな。色々な意味で
- 886 名前:デフォルトの名無しさん mailto:sage [02/09/23 13:39]
- お題:平安京エイリアン
- 887 名前:デフォルトの名無しさん mailto:sage [02/09/23 22:16]
- しかし気にしすぎじゃない?。
まあ例えばprintfを7行でと言われても、結局テクニックの問題なんだし 単にそれが凄いのか凄くないのかって事なんだからさあ。確かにどうせなら それを応用して7行使ったビックリするようなものが見てみたいけどね。 ところでゲームといえば冷たい方程式系のシミュレーションはどうだろう? アポロ13号とか、どっかのガス欠気味の人工衛星や探査機とかにコマンド送って 操作するような奴。それともまずは定番の月着陸からだろうか?
- 888 名前:デフォルトの名無しさん [02/09/24 17:23]
- VTL系のBASICはどうなのかな?
オリジナルは768バイトなんでしょ?
- 889 名前:デフォルトの名無しさん mailto:sage [02/09/24 19:57]
- >>888
過去ログ
- 890 名前:デフォルトの名無しさん [02/09/25 00:39]
- HSPスレがなぜか姉妹スレ化してる…
game.2ch.net/test/read.cgi/gamedev/1005332663/l50
- 891 名前:デフォルトの名無しさん mailto:sage [02/09/25 00:41]
- game.2ch.net/test/read.cgi/gamedev/1005038280/l50
- 892 名前:デフォルトの名無しさん mailto:sage [02/09/25 01:05]
- >>889
そもそも私(>>839)のコピペ。 でネタ自体は>>11で既出だったらしい。 ちなみに前スレや>>612>>626のは予約語からして普通のBASIC じゃないかな?それともなにか見逃してる? もっと中間コード風でGAMEIIコンパイラみたいな奴。
- 893 名前:デフォルトの名無しさん mailto:sage [02/09/25 05:05]
- >>892
自分でやれ
- 894 名前:60cm浮き上がるストレート [02/09/25 06:22]
- ○ラクエです。20行もオーバーしてしまいました。どなたか縮めてください。
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,z[6],r,x[9],y[9];char o[][9]={"アリーナ","クリフト" ,"ブライ","スライム","マーマン","トロル","オーク","キメラ","竜王","攻撃","防御","イオ","ホイミ","ヒャド" ,"who?","唱えた","ダメージ","回復","死んだ","敵出現","勝利","クリア","全滅","した", "に","の","は","を","▼","\x1b[2J"," ","MP不足","\x1b[0m","\x1b[31m", "\x1b[32m","\x1b[>5h"},q[]="00533", p[]="vlb:XvlXvvlb:XvlXv:?B06060?:?B06060?SI?5?SNXSA?<2?2:?D234040302"; main(){srand(time(0));S(35);for(r=0;r<=3;r++){S(19);S(28);for(b=3;b<6;b++) {p[r+b]=p[r+b+9];p[r+b+18]=p[r+b+27];}for(l=0;l/10!=3;){for(b=0;b<3;b++) {if(p[b]!=48){N();S(b);C(63);C(10);for(c=1;c<4;c++){D(c);C(58);S(8+c+c/3*b); C(10);}d=getch()-49;x[b]=d+d/2*b;if(d==0||(d==2&&b>0)){C(10);S(14);C(10); for(c=1;c<4;c++){e=x[b]==3?c-1:r+c+2;if(p[e]!=48){D(c);C(58);S(e);C(10);}} e=getch()-49;y[b]=x[b]==3?e:r+3+e;}}S(29);}for(b=r+3;b<r+6;b+=p[y[b]]!=48?1:0) {d=x[b]=rand()%2==0?0:p[b+54]-48;e=rand()%3;y[b]=d==3?r+3+e:e;}for(n=0;n<6;
- 895 名前:60cm浮き上がるストレート [02/09/25 06:22]
- >>894の続き
n++){z[n]=6;d=rand()%6;z[n]=d>2?r+d:d;for(b=n-1;b>-1;b--)n-=z[n]==z[b]?1:0;} for(n=0,l=0;n<6&&l/10!=3;n++){b=z[n];if(p[b]!=48){N();d=x[b];S(b);d==0? (S(25),S(9)):d==1?(S(26),S(10),S(23)):(S(26),S(d+9),S(27),S(15));C(7);C(10); if(d<2||p[b+18]!=48){p[b+18]-=q[d]-48;e=y[b];f=p[b+36]-p[e+45];f=d==0?f<1?2:f: d==2?20:d==4?30:0;if(d==2)for(g=b<=2?r+3:0,h=0;h<3;h++)Z(g+h);else Z(e); for(k=0,l=0;k<r+6;k+=k==2?r+1:1)l+=p[k]==48?k<3?1:10:0;if(l%10==3){S(22); S(28);exit(1);}if(l/10==3){S(20);S(23);}}else S(31);S(28);}}}}S(21);S(28);} S(a){printf("%s",o[a]);a==28?(getch(),S(29)):a;}P(a){printf("%3d",p[a]-48);} D(a){printf("%d",a);}C(a){printf("%c",a);}N(){for(a=0;a<3;a++){S(a);P(a); P(a+18);C(10);}for(a=3;a<6;a++){S(p[a+r]!=48?a+r:30);C(10);}C(10);}Z(a){ if(p[a]!=48&&d!=1){S(a);if(d%2==0){S(24);m=f*(rand()%4+8)/10;p[a]-=m/=x[a]==1 ?2:1;D(m);S(16);p[a]<49?(p[a]=48,C(10),S(18)):a;}if(d==3){S(26);S(17);S(23); p[a]=p[a+9];}C(10);S(32);for(c=0,m=0;c<3;c++)m+=p[c]<49?4:p[c]<64?1:0;m>3? S(33):m>0?S(34):m;}}
- 896 名前:デフォルトの名無しさん [02/09/25 06:53]
-
>>880 おいお前ら、これを7行にしてください。 typedef unsigned char *U;U Z[9999],H[9999],P,Q,s,t,u,r,n;o,p;N(c){u=Q;*Q++=c;*Q ++=0;*Q++=0;return u;}C(b){*Q++=b;}I(c){return c&&strchr("*+?",c);}X(U p){o=(p[ 1]<<8)|p[2];return o?p+(*p==7?-o:o):0;}S(U p){s=Q;Q+=3;while(s-->p)s[3]=*s;*p=6 ;p[1]=p[2]=0;}T(U p,U v){for(s=p;t=X(s);s=t);s[2]=o=*s==7?s-v:v-s,s[1]=o>>8;}O( U p,U v){*p==6&&T(p+3,v);}M(U e){int f;P=e;Q=Z;G(0,&f);}L(c,F)int*F;{if(c-91)c- 92?--P:*P||E(),s=N(8),C(*P++);else{s=N(*P==94?P++,5:4);if(*P==93||*P==45)C(*P++ );while(*P!=93)if((*P||E()),*P-45)C(*P++);else if(*++P==93||!*P)C(45);else{for( c=P[-2];c<=*P;c++)C(c);P++;}P++;}*F|=1;C(0);}G(p,F,f)int*F;{U r,b,e;p?r=N(10),T (r,B(&f)):(r=B(&f));for(*F=1;f&1||(*F&=~1),*F|=f&2,*P=='|';P++,T(r,B(&f)));T(r, e=N(p?11:0));for(b=r;b;b=X(b))O(b,e);if(p?*P++-41:*P)E();return r;}E(){exit(2); }B(F,f,g,h)int*F;{U r=N(6),c=0,l;for(*F=0;*P&&*P-'|'&&*P-41;p=*P++,g=0,l=p==94? N(1):p==36?N(2):p==46?g|=1,N(3):p==40?s=G(1,&h),g|=h,s:strchr("|)?+*",p)?E():(L (p,&g),s),p=*P,I(p)?g&1||p==63||E(),f=p-43?2:1,p==42?S(l),O(l,N(7)),O(l,l),T(l, N(6)),T(l,N(9)):p==43?T(l,n=N(6)),T(N(7),l),T(n,N(6)),T(l,N(9)):p==63?S(l),T(l, N(6)),T(l,n=N(9)),O(l,n):0,I(*++P)&&E():(f=g),*F|=f&1,c?T(c,l):(*F|=f&2),c=l);c ||N(9);return r;}A(U s){Q=s;do{P=s;if(D(Z))return 1;}while(*s++);return 0;}main (c,v)char**v;{M(v[1]);while(gets(H))if(A(H))puts(H);}D(U s){for(;;s=n){n=X(s);p =*s;if(!p||p==1&&P!=Q||p==2&&*P||p==3&&!*P++||p==4&&(!(o=*P++)||!strchr(s+3,o)) ||p==5&&(!(o=*P++)||strchr(s+3,o))||p==8&&(memcmp(s,P,o=strlen(s+=3))||(P+=o,0) ))return!p;if(p>9)return D(n);if(p==6)if(*n==6){do{U t=P;if(D(s+3))return 1;P=t ;s=X(s);}while(s&&*s==6);return 0;}else n=s+3;}}
- 897 名前:デフォルトの名無しさん [02/09/25 19:18]
- pc3.2ch.net/test/read.cgi/tech/1004395614/l50
将棋キター
- 898 名前:デフォルトの名無しさん [02/09/25 21:31]
- >>894-895
いろんな意味で凄いな…
- 899 名前:デフォルトの名無しさん mailto:sage [02/09/26 01:28]
- >>894-895
やってみたけど、ある意味悲惨… ここまでして○ラクエやりたいとは 思わない。 でもがんばりは評価。
- 900 名前:デフォルトの名無しさん [02/09/26 03:16]
- 900達成! PART.2とPART.1未達成やその他スレの話題まとめ >>901
○7行達成されているもの ×未達成のもの ※レス番号では提示したり達成したりした番号を表示 ※おふざっけぽいものは抜いてありますが、ホカソ希望はご自由に ※次のスレでこのレス番号を記載するか、コピペしてください ※間違いがあったらごめんね
- 901 名前:デフォルトの名無しさん mailto:sage [02/09/26 03:16]
- ゲーム系
○スロットゲーム >>16 ○迷路 >>171>>366>>472-473 ○ピンポン >>191 ○テトリス >>212 ○障害物よけゲーム >>224 ○パックマソ >>313 ○15パズル >>561>>591 ○暇つぶしゲーム >>746 ×ブロック崩し >>643>>642 ×詰めロードランナー >>634-635>>651 ×3D迷路 >>662>>698 ×囲碁 >>757>>771 ×はさみ将棋 >>863>>865 ×○ラクエ >>894-895 ×将棋(pc3.2ch.net/test/read.cgi/tech/1004395614/760-761) >>897
- 902 名前:デフォルトの名無しさん mailto:sage [02/09/26 03:17]
- 圧縮
○ブロックソーティング >>386-387 ○rangecoder >>512-513>>553 ○Huffman符号 >>572>>750>>752 ○スライド辞書圧縮 >>580>>596>>600>>616>>629 ○RLE >>696>>728 ○アーカイバ >>729>>736>>739>>741 ○LZW >>799
- 903 名前:デフォルトの名無しさん mailto:sage [02/09/26 03:18]
- グラフィックス
○PDTビューワ >>70 ○フラクタル画像出力 >>108>>703-705 ○アスキーアート >>202 ○バナー生成 >>204 ○bmp2ppm >>474>>>476 ○PNG >>491 ○マンデルブロー >>514 ×BMP >>131 ×レイトレーシング(pc3.2ch.net/test/read.cgi/tech/984182993/209) >>711 ×波紋 pc3.2ch.net/test/read.cgi/tech/984182993/678 ×パーティクル pc3.2ch.net/test/read.cgi/tech/984182993/675-676
- 904 名前:デフォルトの名無しさん mailto:sage [02/09/26 03:19]
- 計算
○素数列挙 >>74>>81>>810 ○CRC >>447-448 ○DCT >>462>>468 ○ヒルベルト曲線 >>644>>652 ○SHA1 >>668>>724 ○円周率 >>827 ネットワーク ○proxy >>208 ○SMTPクライアント >>285-286 ○SNTPクライアント >>311-312 ○POPクライアント >>475 ○jis2sjis >>496-497>>506 ×FTPもどき >>332 ×POPクライアント+jis2sjis >>510 ×チャット >>529>>547
- 905 名前:デフォルトの名無しさん mailto:sage [02/09/26 03:21]
- ツール
○インデントツール >>105>>129>>129>>854 ○ひたんぼ語フィルタ >>317>>321 ○時計 >>410 ×インデントツール >>327 ×grep >>896 デモ ○ねたをくれなんていってる時点で間違ってたんだ…(w >>350>>363 ○砂嵐 >>384
- 906 名前:デフォルトの名無しさん mailto:sage [02/09/26 03:22]
- 言語
○FORTHもどき >>841 ×BASIC(pc3.2ch.net/test/read.cgi/tech/984182993/497-518) >>626 その他 ×FreeBSDのdmesg|head -6を表示 >>730
- 907 名前:前スレ853 mailto:sage [02/09/26 04:36]
- あー。Perl 用空白除去ツールは 7 行達成してます。
$_=join" ",grep{s/(^\s*#.*)|\s+/ /g;length}<>;%k='()<>[]{}'=~/./g;s~(.*?)((?: (?:(?<![\$\%\&\*\@])(?:(?:m|q[qrwx]?)(?:([(<[{]).*?$k{$3}|([^(<[{ \w]).*?\4)| (?:s|tr|y)(?:([(<[{]).*?$k{$5}\ *\5.*?$k{$5}|([^(<[{ \w]).*?\6.*?\6))|(?<![\w]) /(?:\\/|[^/])*/)[a-z]*)|"(?:\\"|[^"])*"|'(?:\\'|[^'])*')~push@c,$1,$2;''~egx;$q =$c[0]=~m!^["'/]|([msy]|q[qrwx]?|tr)[^ \w]!;($_,@c)=map{++$q%2?split:$_}@c,$_; sub j{$_.=$_[0].shift@c}sub l(){length$_.$c[0]}sub p{print"$_\n";$_=shift@c}sub w(){/\w$/&&$c[0]=~/^\w/}78<l?79<l?p:w?p:j&&p:w?j" ":j while@c;p; コメント付きはここに。 boobar.hoops.ne.jp/rms/
- 908 名前:デフォルトの名無しさん mailto:sage [02/09/26 05:19]
- まとめ乙です〜。
970ぐらいで次スレに移ったときにコピペしましょ。
- 909 名前:デフォルトの名無しさん mailto:sage [02/09/26 05:27]
- ○ラクエで思い出したけど、プログラムポシェットにも1画面RPGってあったよね。
あれ七行で出来ないかな…。マップ移動もあるやつ。
- 910 名前:60cm浮き上がるストレート [02/09/26 14:18]
- >>909マップ移動のみ。1~9で移動します。黒いところに行くと終了します。
char x,y,Y,X,m[][12]={"47764454244","77762222244","77622111224","66221111224", "22221111244","42222422224","22222522224","42222422044","22224422224", "44224424444","44444454444"},g;main(){printf("\x1b[>5h");for(y=x=1;;){for(Y=X= -2;Y<3;X==2?(X=-2,Y++):X++)printf("\x1b[%d;%dH\x1b[%dm\x1b[%dm ",Y+13,X*2+40, Y==0&&X==0?5:0,m[L(y+Y)][L(x+X)]-8);if(y==7&&x==8)exit(1);g=getch();if(g>48&&g <58){y+=1-(g-49)/3;x+=(g-49)%3-1;y=L(y);x=L(x);if(m[y][x]==49||m[y][x]==52){y -=1-(g-49)/3;x-=(g-49)%3-1;}}}}L(a){a-=a>=11?11:0;a+=a<=-1?11:0;return a;}
- 911 名前:デフォルトの名無しさん mailto:sage [02/09/26 14:28]
- 今度はここに出没かよ!>60
- 912 名前:デフォルトの名無しさん mailto:sage [02/09/26 16:54]
- まぁ>>910には新スレ立ててもらいましょう。
- 913 名前:デフォルトの名無しさん mailto:sage [02/09/26 18:39]
- もう新スレいらないんじゃない?レベル低いし
- 914 名前:デフォルトの名無しさん mailto:sage [02/09/26 18:49]
- Prologインタープリタ作ってみたが、これは7行は無謀だな。
とりあえず15行 #define D(X,Y,Z) Y(){N*x=X();return c==Z>>6?s[4]=Z,s[6]=x,x=s+=4,x[3]=Y(),x:x;} typedef*P,N,*E[99];N*F[99],f,S[99999],*s=S,c,R,**G;C(){(c=getchar())<0?exit(0): c<33&&C();}T(){N*x;C();s[4]=c*64+(c-65<26U)+1;return'('==c?x=p(),C(),x:(C(),s+= 4);}D(T,Q,2884)D(Q,q,2820)D(q,p,3716)a(c){putchar(c);}W(N*x){r(&x);a(*x>>6);*x& 4?a(40),W(x[2]),a(44),W(x[3]),a(41):0;}B(x,y){s+=4;*s=8;s[2]=x;s[3]=y;}r(P*x){N *y=*x;for(;y<=s&&**x&2;y+=4)*y==8&&y[2]==*x?*x=y[3]:0;}u(N*x,N*y){r(&x);r(&y); return x==y||(*x&2?*y&2&&x>y?B(y,x):B(x,y),1:*y&2?B(y,x),1:*x==*y?*x&4?u(x[2],y [2])&&u(x[3],y[3]):1:0);}I(N*x,E z){P*y=z+(*x>>6),w=s+=4;*w=*x;return*x&2?*y?*y :(*y=w):*x&4?w[2]=I(x[2],z),w[3]=I(x[3],z),w:x;}Y(x,y,z){s+=4;s[0]=0;s[1]=x;s[2 ]=y;s[3]=z;return s;}U(n,g,x){P*i=F,z,q=s;while(*i){E e={0};z=I(*i++,e);if(u(g, z[2])){X(Y(n+1,z[3],x));if(R<n+2)break;}s=q;}}X(N*x){N*g,z;R=999;x?(g=x[2])?U(x [1],g,x[3]),*g==2113?X(x[3]),R=R>x[1]?x[1]:R:*g==2820?X(Y(x[1],g[2],Y(x[1],g[3] ,x[3]))):0:X(x[3]):J();}J(){N i=0;while(i<99)G[i]?a(i),a(61),W(G[i++]),a(10):i ++;puts("yes");}main(){N*z;while(z=p()){E e={0};G=e;*z!=3716?W(z),a(10),X(Y(0,I (z,e),0)),puts("no"):(F[f++]=z,0);}} :-の代わりに:を使う。compound termはない。変数等は一文字のみ。 :のある入力はassertされて、ないのは問い合わせだとみなされる。 差分リストを使った7行クイックソートでも食わせてみてくれ t:!. o-(X,Y): z-(X,Y,(0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,@)). z-(X,Y,(X,R)): !. z-(X,Y,(Y,R)): !,f. z-(X,Y,(Z,R)): z-(X,Y,R). q-(@,X-X):!. q-((X,R),Y-Z): v-(X,R,L,B), q-(L,Y-(X,W)), q-(B,W-Z). v-(P,(X,R),L,(X,B)): o-(P,X),!,v-(P,R,L,B). v-(P,(X,R),(X,L),B): v-(P,R,L,B).v-(P, @, @, @):t. q-((6,2,f,9,7,e,d,5,b,1,8,a,3,c,4,@),Y-@).
- 915 名前:デフォルトの名無しさん mailto:sage [02/09/26 19:30]
- >>913
他のスレに比べても十分良いレベルにはあると思うよ。 part2が作られたときも散々言われたけど、なかなかいい作品が出てきたし。 >>914 つーか、すげーよ! 10行未満には絶対すべきや! そしていつか7行に!!
- 916 名前:デフォルトの名無しさん mailto:sage [02/09/26 20:51]
- >>915
Part2でレベル下がったと思うけどな。 低レベルの作品をお互いにほめあってどんどんレベル落ちてるかと。
- 917 名前:デフォルトの名無しさん mailto:sage [02/09/26 21:40]
- >>916
Part3で回復を期待しましょう。
- 918 名前:デフォルトの名無しさん mailto:sage [02/09/26 22:00]
- >>916
そういうあなたの作品は?
- 919 名前:デフォルトの名無しさん mailto:sage [02/09/26 22:22]
- >>916
確かにRLEやgrep@perl、○ラクエなどはどうかと思ったけど。 (まだ7行プログラミングが普及していないせいもあるが) それでもpart1ではオセロやカラースネークくらいしか見られるものがなかった。 part2ではテトリスや各種データ圧縮がなかなかのレベルかと思うが、どうだろ。
- 920 名前:デフォルトの名無しさん mailto:sage [02/09/26 22:30]
- >>919
圧縮はPart1のレンジコーダーが最高峰でないの?
|

|