[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/10 16:01 / Filesize : 349 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

七行プログラミング part2



1 名前:デフォルトの名無しさん [02/04/15 12:09]
7行×79文字なら言語は問いません。
過去作品は>>2-5を参照。

■前スレ
pc.2ch.net/test/read.cgi/tech/984182993/

730 名前:デフォルトの名無しさん mailto:sage [02/09/05 22:32]
FreeBSDのdmesg|head -6を表示
本当はブートシーケンスでバーがくるくる回るところを表示したかったが、
プログラムが長くなっちゃってだめでした。
文章データは前スレのrangecoderをu=128で使用後、8x3=6ビットx4に変更後、+49している。

char t[]="Rm19aKD8`a:GGAa<?Hnn`lc94BhK<oYZa8VOOl=6Ifb1d]f\\`TQfMUiVfa[D`C7fEX?"
"=ImOhIg?8AAlTpio4IeKYX9]h3Qh]2cbL1RF^]4]_?9PS8ThmObf:\\1`oih:YG9@c?7?MenXQiQa"
"Q=3T`[K<L@T?>34l55Zjj2_dBpMF1npY;GH3@CojA3nYW3XZ8MH5H5\\Na1QV7Cg9jdJU\\@K;MjJ"
":IemMXN]\\9j3]YP78Wf31HU9TVhd58oi8An^AVECjm4LAI7iU:aPOPEB?iK:@_YY9=Recl`]nU<?"
"MBU^PWhV[MkS8Pi]d__G<95Ll3pU3`l44l2h[d:794YSYCf]U_g]1^jBUbBO93`V=]",*s=t;
unsigned*p,W,O=357,u=128,b=360,a[999],R=~0,x=256;f(){W=W*x|*p++;}main(K){for(p=
a+u;*s;)*s++-=49;for(s=t;b>0;b-=4)*p++=s[0]*4|s[1]>>4,*p++=(s[1]<<4|s[2]/4)%x,
*p++=(s[2]<<6|s[3])%x,s+=4;p=a+u;for(f(f(f(f())));O--;R*=a[b]){for(K=b=0;R<1<<
24;R*=x)f();for(R/=u++;W/R>=K;K+=a[b++]+1);W-=R*(K-++a[putchar(--b)]);}}

731 名前:デフォルトの名無しさん mailto:sage [02/09/05 22:42]
>>729
7行スレでそんな丁寧なプログラムを書かなくても・・・
つーわけで、今縮め中です。

732 名前:731 mailto:sage [02/09/05 23:21]
>>729
アーカイブのフォーマットを変更しちゃいました。
RLE(>>728)と組み合わせることで、圧縮書庫が7行でできそうですね。
# SEEK_END=2って規定されてましたっけ?

#include <stdio.h>
char n[256];int i,c;main(int a,char**v){FILE*f,*o;if(a-1)for(putw(a,o=stdout);
--a;)for(fseek(f=fopen(v[++i],"rb"),0,SEEK_END),puts(v[i]),putw(ftell(f),o),
rewind(f);~(c=getc(f));)putchar(c);else for(a=getw(o=stdin);--a;)for(f=fopen(
gets(n),"wb"),c=getw(o);c--;)putc(getchar(),f);}

733 名前:デフォルトの名無しさん mailto:sage [02/09/05 23:29]
>>732
規定されてない。
そもそも、EOF=-1も規定されてないからどっちにしろ処理系依存

734 名前:デフォルトの名無しさん mailto:sage [02/09/05 23:35]
>>733
EOF=-1をこのスレではいつの間にかデフォルトで使ってるよなぁ
SEEK_???もデフォルトしちゃえ!
ついでにi=i++も!

735 名前:デフォルトの名無しさん mailto:sage [02/09/05 23:56]
>>734 knkタンだ! ((((;゚Д゚)))) ガクガクブルブル

736 名前:デフォルトの名無しさん mailto:sage [02/09/06 12:53]
>>732
SEEK_END=2の使用はデフォルトってことでいいのかな
このくらいちぢまればRLE圧縮も組み込めるかな
ちぢめすぎてかえって組み込めなくなる罠かもしれない

#include <stdio.h>
char n[256];int i,c,b;main(a,v)char**v;{FILE*f,*o;b=a-1;for(b?putw(a,o=stdout):
(a=getw(o=stdin));--a;){f=fopen(b?v[++i]:gets(n),b?"rb":"wb");for(b?fseek(f,0,2
),puts(v[i]),putw(ftell(f),o),rewind(f),0:(i=getw(o));b?~(c=getc(f)):i--;)putc(
b?c:getc(o),b?o:f);}}

737 名前:デフォルトの名無しさん mailto:sage [02/09/06 20:29]
SEEK_END=2はPOSIXで規定されてたりしなかったっけ
どっちにしろこのスレでは縮むならある程度の処理系依存は
容認の方針だと思うけど

738 名前:デフォルトの名無しさん mailto:sage [02/09/06 22:44]
gccとbcc32で、EOF と SEEK_* が同じだったから、
まぁ、このスレで議論する分には困らないと思われ。

perlだとSEEK_*と0,1,2のどちらを使っても一致することが明記されてるんだけど。



739 名前:デフォルトの名無しさん mailto:sage [02/09/06 23:49]
>>736 + >>728 の6行書庫
#まだ100文字程あるから前スレRLEでも7行いけるかな?

#include <stdio.h>
FILE*f,*o;char n[256];int i,c,b,p,q;r(){return b?getc(f):i<=0?-1:getc(o);}w(x){
putc(x,b?o:f);}main(a,v)char**v;{for(!(b=a-1)?a=getw(o=stdin):putw(a,o=stdout);
--a;b*~p?w(p),w(q):0)for(f=fopen(b?v[++i]:gets(n),b?"rb":"wb"),b?fseek(f,q=0,2)
,puts(v[i]),putw(ftell(f),o),rewind(f),0:(i=getw(o)),p=r();~(c=r());p=b?q=q>254
||p-c?w(p),w(q),0:q+1,c:r())for(b||(i+=~c);!b&&~c--;)w(p);}

740 名前:736 mailto:sage [02/09/06 23:55]
>>739
6行ですか、素晴らしい

741 名前:デフォルトの名無しさん mailto:sage [02/09/07 02:52]
>>736 + 前スレ101版RLE の7行書庫
fcloseを入れたので多い日も安心

#include <stdio.h>
FILE*f,*o;char n[256];int i,c,b,p,q;r(){return b?getc(f):i<=0?-1:getc(o);}w(x){
putc(x,b?o:f);}main(a,v)char**v;{for(!(b=a-1)?a=getw(o=stdin):putw(a,o=stdout);
--a;b*q?w(p),w(q):0,fclose(f))for(f=fopen(b?v[++i]:gets(n),b?"rb":"wb"),b?fseek
(f,q=0,2),puts(v[i]),putw(ftell(f),o),rewind(f),0:(i=getw(o)),p=-1;~(c=r());p=b
?q=p-c||q>254?q?w(p),w(q):0,w(c),0:q+1,c:c-p?c:r())for(b||(q=c-p?~p?0:-1:r(),i
+=~q);!b&&~q--;)w(p);}

742 名前:729 mailto:sage [02/09/07 06:24]
tarみたいな感じでアーカイブができれば良いかなと思って書いたんですが、
圧縮までして7行ですか!恐れ入りましたすばらしいです。

743 名前:デフォルトの名無しさん mailto:sage [02/09/07 12:59]
画像ファイルとか音楽ファイルだと逆にでかくなるだけだが

744 名前:デフォルトの名無しさん mailto:sage [02/09/07 15:14]
>>743 使えるのはBMPファイルとか、AAとかだね。
圧縮+書庫化するだけ、ならばrangecoderでもできるだろうけどね。

745 名前:デフォルトの名無しさん mailto:sage [02/09/07 15:16]
!b&&~q-- って b||~q-- にできるんちゃう?いまさらやけど。

746 名前:デフォルトの名無しさん mailto:sage [02/09/07 18:56]
ちょっとした暇つぶしに、ゲームなぞ。
何かキーを押すとスタート、ストップ、リスタート。
動く丸を四角の中で止めてください。赤くなれば成功!

import java.awt.*;class S{public static void main(String[]a){new Frame(){int u=
2,p,t,s,c;void L(){u=p=0;t=1;s=(int)(Math.random()*8+2);c=150/s+19;}{resize(350
,200);show();try{for(;;Thread.sleep(s)){p=p+t;if(p>300)u=2;if(u==1)if(--c<1){t=
0;u=2;}for(repaint();u>1;);}}catch(Exception e){}}public void paint(Graphics g)
{g.setColor(t<1&p>249&p<281?Color.RED:Color.BLACK);g.drawOval(p,75,50,50);g.
drawRect(250,60,80,80);}public boolean keyDown(Event e,int y){u=u<1?1:u;if(u>1)
L();return 1>0;}};}}

747 名前:デフォルトの名無しさん mailto:sage [02/09/07 21:03]
>745
b||~q--だとb!=0の時に無限ループする

748 名前:デフォルトの名無しさん mailto:sage [02/09/09 16:20]
ネタ募集上げ



749 名前:デフォルトの名無しさん [02/09/09 17:11]


750 名前:デフォルトの名無しさん mailto:sage [02/09/11 20:50]
適応型Huffman
但し毎回木を更新するので滅茶苦茶重い(w

圧縮
int*a[258],n[2060],o[257],*r,*p,*q,c,f,i,j,k;Q(int**a,int**b){return**b-**a;}W(
a,b){for(;b--;++i>7?putchar(f),i=f=0:0)f+=f+(a>>b)%2;}S(s){for(r=n,j=k;j++<258;
r+=4)*r?a[k++]=r:0;for(;--k;r+=4){qsort(a,k+1,4,Q);a[k-1][1]=a[k][1]=r-n;*r=*a[
k-1]+*a[k];r[2]=a[k-1]-n;r[3]=a[k]-n;a[k-1]=r;}for(r=n+s;r-*a;r=q)o[k++]=r-n!=2
[q=n+r[1]];for(;k;)W(o[--k],1);}main(){for(*n=n[4]=1;~c;S(*p?p-n:0),(*p)++||W(c
,8))p=n+(c=getchar())*4+8;W(0,7);}

展開
int*a[258],n[2060],o[257],*r,*p,*q,c,f,i,j,k;Q(int**a,int**b){return**b-**a;}R(
a){for(c=0;a--;c+=c+(f>>--i)%2)f=!i?i=8,getchar():f;return c;}L(){for(r=n,j=k;j
++<258;r+=4)*r?a[k++]=r:0;for(;--k;r+=4){qsort(a,k+1,4,Q);a[k-1][1]=a[k][1]=r-n
;*r=*a[k-1]+*a[k];r[2]=a[k-1]-n;r[3]=a[k]-n;a[k-1]=r;}for(r=*a;r[2]|r[3];r=n+r[
2+R(1)]);r-n||(r=n+R(8)*4+8);(*r)++;~(c=(r-n)/4-2)&&putchar(c);}main(){for(*n=n
[4]=1;~c;)L();}

751 名前:デフォルトの名無しさん [02/09/12 18:42]
レスがついてなくて寂しそうだ。あげてあげよう。

752 名前:デフォルトの名無しさん mailto:sage [02/09/12 19:58]
>>750の圧縮・展開を纏めて7行化
何か引数があれば圧縮、なしで展開

int*a[258],n[2060],*r,*p,*q,c,f,i,k;Q(int**a,int**b){return**b-**a;}W(a,b){for(
;b--;++i>7?putchar(f),i=f=0:0)f+=f+(a>>b)%2;}R(a){for(c=0;a--;c+=(f>>--i)%2+c)f
=!i?i=8,getchar():f;}S(int*r){r-*a?S(n+r[1]),W(r-n!=n[r[1]+2],1):0;}L(){for(r=*
a;r[2]|r[3];r=n+r[2+c])R(1);}main(v){for(--v,*n=n[4]=1;~c;v?S(*(p=n+(c=getchar(
))*4+8)?p:n),(*p)++||W(c,8):(L(),r-n||(R(8),r=n+c*4+8),(*r)++,~(c=(r-n)/4-2)&&
putchar(c))){for(r=n;r-n<1032;r+=4)*r?a[k++]=r:0;for(;--k;p=a[k-1],q=a[k],p[1]=
q[1]=r-n,*r=*p+*q,r[2]=p-n,r[3]=q-n,a[k-1]=r,r+=4)qsort(a,k+1,4,Q);}v&&W(0,7);}

753 名前:デフォルトの名無しさん [02/09/12 20:23]
すげーなあ

754 名前:デフォルトの名無しさん mailto:sage [02/09/12 20:26]
このforなげえぇぇぇぇなあぁぁぁぁ。

755 名前:デフォルトの名無しさん [02/09/13 14:01]
うわーん。某あれで九州の某へ逝っていたら、ネタが来ただけじゃなく、終わってたよ。
すばらしい! あげちゃえ。

756 名前:デフォルトの名無しさん [02/09/14 14:39]
ファイラってできるかな?

757 名前:デフォルトの名無しさん mailto:sage [02/09/14 14:41]
俺主催囲碁プログラミングコンテスト スレより、13行囲碁
pc3.2ch.net/test/read.cgi/tech/1024024666/136-
おいお前ら、これを7行に縮めてください。

#include <stdio.h>
int w[4]={1,-1,12,-12},s,d,h[3],b[132];r(int a, int c){int z,i;b[a]|=8;s++;for
(i=0;i<4;i++){z=a+w[i];if(b[z]==0)d++;if(b[z]==c)r(z,c);}b[a]&=3;}v(int a,int
c){int z,i;b[a]=0;for(i=0;i<4;i++){z=a+w[i];if(b[z]==c)v(z,c);}}int t(int u){
int m,e,g,z,i,k;m=e=0;for(z=0;z<132;z++){k=g=0;if(b[z])continue;for(i=0;i<4;i++
){if(b[z+w[i]]==u){d=s=0;r(z+w[i],1);k+=(d==1)*s*300+(d==2)*s*300+(d==3)*s*20;
}if(b[z+w[i]]==0)k+=10;else g++;}if(g==4)continue;if(k>m){m=k;e=z;}}return e;}
char *p="・○● \n";int main(){int c=1,u=2,z,x,y,i;for(i=0;i<132;i++){if((i+1
)%12==0)b[i]=4;else if(i%12==0||i<12||(i+2)%12==0||i>120)b[i]=3;}for(;;){for(i
=0;i<132;i++)printf("%.2s",&p[b[i]*2]);if(c==1){scanf("%d %d",&x,&y);z=y*12+x;
if(b[z]){printf("Err\n");continue;}}else{if((z=t(u))==0){printf("ps\n");break;
}}b[z]=c;for(i=0;i<4;i++){if(b[z+w[i]]==u){d=s=0;r(z+w[i],u);if(d==0){h[c]+=s;
v(z+w[i],u);}}}d=0;r(z,c);if(d==0)break;u=c;c=3-c;}return 0;}

758 名前:デフォルトの名無しさん [02/09/14 14:46]
>>756>>757
ネタ来たーーーーーーあげ
でも囲碁はちょっと見ただけでも無駄が多い、10行くらいにはすぐなりそう



759 名前:オマケ月 mailto:sage [02/09/14 16:08]
#include <stdio.h>
main(){printf("ファイア\nファイラ\nファイが!");}

760 名前:デフォルトの名無しさん mailto:sage [02/09/14 16:09]
>>759
やってくれたね...

761 名前:758 mailto:sage [02/09/14 19:08]
>>757
ちょっとだけ縮めてみた。十分7行になりそうだ。

int w[4]={1,-1,12,-12},s,d,h[3],b[132],c=1,u=2,x,y,i;r(a,c,f){int z,i;f?b[a]=0:
(b[a]|=8,s++);for(i=4;i--;b[z]==c&&r(z,c,f))d+=!b[z=a+w[i]];!f?b[a]&=3:0;}t(u){
int m,e,g,z,i,k;for(m=e=z=0;z<132;z++)if(k=g=0,!b[z]){for(i=4;i--;b[y]?g++:(k+=
10))if(b[y=z+w[i]]==u)d=s=0,r(y,1,0),k+=(d==1)*s*300+(d==2)*s*300+(d==3)*s*20;
if(g!=4)k>m?m=k,e=z:0;}return e;}char*p="・○● \n";main(z){for(i=132;i--;i%12
==11?b[i]=4:0)if(i%12==0||i<12||(i+2)%12==0||i>120)b[i]=3;for(;;){if(c==1){for(
i=10;i<119;)printf("%.2s",&p[b[i++]*2]);scanf("%d %d",&x,&y);if(b[z=y*12+x]){
puts("Err");continue;}}else if(!(z=t(u))){puts("ps");break;}b[z]=c;for(i=4;i--;
d=0)if(b[x=z+w[i]]==u)if(d=s=0,r(x,u,0),!d)h[c]+=s,r(x,u,1);r(z,c,0);if(!d)
break;u=c;c=3-c;}}

762 名前:758 mailto:sage [02/09/14 23:48]
>>761
現在9行。ゲーム性の向上を目指し、
終了時にアゲハマを表示し、余分な改行を消しました。

int w[]={1,-1,12,-12},s,d=1,h[3],b[132],c=1,u=2,y,i=132,m,g,e,k;r(a,c,f,z,i){b[
a]=!f?s++,b[a]|8:0;for(i=4;i--;b[z]==c&&r(z,c,f))d+=!b[z=a+w[i]];!f?b[a]&=3:0;}
main(z){for(;i--;i%12==11?b[i]=4:0)i%12==0||i<12||i%12==10||i>120?b[i]=3:0;for(
;d;){if(c==1){for(i=10;i<120;)printf("%.2s",&("・○● \n"[b[i++]*2]));if(scanf
("%d %d",&k,&y),b[z=y*12+k]&&puts("Err"))continue;}else{for(m=e=z=0;e<132;e++)
if(k=g=0,!b[e]){for(i=4;i--;b[y]?g++:(k+=10))b[y=e+w[i]]==u?r(y,1,d=s=0),k+=(((
d==1)+(d==2))*15+(d==3))*s*20:0;g!=4&&k>m?m=k,z=e:0;}if(!z&&puts("ps"))break;}b
[z]=c;for(i=4;i--;)b[k=z+w[i]]==u?r(k,u,d=s=0),!d?h[c]+=s,r(k,u,1):0:0;r(z,u=c,
d=0);c=3-c;}printf("%d,%d\n",h[1],h[2]);}

763 名前:デフォルトの名無しさん mailto:sage [02/09/15 00:34]
4行目のスペースが纏められちゃったので修正
;d;){if(c==1){for(i=10;i<120;)printf("%.2s",&("・○●  \n"[b[i++]*2]));if(scanf

764 名前:デフォルトの名無しさん mailto:sage [02/09/15 01:34]
>763
cはu^3で代用、それに伴いc==1→u-1等に変更
((d==1)+(d==2))→(d-1U<2)
i<12||略||i>120→i-12U>108||略
for(i=10;i<120;略&("・○● \n"[b[i++]*2)→for(i=9;i++<119;略"・○● \n"+b[i]*2

765 名前:囲碁スレ136 mailto:sage [02/09/15 07:04]
>>762
やるねぇ・・・。そうやって圧縮するのか。
再帰関数も1つになってるし。
しかしここからはつらそう。

766 名前:デフォルトの名無しさん mailto:sage [02/09/15 14:37]
>>759
printfって最後、\nしないと問題が出る環境なかった?
うろおぼえだけど

767 名前:デフォルトの名無しさん mailto:sage [02/09/15 14:39]
>>762 最初の盤作成部分
for(;i--;b[i]=z-11?z&&z-10&&i-12U<109?0:3:4)z=i%12;

768 名前:デフォルトの名無しさん mailto:sage [02/09/15 18:48]
囲碁8行(あと62-63文字)

int w[]={1,-1,12,-12},s,d=1,h[3],b[132],u=2,y,i=132,m,g,e,k;r(a,c,f,z,i){b[a]=!
f?s++,b[a]|8:0;for(i=4;i--;b[z]-c||r(z,c,f))d+=!b[z=a+w[i]];!f?b[a]&=3:0;}main(
z){for(;i--;b[i]=z-11?z&&z-10&&i-12U<109?0:3:4)z=i%12;for(;d;){for(i=9;i++<119;
)printf("%.2s",&("・○●  \n"[b[i]*2]));for(m=z=0;i--;g!=4&&k>m?m=k,z=i:0)for(k
=g=0,e=4*!b[i];e--;!b[y]?k+=10:g++)b[y=i+w[e]]==u?r(y,1,d=s=0),k+=((d-1U<2)*15+
(d==3))*s*20:0;if(u>1&&(scanf("%d %d",&k,&y),b[z=y*12+k]&&puts("Err")));else{if
(!z&&puts("ps"))break;for(i=4;i--;b[z]=u^3)b[k=z+w[i]]==u?r(k,u,d=s=0),!d?h[u]
+=s,r(k,u,1):0:0;r(z,u^=3,d=0);}}printf("%d,%d\n",h[2],h[1]);}



769 名前:デフォルトの名無しさん mailto:sage [02/09/15 19:12]
printf("%.2s",&("・○● \n"[b[i]*2]));

printf("・\0○\0●\0 \0\n"+b[i]*3);
3文字か…


770 名前:デフォルトの名無しさん mailto:sage [02/09/15 19:25]
関数r内
b[a]=f?0:~b[a];s++;
for(i=4;i--;b[z]-c||r(z,c,f))d+=!b[z=a+w[i]];
b[a]^=!f*~0;
3文字?

771 名前:758 mailto:sage [02/09/15 21:20]
後34文字になりますた。

int w[]={1,-1,12,-12},s,d=1,h[3],b[132],u=2,y,i,m,g,e,k;r(a,c,f,z,i){b[a]=f?0:~
b[a];s++;for(i=4;i--;b[z]-c||r(z,c,f))d+=!b[z=a+w[i]];b[a]^=!f*~0;}main(z){for(
;d;){for(;i++<132;printf("・\0○\0●\0 \0\n"+(b[i]=z-11?z&&z-10&&i-12U<109?b[i
]:3:4)*3))z=i%12;for(m=z=0;i--;g!=4&&k>m?m=k,z=i:0)for(k=g=0,e=4*!b[i];e--;!b[y
]?k+=10:g++)b[y=i+w[e]]==u?r(y,1,d=s=0),k+=((d-1U<2)*15+(d==3))*s*20:0;if(u<2||
!(scanf("%d%d",&k,&y),b[z=y*12+k]&&puts("Err"))){if(!z&&puts("ps"))break;for(i=
4;i--;b[z]=u^3)b[k=z+w[i]]==u?r(k,u,d=s=0),!d?h[u]+=s,r(k,u,1):0:0;r(z,u^=3,d=0
);}}printf("%d,%d\n",h[2],h[1]);}

772 名前:囲碁スレ136 mailto:sage [02/09/15 21:47]
お前ら・・・すごいです(w
もはや暗号だな。

773 名前:デフォルトの名無しさん mailto:sage [02/09/16 00:14]
円周率を求める7行ってないの?もちろんエンドレスで。

774 名前:デフォルトの名無しさん mailto:sage [02/09/16 01:59]
>>773が作ってみるということでどうだっ!

775 名前:デフォルトの名無しさん mailto:sage [02/09/16 10:29]
エンドレスって正しい値を永遠にはきだし続けるって事か?
多倍長クラスとページングマネージャも書けと。
無理臭い

776 名前:デフォルトの名無しさん mailto:sage [02/09/16 20:15]
>>775
メモリさえあれば、数百万桁計算する程度なら7行でもできそうだ。
挑戦してみようかなぁ。

777 名前:デフォルトの名無しさん mailto:sage [02/09/16 20:52]
標準出力に10進数を一桁ずつ吐くだけだから
多倍長クラスはいらないのでは。
しかしアルゴリズムが分からない罠。
ttp://www.pluto.ai.kyutech.ac.jp/plt/matumoto/pi_small/_pi_small.html
たくさんあってどれが7行向きなのやら。

778 名前:デフォルトの名無しさん mailto:sage [02/09/16 22:37]
>>777
1桁ずつ計算する物じゃないぞ



779 名前:デフォルトの名無しさん [02/09/16 22:57]
>>778
一桁ずつできるけどね。やるかどうかは別として。

780 名前:デフォルトの名無しさん mailto:sage [02/09/17 01:26]
以下のコードをバイナリエディタで書いて prg.com で保存後 実行

B0 13 CD 10 C4 2F AA 11 F8 64 13 06 6C 04 EB F6

781 名前:デフォルトの名無しさん mailto:sage [02/09/17 04:39]
>>780
メガデモスレから持ってこないで下さい。(w
farb-rausch.de/prod.html

782 名前:デフォルトの名無しさん mailto:sage [02/09/17 15:39]
>>780
これ何?

783 名前:デフォルトの名無しさん mailto:sage [02/09/17 19:41]
>780の実効ファイル版ISHにしてみた。

<<< A.COM for MS-DOS ( use shift_jis ish ) [ 8 lines ] >>>
!!!&!!9Q!5"XRo"O"I->!C$oR6nt!&"HDm=NH,!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JF;v
!!!&!!9Q!5"XRo"O"I->!C$oR6nt!&"HDm=NH,!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JF;v
!!!&!!9Q!5"XRo"O"I->!C$oR6nt!&"HDm=NH,!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JF;v
%x/。」;掲僕ウFリ策ル」\EB機@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@q繆
。ツ0拆M3鐇Aェ物ォミ^2ンロCm@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UR「
」\VG・ュッ、{ャナ^・ヨH*j8Le+フ「ワVe、錦ラ;サヌ,Kヤ省竿58h3Q筰ミ隹峻Sスヨアヘニ゙妹4\覬レメノレウh岻屁搶ワ
--- A.COM (8/8) ---


784 名前:デフォルトの名無しさん [02/09/17 20:25]
>>780
だれかこの動作をマジレスしてください。

メガデモスレと言われても、あまりこの板にはこないから。

785 名前:デフォルトの名無しさん mailto:sage [02/09/17 20:30]
>>784
自分でやればわかるよ

786 名前:デフォルトの名無しさん [02/09/17 20:31]
>>785
いや、なんか怖い…。

format cよりも怖いです。

787 名前:デフォルトの名無しさん mailto:sage [02/09/17 20:40]
>>786
www.google.co.jp/search?sourceid=navclient&hl=ja&q=%22B0+13+CD+10+C4+2F+AA+11+F8+64+13+06+6C+04+EB+F6%22
目がちかちかする。

788 名前:デフォルトの名無しさん [02/09/17 21:32]
>>787
噂の「ポケモンフラッシュ」みたいなやつですか?
グロよりも苦手なんでよかった。



789 名前:デフォルトの名無しさん mailto:sage [02/09/17 21:35]
>>788
見てみりゃわかる。無害。

790 名前:デフォルトの名無しさん [02/09/17 21:50]
<age>


791 名前:bloom [02/09/17 21:59]

www.leverage.jp/bloom/start/

792 名前:デフォルトの名無しさん [02/09/17 22:21]
>>789
ちょっと面白かった。
でもわずかにチカチカするのでちょっとだめかもw

フルスクリーンのせいでアプリをひとつ間違って閉じたのに気づかなかったぞゴルァ

793 名前:デフォルトの名無しさん mailto:sage [02/09/17 22:32]
つーか、Cなり何なりで、上のバイナリコードを吐き出すようにすれば、
もっと簡単に試したのではなかろうか。
main(){char data[]={...};fwrite(data,1,sizeof(data),stdout);}
みたく。

794 名前:デフォルトの名無しさん mailto:sage [02/09/17 23:42]
>>789
Win2k飛ばされますた
>>793
16バイトで出来てることに意味があるのでせう
逆アセンブルリスト見て嘆息

795 名前:デフォルトの名無しさん [02/09/18 16:11]
コードをアセンブラで書いて、インストラクションコードを
>>793みたいに文字列として埋め込むのはありでしょうか?
typedef int(*f)();
((f)"....")(); //呼び出し

796 名前:デフォルトの名無しさん mailto:sage [02/09/18 19:40]
>>795
良いと思うけど、普通は逆にオブジェクトコードが増えると思うよ

797 名前:デフォルトの名無しさん mailto:sage [02/09/18 19:40]
オブジェクトコード埋め込みの方が…ですね、スマソ

798 名前:トリッキーの1 mailto:sage [02/09/18 21:29]
ご無沙汰してました。相変わらず皆さん凄いですね。勉強になります。
近いところでは囲碁面白いですね。でも囲碁のルールが解らないので残念です。
>>771
半角スペース2個は全角1個にしないと、貼り付けるときに消えてしまいますよ
それと、「3,3:4,4:2,4:2,5:2,6:2,8」と入力すると相手の石の上に自分の石が来るけれど、
これは囲碁のルールで正しいんですか?



799 名前:デフォルトの名無しさん mailto:sage [02/09/18 22:39]
LZW系の展開・圧縮
使い方は>>752と同じ

同じ辞書を使い続ける6行版
int*Q,N[16384],S,T,U,V,F,G,P,C,X,Z;p(a,b){for(;b--;++S>7?putchar(T),S=T=0:0)T=T
+T|a>>b&1;}g(a){for(G=0;a--;G=G+G|V>>--U&1)!U?U=8,V=getchar():0;}a(){F<1<<12?1[
Q=N+F*4]=X,Q[2]=C,Q[3]=N[C*4],*Q=0,N[C*4]=F++:0;}r(x){p((x>256?r(N[x*4+2]),N[x*
4+1]:(X=x))-1,8);}main(c){for(G=F=257;G--;)1[Q=N+G*4]=G;for(--c?g(8),C=V+1:0;g(
c?8:12),c?C:~V;C=c?!Z?p(C,12),a(),X:Z:(G=X,r(Z<F?Z:C),Z<F||p(G-1,8),P++&&a(),Z)
)for(Z=c?X=V+1,N[C*4]:G;c*Z&&1[Q=N+Z*4]-X;Z=Q[3]);p(0,7);}

辞書が一杯になると再構築する7行版
int*Q,N[16384],S,T,U,V,F,G,P,C,X,Z;i(){for(G=F=257;G--;*Q=Q[2]=Q[3]=0)1[Q=N+G*4
]=G;}p(a,b){for(;b--;++S>7?putchar(T),S=T=0:0)T=T+T|a>>b&1;}g(a){for(G=0;a--;G=
G+G|V>>--U&1)!U?U=8,V=getchar():0;}a(){F<1<<12?1[Q=N+F*4]=X,Q[2]=C,Q[3]=N[C*4],
*Q=0,N[C*4]=F++:i();}r(x){p((x>256?r(N[x*4+2]),N[x*4+1]:(X=x))-1,8);}main(c){i(
);for(--c?g(8),C=V+1:0;g(c?8:12),c?C:~V;C=c?!Z?p(C,12),a(),X:Z:(G=X,r(Z<F?Z:C),
Z<F||p(G-1,8),P++&&a(),Z))for(Z=c?X=V+1,N[C*4]:G;c*Z&&1[Q=N+Z*4]-X;Z=Q[3]);p(0,
7);}

800 名前:デフォルトの名無しさん mailto:sage [02/09/18 22:54]
>>773
ほらよ。多少の誤差には眼をつぶれや。

#include <stdio.h> // printf()
#include <stdlib.h> // rand()
int main(){
printf( "3.1415926535897932384626433832795" ) ;
for (;;) printf( "%d",rand() ) ;
return 0 ;
}


801 名前:デフォルトの名無しさん mailto:sage [02/09/18 22:55]
後はランダムかよ

802 名前:デフォルトの名無しさん mailto:sage [02/09/18 23:08]
お題:素数列挙

803 名前:デフォルトの名無しさん mailto:sage [02/09/18 23:09]
p2pの七行があったらすごいよね。なんて言って見るテスト

804 名前:>>802 mailto:sage [02/09/18 23:15]
printf(char*,...);main(){int z,i=1;for(;z=i++;z?0:printf("%d,",i))while(i%z--);}

1文字オーバーなのは秘密だ。

805 名前:デフォルトの名無しさん mailto:sage [02/09/18 23:24]
>>802
外出だったりする

806 名前:デフォルトの名無しさん mailto:sage [02/09/18 23:32]
>>805
>>74 >>81やね

807 名前:デフォルトの名無しさん mailto:sage [02/09/18 23:37]
>>804
1文字縮めてみますた
printf(char*,...);main(){int z,i=1;for(;z=i++;z||printf("%d,",i))while(i%z--);}

808 名前:804 mailto:sage [02/09/18 23:53]
おぉ、さんきゅー!
そうか、|| か。なんかPerlっぽい。



809 名前:デフォルトの名無しさん mailto:sage [02/09/19 01:06]
>>807
gcc -ansi -pedantic だとprintf(char*,...)は通らず。
ANSI C forbids data definition with no type or storage class
printf()を削除すれば通るので、そっちの方がよい?

1文字縮めてみた。
printf(char*,...);main(z){int i=1;for(;z=i++;z||printf("%d,",i))while(i%z--);}

810 名前:デフォルトの名無しさん mailto:sage [02/09/19 01:14]
これではだめですかね。引き数なしで実行が条件ですが。
main(i,z){for(;z=i++;z||printf("%d,",i))while(i%z--);}

811 名前:デフォルトの名無しさん mailto:sage [02/09/19 01:22]
>>810
bcc32でも動きますね。しかもgccよりも速かった。

812 名前:デフォルトの名無しさん mailto:sage [02/09/19 01:29]
コンパイラを選ぶのはどうかと思う

813 名前:デフォルトの名無しさん mailto:sage [02/09/19 02:00]
>>810 Solaris cc, GNU gcc, Borland bcc32 でコンパイル・実行できますた。
>>807 上記すべてのコンパイラでprintfの宣言がおかしいといわれますた。
>>812 短くするためならコンパイラどころかアーキテクチャすら選択するのが最近の風潮らしいです。

814 名前:デフォルトの名無しさん mailto:sage [02/09/19 02:04]
>>803
p2pの何だ?

815 名前:デフォルトの名無しさん mailto:sage [02/09/19 03:47]
囲碁、申し訳ないんだが、
コンパイルして実行したら、
1の列を指定すると落ちるんだけど。
(ex:1,5)
バグ?


816 名前:デフォルトの名無しさん mailto:sage [02/09/19 04:06]
>>798>>815
囲碁、cygwin+gccやSolaris+ccでは正常らしい動作してますね
bcc32だと動作は正常のようでも、表示がおかしくなりますね
ANSI準拠っぽいソースだけど、どっかしらコンパイラ依存があるんでしょうね
>>771さんはいないようだし、ここはひとつトリッキーの1氏のご助力を!

817 名前:デフォルトの名無しさん mailto:sage [02/09/19 08:15]
プロトタイプ宣言無しで printf 使うのって好かんのだけどどうよ。
…っと言っても>>810、VC++.NETでもdmc++でも通るな。

int printf(char*,...); ... にすれば>>809行けるね。

818 名前:817 mailto:sage [02/09/19 08:16]
あーでも、宣言省略すれば int printf( ... ); 扱いになるんだっけ。Cって。
それならOKか。



819 名前:デフォルトの名無しさん [02/09/19 17:45]
>>810
>main(i,z)
Cって引数の型を省略するとintになるってこと?


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行で作成


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のレンジコーダーが最高峰でないの?

921 名前:デフォルトの名無しさん mailto:sage [02/09/26 23:10]
>>920
part1のrangecoderはもっと短くできるから、それが再登場したら最強かも。
でも、詰め込み(縮め)度合いならば、part2の方がかなり熟成された感じが良い。
ただコンパイラ依存、環境依存になりかけているのが残念だけど。

922 名前:デフォルトの名無しさん mailto:sage [02/09/26 23:25]
>>921
もっと短くしてみろよ


923 名前:デフォルトの名無しさん mailto:sage [02/09/26 23:33]
>>922

#include <iostream>
unsigned W,O,u=256,i=6,l,K,b,a[256],R=~0,y=1<<24,x=u;main(int,char**V){unsigned
char*t=new unsigned char[1<<24];if(*V[1]-69){for(cin>>O;i--;)W=W*x|cin.get();
for(;l<O;R*=a[b]){for(K=b=0;R<y;R*=x)W=W*x|cin.get();for(R/=u++;W/R>=K;K+=a[b++
]+1);W-=R*(K-++a[t[l++]=--b]);}}else{for(;~(i=cin.get());K=W,l++){for(b=0;b<i;W
+=R/u*(a[b++]+1));if(K>W)for(K=O;!++t[--K];);for(R=R/u++*++a[i];R<y;R*=x)t[O++]
=W/y,W*=x;}cout<<l<<-1;for(y=4;y--;)t[O++]=W>>y*8;}cout.write(t,O);}

924 名前:923 mailto:sage [02/09/26 23:35]
ちなみにもともとのようにgccオンリーでよいならば、
3行目をchar t[y];とできるから、もっと縮まるよん。

925 名前:デフォルトの名無しさん mailto:sage [02/09/27 00:11]
言っちゃなんだが大して変わってないな

926 名前:923 mailto:sage [02/09/27 00:15]
>>925
まだpart2ができる前のものだからねぇ。すまんねぇ。
このスレで登場したrangecoderのように符号化と復号をいっしょにするとか、
今ならもっと縮まるかもしれない。>>925が挑戦してみる?

927 名前:デフォルトの名無しさん mailto:sage [02/09/27 00:34]
> #include <iostream>
> unsigned W,O,u=256,i,l,K,b,a[256],R=~0,y=1<<24,x=u;main(int,char**V){unsigned
> char t[y];if(*V[1]-69){cin>>O;cin.read(t,6);for(W=t[2]*y|t[3]<<16|t[4]*x|t[5];l
> <O;R*=a[b]){for(K=b=0;R<y;R*=x)W=W*x|cin.get();for(R/=u++;W/R>=K;K+=a[b++]+1);W
> -=R*(K-++a[t[l++]=--b]);}}else{for(;~(i=cin.get());K=W,l++){for(b=0;b<i;W+=R/u*
> (a[b++]+1));if(K>W)for(K=O;!++t[--K];);for(R=R/u++*++a[i];R<y;R*=x)t[O++]=W/y,W
> *=x;}cout<<l<<-1;t[O++]=W/y;t[O++]=W>>16;t[O++]=W/x;t[O++]=W;}cout.write(t,O);}

前スレのrangecoder。
エンコデコ一緒だろ、これ?

928 名前:デフォルトの名無しさん mailto:sage [02/09/27 00:41]
>>927
forをひとつにまとめてしまうっていう手法のことだろ?
g=*V[1]-69;としておいて、for(g?decode:encode;g?...:...;);とするやつ。



929 名前:デフォルトの名無しさん mailto:sage [02/09/27 04:12]
Part1は無茶苦茶レベル高かったからな。
各コテハン達がしのぎを削ってたね。オフで逢った人たちもいるみたいだし。
見ているだけでわくわく出来た。
Part2も、テトリスとかいい作品はいっぱいあったんだけれど、
いい作品は何故か叩かれ、下らない作品がほめられる傾向が強かったね。
実際にPart1のコテハン達が全然来なくなってしまったしね。

include省いてアーキテクチャ限定して何が楽しいんだろう・・・
と愚痴を言ってみるテスト

930 名前:デフォルトの名無しさん [02/09/27 05:47]
>>914
prolog15行はすごいね。

今lisp作ってるけどだらだら書いてたら100行超えちゃったよ・・。

931 名前:デフォルトの名無しさん mailto:sage [02/09/27 08:09]
>>929
レベルが下がったのは同意だが、他のスレのように厨が入り込みにくいし、
住民の質も平均以上であると思われ。

932 名前:デフォルトの名無しさん mailto:sage [02/09/27 11:36]
ROMしてる者ですが、基本テクニック集を作っていただけないでしょうか。
ん?私のような厨を排除するためにもテクニックは実例を見て盗め、ですか?

933 名前:デフォルトの名無しさん mailto:sage [02/09/27 11:38]
その他力本願さ加減が素敵

934 名前:デフォルトの名無しさん mailto:sage [02/09/27 11:59]
>>933 こちらが乗り込んで作ろうとすると質が下がると言うくせに。

935 名前:デフォルトの名無しさん [02/09/27 12:08]
>>932
今、私はとってもいそがしい。 そこでだ。
キミが代わりに作っておいてくれないか?

936 名前:デフォルトの名無しさん [02/09/27 13:18]
UmlToJavaを7行で作って欲しいのですが…。

書式:「入力行」 => 「出力行」
-type hoge => private type hoge {\n}
#type hoge => protected (以下略
+type hoge => public (以下略
-type hoge(...) => private type hoge(...) {\n}
#(以下略
+(以下略
「それ以外」 => 「そのまま出力」

あと、+(public)以外のときには
public type getHoge() {\nreturn hoge;\n}
public void setHoge(type hoge) {\n}
をつけてくれるとうれしいです。

937 名前:936 mailto:sage [02/09/27 13:21]
書き忘れました。
実行時引数で与えたファイル名がクラス名になるようにしてください。

938 名前:デフォルトの名無しさん mailto:sage [02/09/27 13:59]
ここって依頼スレか?



939 名前:936 mailto:sage [02/09/27 14:20]
>>938
ネタを提供してやってるん…(゚д゚)ハッ…どうか作ってくださいm(_ _)m。

940 名前:デフォルトの名無しさん mailto:sage [02/09/27 17:56]
>>935 ROMな私が作って良いものができると思ってるんですか?

941 名前:デフォルトの名無しさん mailto:sage [02/09/27 18:08]
ifを3項演算子に書き換える、とかは圧縮する基本テクニックだろうが
結局のところは対象をいかに簡明でトリッキーなアルゴリズムに
変換できるか、に尽きると思うな。

942 名前:デフォルトの名無しさん mailto:sage [02/09/27 19:01]
論理演算、ビット演算、アルゴリズム、データ構造は必須。

943 名前:デフォルトの名無しさん mailto:sage [02/09/27 19:24]
>>940
そんなことは問題じゃない!
気持ちの問題だ!
あたってぶつかれ!

944 名前:デフォルトの名無しさん mailto:sage [02/09/27 19:27]
>>940
そして砕け散れ!

945 名前:デフォルトの名無しさん mailto:sage [02/09/27 21:32]
なんか今日はえらい背中を押しますね。
ROMってのは嘘で1度だけ書いてます。アレだったので叩かれましたが。。。


とりあえずC系の基本技、論理演算子と3項演算子の威力を数字にしてみます。
括弧はついていませんが、各条件部の前に!をつけても正しく動きます。

if(printf("1-1:"))printf("逝ってよし");else if(printf("1-2:"))printf("オマエモナー");else printf("シラネーヨ");
printf("1-1:")&&printf("逝ってよし")||printf("1-2:")&&printf("オマエモナー")||printf("シラネーヨ"); // 12バイト短縮
printf("1-1:")?printf("逝ってよし"):printf("1-2:")?printf("オマエモナー"):printf("シラネーヨ"); // 更に4バイト(演算子が全て2バイトから1バイトになった)

以上は単純で汎用的な短縮パターンですが、3項演算子は演算なだけにif文と違って
戻り値を利用できるので、then/else節に入る命令が同じなら

printf(printf("1-1:")?"逝ってよし":printf("1-2:")?"オマエモナー":"シラネーヨ");// 更に16バイト

とできます。(16バイトは"printf()"が2つ)


なお、これ↓は型の都合上動かないようで。
printf(printf("1-1:")&&"逝ってよし"||printf(printf("1-2:")&&"オマエモナー"||"シラネーヨ"));


946 名前:デフォルトの名無しさん mailto:sage [02/09/27 21:47]
そろそろ次スレですか?

947 名前:デフォルトの名無しさん mailto:sage [02/09/27 21:54]
つーかprintfの戻りって何だっけ?

948 名前:デフォルトの名無しさん mailto:sage [02/09/27 21:55]
printf("1-1:逝ってよし");

最短。



949 名前:デフォルトの名無しさん mailto:sage [02/09/28 00:43]
>>946
次スレは立てない方向じゃなかったの?

950 名前:デフォルトの名無しさん mailto:sage [02/09/28 00:58]
>>949
なんで?つーかそれ何処から出た話?

951 名前:デフォルトの名無しさん mailto:sage [02/09/28 01:02]
>>950 スレ建てお願いしまスタ

952 名前:950 mailto:sage [02/09/28 01:11]
>>951
立てるのは別にいいけど、過去作品まとめてくれ

953 名前:デフォルトの名無しさん mailto:sage [02/09/28 01:16]
>>950
レベルが落ちてるから立てなくてよくねぇ?という話は出てたな。
どうせ低下の一途を辿るなら、今のまま埋もれさせる方がいい、とかかな?
個人的にはせっかく出てきたハイレベルな常連を
厨房が叩いていたのを見た時点でこのスレの終わりを感じた。

過去作品は>>903-905

954 名前:デフォルトの名無しさん mailto:sage [02/09/28 01:17]
自己レス。>>900-905。スマソ

955 名前:950 mailto:sage [02/09/28 01:17]
つーか立てられるかわかんないけど・・
試しに今からスレ立てて見るから、>>2-5>>900-906とそれ以降のリンク、
誰か次スレに貼っつけてといてね。

956 名前:950 mailto:sage [02/09/28 01:20]
次スレ立てれました。
リンク貼りつけお願いします。

七行プログラミング part3
pc3.2ch.net/test/read.cgi/tech/1033143528/

957 名前:デフォルトの名無しさん mailto:sage [02/09/28 01:21]
>>956
お疲れ

958 名前:デフォルトの名無しさん mailto:sage [02/09/28 03:03]
やっぱりこのスレで止めておけばよかったね



959 名前:デフォルトの名無しさん mailto:sage [02/09/28 03:05]
switch(1){case 1:printf("pc3");case 2:printf("2ch");default:printf("net")}
(1==1)?printf("pc3"):(1==2)?printf("2ch"):printf("net")}

上下でやってること違うけど、switch文はやはり使えないな。予約語が長い。
走り抜けが利用できる、条件部が複雑だが等号で行ける、項数が多い。
その3点が揃えば使い道はあると思うが、なかなか無さそう。


まとめにくいなぁ・・・・・・。
3項演算は便利。インクリメント・デクリメントも基本。
ビット演算はとりあえず知っとく。
 ~-1==0なので、EOF検知に使える。
 >>692 のような優先順位を使ったカコイイ技(成果は1バイトだが)もあり。
論理演算が使われているところは隙があるかも。
あと、真理値表って便利。

960 名前:デフォルトの名無しさん mailto:sage [02/09/28 23:32]
なんであんなことになっちまったんだろうなぁ

961 名前:デフォルトの名無しさん mailto:sage [02/09/28 23:37]
みんなが少しずつ我慢できなかったから。

962 名前:デフォルトの名無しさん mailto:sage [02/09/29 00:13]
>>961
> みんなが少しずつ我慢できなかったから。

つーか、ソースも書けねー奴が仕切るからだよ。ちゃんとソースさらして議論すりゃ、厨房はそれなりに淘汰されると思うよ。

963 名前:デフォルトの名無しさん mailto:sage [02/09/29 01:01]
こちらで議論するのはなんだけど、
厨房の意見「どんなソースコードでもスレに貼っていいはずだ」
粘着の意見「7行スレは7行を目指す意志の無いソースを貼ってはいけない」
で、いいんだよね?俺は粘着派だな(w

ちなみに、このスレではみんなそこそこ7行を目指していた(様な気がする)。
しかし、厨房増加の危険は出ていた。テトリスでSが叩かれ
(しかも叩かれたのは内容ではなく「誰も興味ないから何度も書き込むな」)
円周率でトリッキーの1を叩く(これも内容ではなく「有名人はもう出てくるな」)。

最終的に明らかに7行の意志のないドラクエが出てきても叩かれない
(しかもコードの質としては、個人的にはテトリスや円周率に比べて低いように感じた)

そりゃスレの質も落ちるよなぁ。

>>962
ソースさらして議論ってどういう意味だろう?

964 名前:デフォルトの名無しさん mailto:sage [02/09/29 03:08]
2chに質を求める奴はなんつぅか・・・・・・頭が悪いんじゃなかろうか。
削除を行ったり規制を行ったりする管理人がいれば質も上がるだろうが、
2chは議論の場所しか貸してくれない。

質を求める奴は適当なHN使って自分でHP立ち上げて、ここに1回宣伝に来ればいいのに。

965 名前:962 mailto:sage [02/09/29 03:26]
>>963
> ソースさらして議論ってどういう意味だろう?

「どんなソースでも貼れ」「いや、七行にならない奴はダメだ」とか言ってたって議論は平行線だと思うよ。

27行のドラクエがダメだって言うけど、じゃあ何行ならいいの ? 27行でスカスカのコードもあるし、8行でもキチキチのコードもあるよね。

結局コードの行数って言っても一概に何行までならいいなんて言えないと思う。(かといって、一万行とか貼られても困るけどね。)

だから、とりあえず貼ってもらって、どう見てもダメな奴はそう指摘すりゃいいと思う。

少なくとも、「どんなソースでも貼れ」「いや、七行にならない奴はダメだ」なんて言う不毛な議論よりはマシになると思うよ。

966 名前:デフォルトの名無しさん mailto:sage [02/09/29 03:53]
>>964
part1は機能していたのにな。知名度が上がるとダメなのかな?
>>965
963ではないけど、7行にする意志があれば何行でもいいんじゃない?
ドラクエはどうかしらないが、part3のlispはあり得ないよな。

967 名前:デフォルトの名無しさん mailto:sage [02/09/29 04:40]
part3は、278からマトモそうな流れになってきた模様
pc3.2ch.net/test/read.cgi/tech/1033143528/278-

968 名前:デフォルトの名無しさん [02/09/29 06:20]
>>965
「このスレ」に於いては、七行でないとダメだろう
スレタイが前提になることを肝に銘じなくてはいかんよ
10行でOKと思う奴は10行のスレを立てれ



969 名前:デフォルトの名無しさん mailto:sage [02/09/29 06:33]
>>968
つーか元々perl少年のDVD解除7行事件簿から始まった事だろ。
十分短きゃそれでいいんだよ。

970 名前:デフォルトの名無しさん mailto:sage [02/09/29 06:35]
>>968みたいなやつがのさばってからだよ。
スレの雲行きが悪くなったのは

971 名前:デフォルトの名無しさん mailto:sage [02/09/29 06:40]
>>968
つーか、あげるなボケ!

972 名前:デフォルトの名無しさん mailto:sage [02/09/29 07:01]
上げられたくないなら埋め立てろ

973 名前:デフォルトの名無しさん mailto:sage [02/09/29 10:18]
>>968
>「このスレ」に於いては、七行でないとダメだろう
> スレタイが前提になることを肝に銘じなくてはいかんよ
> 10行でOKと思う奴は10行のスレを立てれ

じゃあ聞くけど、貼る奴は7行になると思って貼らないといけないの ?
自分の実力じゃ10行までしかできなかったけど、もしかしたらエキスパートが7行にしてくれるかもしれないじゃん。

あと、勢いあまって6行とかしたら失格ですか ?

まあ、何十行もある奴は論外として、元コードが10行位なら状況によっては7行ぐらいなることもあるでしょ ?
何でそんなにスレタイトルに拘るのかわかんらんよ。

974 名前:デフォルトの名無しさん mailto:sage [02/09/29 10:58]
>>973
自分でやらなくても(達成できなくても)7行への希望があるなら良いんじゃないのか
出したか無いけど、新スレのlispとか7行にするつもりがあるとは思えないだろ。

975 名前:デフォルトの名無しさん mailto:sage [02/09/29 11:45]
>>974
> 出したか無いけど、新スレのlispとか7行にするつもりがあるとは思えないだろ。

コード見ないとなんとも言えないよ。

976 名前:デフォルトの名無しさん mailto:sage [02/09/29 12:06]
>>975
>GC、関数トレース、リスト操作、再帰、高階、内部関数

奇跡が起きてもこれだけを7行付近まで持っていくのは不可能と断言できる。

977 名前:デフォルトの名無しさん mailto:sage [02/09/29 17:22]
>>975
その程度のことも解らない人はこの板に来ない方がいい

978 名前:デフォルトの名無しさん mailto:sage [02/09/29 17:53]
>>976
もし出来たら、目でピーナッツ噛めよな



979 名前:デフォルトの名無しさん mailto:sage [02/09/29 17:53]
>>977
> その程度のことも解らない人はこの板に来ない方がいい

ふ〜〜〜ん、あんたはコードを見なくてもわかるわけね、すごいね。

980 名前:デフォルトの名無しさん mailto:sage [02/09/29 18:33]
>>978-979
粘着見苦しい。つーか解るだろ(w

981 名前:デフォルトの名無しさん mailto:sage [02/09/29 18:39]
断定して排除するのも見苦しいぞ。
選民思想が強すぎる。

982 名前:デフォルトの名無しさん mailto:sage [02/09/29 18:44]
まあ無理っぽい率99.8%超えてるのは認めよう
でも、男なら いや 漢なら! 敢えて0.2%に挑む!

983 名前:デフォルトの名無しさん mailto:sage [02/09/29 18:50]
>>981「犬が卵を産まないと断定できるのか?」
ton.2ch.net/test/read.cgi/gline/1028811653/

984 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:14]
>>982
無理っぽい率100%越えてるって。

985 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:18]
>>984
えーやっぱりそうかなー
でも100%のヒーローなんているわけないよと
わかってんだからはりきるしかないですな

986 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:44]
>984
ヤマトじゃあるまいしどうやったら100%超えるのかと。
でも見たかったな44行lisp。

987 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:50]
GCとかトレースなどはあきらめても問題ないんじゃ?
順次機能を削っていけば…

988 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:57]
>>987
よし作れ



989 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:59]
>>988
俺はlispを知らない(w
ので、仕様を決めてくれ

990 名前:デフォルトの名無しさん mailto:sage [02/09/29 20:08]
7行職人に到る過程として「44行でこんなのできました」というのも
大切にすべきではと思う。7行スレでやるのはスレ違いだが。

無下に断るよりは隔離スレ(釣りバカ)で質疑応答を受けたり
気が向いた人が添削・指摘するなりしたほうがお互いベターでは?

991 名前:デフォルトの名無しさん mailto:sage [02/09/29 20:47]
>>990
> 無下に断るよりは隔離スレ(釣りバカ)で質疑応答を受けたり
> 気が向いた人が添削・指摘するなりしたほうがお互いベターでは?

ソース見てから、「あっちへ逝け」と振るんじゃダメなん ?

992 名前:デフォルトの名無しさん mailto:sage [02/09/29 21:02]
>>991
いいと思うぞ

993 名前:989 mailto:sage [02/09/29 21:05]
俺はlispを知らないので、代わりにlisp風?ミニ電卓を作ってみた。
"(* (+ 2 3) 4)" みたいな計算ができる。
貧弱な上短くする余地もまだまだある、つーか手抜きだが、その辺は好きに弄ってくれ。

#include<stdio.h>
char s[999],*p=s;a(void){int r=0;if(*p=='('){char c=*++p;++p;while(*p==32)++p;
if(c=='+')r=a()+a();else if(c=='-')r=a()-a();else if(c=='*')r=a()*a();else if(
c=='/')r=a()/a();else if(c=='%')r=a()%a();else if(c=='p'){r=a();printf("%d\n",
r);}++p;}else do{r=r*10+*(p++)-'0';}while(*p!=32&&*p!=0&&*p!=')');while(*p==32
)++p;return r;}main(){gets(s);printf("%d\n",a());return 0;}

994 名前:デフォルトの名無しさん mailto:sage [02/09/29 21:14]
>>993
つまり、逆ポーランド記法の電卓ってこと?

995 名前:989 mailto:sage [02/09/29 21:21]
逆ポーランド記法と正反対で、演算子が前に来るから…何て言うんだろ?

表示のpとループ構文l(←もちろん独自仕様)加えて7行に増やした(w
例えば(l 10 (p 10)) で 10を10回表示。
#include<stdio.h>
char s[999],*p=s;a(void){int r=0;if(*p=='('){char c=*++p;++p;while(*p==32)++p;
if(c=='+')r=a()+a();else if(c=='-')r=a()-a();else if(c=='*')r=a()*a();else if(
c=='/')r=a()/a();else if(c=='%')r=a()%a();else if(c=='p'){r=a();printf("%d\n",
r);}else if(c=='l'){int i,n=a();char*b=p;for(i=0;i<n;++i){p=b;r=a();}}++p;}
else do{r=r*10+*(p++)-'0';}while(*p!=32&&*p!=')');while(*p==32)++p;return r;}
main(){gets(s);printf("%d\n",a());return 0;}

996 名前:デフォルトの名無しさん mailto:どうせネタだろ [02/09/29 21:25]
>>994
> つまり、逆ポーランド記法の電卓ってこと?

逆ポーランドは、反対。

2 3 + 4 * とか入力すると、20 とか出力される。HP の奴が有名。

ポーランド記法は、* + 2 3 4 とか入力する。

997 名前:デフォルトの名無しさん mailto:sage [02/09/29 21:27]
HPの電卓は最高だな。クソCompaqめが…

1000取っていい?

998 名前:デフォルトの名無しさん mailto:sage [02/09/29 21:28]
>>996
ネタかどうかしらないがageるな



999 名前:デフォルトの名無しさん mailto:sage [02/09/29 21:32]
次スレ:七行プログラミング part3
pc3.2ch.net/test/read.cgi/tech/1033143528/l50

兄弟スレ:「釣りバカ日誌パート1」
pc3.2ch.net/test/read.cgi/tech/1033220509/l50


           ここは 乂1000取り合戦場乂 となりますた。。。
      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )

1000 名前:997 ◆1O00getQ mailto:お言葉に甘えて [02/09/29 21:32]
    \\                                              //
  ♪  \\    キョウモゲンキニ 1000get♪  ミンナナカヨク 1000get♪     //    ♪
       \\                                        //         ♪
     ♪    ∧ ∧     ∧ ∧   ∧ ∧     ∧ ∧    ∧ ∧     ∧∧      ♪
 ♪    ∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧      ♪
      (゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧
    ♪ ∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)  ♪
─♪──(゚0 ゚*)|  ∪(゚0 ゚*)|  ∪(゚0 ゚*)|  ∪(゚0 ゚*)|  ∪(゚0 ゚*)|  ∪(゚0 ゚*) |  ∪(゚0 ゚*) |  ∪───────
       |  ∪  | |  ∪|   | | ∪. |   | |  ∪|  | .|  ∪|   | | ∪ |  | |  ∪ |  |〜    ♪
  ♪   |  | U U .|  | U U  |  | U U. |  | U U .|  | U U  |   | U U  |  | U U   ♪
       U U     U U     U U     U U     U U     U U     U U


1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<349KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef