- 1 名前:デフォルトの名無しさん [02/04/15 12:09]
- 7行×79文字なら言語は問いません。
過去作品は>>2-5を参照。 ■前スレ pc.2ch.net/test/read.cgi/tech/984182993/
- 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;}
|

|