1 名前:デフォルトの名無しさん [02/04/15 12:09] 7行×79文字なら言語は問いません。 過去作品は>>2-5 を参照。 ■前スレ pc.2ch.net/test/read.cgi/tech/984182993/
136 名前:デフォルトの名無しさん [02/04/20 17:15] >>102 のやつ、回転できなかったけど、直ってるかな?ドキドキ。
137 名前:デフォルトの名無しさん mailto:sage [02/04/20 17:17] sage忘れた、 アナログ回線切って、オフラインでコーヒーブレークしてから、CPU頭に載せて自冊・・・
138 名前:S ◆Q14CxNhI [02/04/20 17:31] >>136 >>102 から回転がリターンキーになってます。 書き忘れちゃったんです、宇都。 8行達成が、ぎりぎりかも・・・ <body onKeyDown=K=event.keyCode><pre><script>B=[[-11],[-24],[2],[13],[-13],[-1] ,[2,-1]];W=240;function Y(){E=B[t];i=4;if(K)if(K-13){for(d=K-37?1:-1;i--;)d*=!Z [h+E[i]+d];h+=d}else{for(C=[];i--&&!Z[h+(C[i]=E[i]*A-Math.round(E[i]/A)*145)];) ;t*i<0?E=B[t]=C:0}for(f=K=i=0;i<4;Z[W+p]=1)f+=Z[A+(p=h+E[i++])];if(f){for(t=++t %7;i--;)Z[h+E[i]]=1;h=5}h+=A;for(k=1,i=W-A;i--;)if(i%A)Z[i]?0:i-=i%A;else for(P +=k++,j=i+=A;--j>A;)Z[j]=Z[j-A];for(i=W;i--;Z[W+i]=Z[i])D.all(6+i).innerHTML=i- 11?Z[W+i]?"□":" ":P;Z[5]?0:setTimeout(Y,99)}h=17;A=12;Z=[];D=document;for(K=t =P=i=0;i<W*2;D.write(i%13?"<b></b>":"\n"),Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0 ,1,-A);Y()</script>
139 名前:S ◆Q14CxNhI mailto:sage [02/04/20 18:19] あまり減らなかったので、sage 進行 <body onKeyDown=K=event.keyCode><pre><script>function Y(){E=B[t];i=4;if(K)if(K- 13){for(d=K-37?1:-1;i--;)d*=!Z[h+E[i]+d];h+=d}else{for(C=[];i--&&!Z[h+(C[i]=E[i ]*A-Math.round(E[i]/A)*145)];);t*i<0?B[t]=C:0}for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E [i++]]=1;if(f){for(t=++t%7;i--;)Z[h+E[i]]=1;h=5}h+=A;for(k=1,i=228;i--;)if(i%A) Z[i]?0:i-=i%A;else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A];for(i=240;i--;X[i]=Z[i] )D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,99)}B=[[-11],[- 24],[2],[13],[-13],[-1],[2,-1]];D=document;A=12;Z=[];h=17;X=[];for(K=t=P=i=0;i< 480;D.write(i%13?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0,1,- A);Y()</script>
140 名前:デフォルトの名無しさん mailto:sage [02/04/20 20:03] >>138 >>117 はスペース回転だったけど? >>117 ベースで機能を追加すると死んでしまった・・・ 所詮折れのスキルはこんなものなのか?と、悔しいから奮闘中。 Sタン、更新ハヤイヨー(スゴイナ-。 7行の壁を破りたい・・・
141 名前:デフォルトの名無しさん mailto:sage [02/04/20 20:13] >>139 本題じゃないけどこのテトリス、ゲームとしてシビアすぎない?。
142 名前:デフォルトの名無しさん mailto:sage [02/04/20 21:06] >>141 ちょっと、ね。キーが鈍いし、ブロックは早いし。 まぁ、自分で調節すればいいんだけど。
143 名前:S ◆Q14CxNhI mailto:sage [02/04/20 21:06] >>140 わかりやすさを優先するために >>117 は少し以前のものをベースに、その時点での最新版と融合させました。 >>141 1段落下に対して、横移動あるいは回転のどちらか1つしかできませんので。 2〜3回操作可能にすると、バランスが良くなるでしょう。 落下を任意(カーソル下)、得点に応じて速くなるとすることもできるでしょう。 ただ、どちらにしろ、文字数が・・・
144 名前:デフォルトの名無しさん mailto:sage [02/04/20 21:13] ちょうどテトリスつくりたかったこともあって、参戦。 dめおえj、JavaScriptやったことないんだよね。 そうか、ブロックのデータはそうやって考えると小さくなるのか。 パパ、がんばっちゃうぞー
145 名前:デフォルトの名無しさん mailto:sage [02/04/20 23:20] 凄いのかもしれないけれど、ちょっといまいちの印象が抜けきらないな。 とりあえず、長くなってもいいからゲームとして成り立つソースを 是非アップして貰いたいと思いますがどうでしょう。 自分で作ってもいないのに生意気ですか?逝ってきます。
146 名前:S ◆Q14CxNhI mailto:sage [02/04/20 23:31] 多少遊びやすいバージョン >>145 こんなもんで、どうでしょう? <body onKeyDown=K=event.keyCode><pre><script>function Y(){E=B[t];i=4;if(K)if(K- b){for(d=K-37?1:-1;i--;)d*=!Z[h+E[i]+d];h+=d}else{for(C=[];i--*!Z[h+(C[i]=E[i]* A-Math.round(E[i]/A)*145)];);t*i<0?B[t]=C:0}for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E[ i++]]=1;if(e){if(f){for(t=++t%7;i--;)Z[h+E[i]]=1;h=5}h+=A;for(k=1,i=228;i--;)if (i%A)Z[i]?0:i-=i%A;else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A];}e=1-e;for(i=240; i--;X[i]=Z[i])D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,9) }B=[[-11],[-24],[2],[b=13],[-b],[-1],[2,-1]];D=document;A=12;Z=[];h=17;X=[];for (e=K=t=P=i=0;i<480;D.write(i%b?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i %7].push(0,1,-A);Y()</script>
147 名前:145 mailto:sage [02/04/20 23:53] >>146 キー操作が辛くてなんとも… その部分を改良しないと、テトリスとしてはダメかなと、 僭越ながら思いました。とりあえずソース読んでみます
148 名前:デフォルトの名無しさん mailto:sage [02/04/21 00:01] なんかテトリス不評だな。俺は7行ネタとしては面白いと思うけど、 ゲームとして見たら……うーん。 やっぱJSだからきついな
149 名前:デフォルトの名無しさん mailto:sage [02/04/21 00:17] >>147 そうか?おれには簡単すぎていつまでも終わらない ゲーム性はこれくらいでいい これで7行したら紙
150 名前:デフォルトの名無しさん mailto:sage [02/04/21 00:21] >>149 先人達に比べると、完成度をもう少し上げて欲しいと思わないか? 前スレのマインスイーパとかの完成度と比べてしまうと、どうも…… でもとりあえず7行にするのはそれでいいかもしれないけど、 S氏には期待しているので、もう少し頑張って欲しい、と無責任なことを言うテスト
151 名前:デフォルトの名無しさん mailto:sage [02/04/21 00:37] >>150 先人達と比べるのは辛すぎるのではない? Sさんもかなり頑張って縮めてると思うし、なによりこのやる気はいいと思う。 しかし、前スレの初期にいた人、来ないね。
152 名前:S ◆Q14CxNhI mailto:sage [02/04/21 02:48] 多少遊びやすい版でようやく >>138 に追いつく。今晩はここまでにします。 <body onKeyDown=K=event.keyCode><pre><script>X=[];function Y(){E=B[t];i=4;if(K) if(K-b){for(d=K-37?1:-1;i--;)d*=!Z[h+E[i]+d];h+=d}else{for(C=[];i--*!Z[h+(C[i]= E[i]*A-Math.round(E[i]/A)*145)];);t*i<0?B[t]=C:0}for(f=K=i=0;i<4;f+=Z[A+p])X[p= h+E[i++]]=1;if(e=!e){if(f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if( i%A)i-=i%A*!Z[i];else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A}for(i=240;i--;X [i]=Z[i])D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,9)}B=[[ -11],[-24],[2],[b=13],[-b],[-1],[2,-1]];D=document;A=12;Z=[];h=17;for(e=K=t=P=i =0;i<480;D.write(i%b?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0 ,1,-A);Y()</script>
153 名前:デフォルトの名無しさん mailto:sage [02/04/21 03:01] >>152 お疲れ。
154 名前:S ◆Q14CxNhI [02/04/21 03:54] ついに8行達成です。・・・遊びづらい版ですが・・・ <body onKeyDown=K=event.keyCode><pre><script>X=[];A=12;Z=[];function Y(){E=B[t] c=g=f=0;d=K-37?1:-1;C=[];for(i=4;i--&&K;K-b?c+=!Z[h+p+d]:g+=!Z[h+(C[i]=p*A-Math .round(p/A)*145)])p=E[i];t&&g==4?B[t]=C:c-4?0:h+=d;for(K=i=0;i<4;f+=Z[A+p])X[p= h+E[i++]]=1;if(f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if(i%A)i-=i% A*!Z[i];else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A;for(i=240;i--;X[i]=Z[i]) D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,99)}B=[[-11],[- 24],[2],[b=13],[-b],[-1],[2,-1]];D=document;h=17;for(K=t=P=i=0;i<280;D.write(i% b?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0,1,-A);Y()</script> 眠い。
155 名前: ◆Air.TtTk mailto:sage [02/04/21 04:07] ちゃんとした迷路(7行) 迷路って以外と簡単だったのね。 5行レベルかな…。 // M.java public class M{int g,x,y,m[][]=new int[79][23];public static void main(String[]_ ){new M();}M(){for(y=0;y<23;y++)m[0][y]=m[78][y]=1;for(x=0;x<79;x++)m[x][0]=m[x] [22]=1;m[2][1]=m[76][21]=m[2][2]=1;while(true){g=1;for(x=2;x<77;x+=2)for(y=2;y< 21;y+=2){if(m[x][y]>0){D(0,-2);D(0,2);D(-2,0);D(2,0);}g&=m[x][y];}if(g>0)break;} for(y=0;y<23;y++){for(x=0;x<79;x++){System.out.print(m[x][y]>0?" ":"@");}System. out.println("");}}void D(int X,int Y){if(m[x+X][y+Y]<1&&Math.random()<0.1)m[x+X] [y+Y]=m[x+X/2][y+Y/2]=1;}}
156 名前:デフォルトの名無しさん mailto:sage [02/04/21 10:17] >>155 (´ー`)。o○(Java知らないから遊べねーや) 金ないから家ではBCCでコンパイルできるつしか試せない罠
157 名前:デフォルトの名無しさん mailto:sage [02/04/21 13:12] >>156 Javaコンパイラは無料じゃー。
158 名前:デフォルトの名無しさん mailto:sage [02/04/21 15:08] >>157 ええっそうなの?早速あさってみよ。 通信回線遅いうえに従量制なんで重いのは落とせない罠。 #初心者丸出しな自分に鬱
159 名前:デフォルトの名無しさん mailto:sage [02/04/21 15:23] おれもマチヒチ勉強してみよっかなぁ マチヒチっ何だよ。javaだよ。なんかカナロックか何かに取り付かれていたようだ。。。(w
160 名前:デフォルトの名無しさん mailto:sage [02/04/21 15:55] ワラタ
161 名前:デフォルトの名無しさん mailto:sage [02/04/21 16:28] cygwin があるから、c も FORTRAN も Pascal も perl も・・・ つーか、おれんちは Unix系 しかないから、むしろ Windows 環境が無い。
162 名前:perl16 mailto:sage [02/04/21 17:00] javaむずい。つーかよく分からん。 perlしかやってないもんで。 perlでゲームは面白くない。CUI中心だから。 >>135 >トークナイザ作って括弧の対応調べて地道に改行 そうですね。一時的にハッシュとかに対応できるようにしても、 新たな問題が出てきますからね。 七行で完璧に近いインデントツール作るのは難しそうだ。 >>Java&JSプログラマーの皆さん Java&JSのインデントツールは作らないんですか?
163 名前:デフォルトの名無しさん mailto:sage [02/04/21 17:18] >>162 インデントツールという発想がいまいち言語にあわなくて…。 Cやマチヒチの場合、縮めた後ではインデントを揃えても見やすくならないでしょ?
164 名前:デフォルトの名無しさん mailto:sage [02/04/21 17:19] >>161 割り切って1台くらいWin環境を入れたら? gcc for Win32だとWindowsプログラムの開発も出来るよ。
165 名前:Javaさん mailto:sage [02/04/21 17:31] 前スレ770です。。 いつの間にやらPart2突入していたんですね。 >>155 ぱっと見削れる部分を削ってみました。 class M{int g,x=0,y=0,m[][]=new int[79][23];static void main(String[]_){new M() ;}M(){for(;++y<23;m[0][y]=m[78][y]=1);for(;++x<79;m[x][0]=m[x][22]=1);m[2][1]=m [76][21]=m[2][2]=1;for(;;g=1){for(x=2;x<77;x+=2)for(y=2;y<21;y+=2){if(m[x][y]>0 ){D(0,-2);D(0,2);D(-2,0);D(2,0);}g&=m[x][y];}if(g>0)break;}for(y=-1;y++<22;x=0) for(;x<79;System.out.print(m[x++][y]>0?" ":x>77?"@\n":"@"));}void D(int X,int Y ){if(m[x+X][y+Y]<1&&Math.random()<0.1)m[x+X][y+Y]=m[x+X/2][y+Y/2]=1;}} やっぱJavaは読みやすいなぁ、、。 さて、前スレで書いたHTTP鯖にバグあったから手直し、、、。 こうやって休日がつぶれていくわけです。鬱
166 名前:デフォルトの名無しさん [02/04/21 17:43] 以前見かけて面白かったスレですが、ちょっとネタを思いついたので。 急スレに書き込んでしまったのですが、写します。 ーーーーーーーーーーーーー プラパズルNo5とかどうでしょうか。 全組み合わせを探し出し、できれば表示する。 ルール 正方形が5つ集まってできたコマが 12種類(5つの正方形を組み合わせて出きる全通りです)あります。 これを6*10マスに収まるように並べる並べ方をしらべます。 ちなみに組み合わせは全部で2339通りあります。 もちろんコードが短ければ短いほど、全通りの検出が速ければ速いほど イイ! ってかんじで。 ーーーーーーー 全組み合わせ合わせの取得まで、私がテキトーに作った(全然7行じゃないですよ)奴で3日、まじめに作り直して5分かかりました。 結構真剣にやって10秒ぐらいまで縮みました。 7行でも3日ぐらいの奴ならできそうに思うんですが、ここの方ならスピードも・・・ なお、マシンはPenIII500でした。
167 名前:デフォルトの名無しさん mailto:sage [02/04/21 17:46] ソースキボン
168 名前:デフォルトの名無しさん mailto:sage [02/04/21 17:48] ネタ提供だけ? とりあえず自分で縮められるところまで縮めてくれ。
169 名前:perl16 mailto:sage [02/04/21 17:59] >>163 確かにそうですね。 ツール使ってインデントしても、 ただ改行してるだけですからね… 字下げもするか…
170 名前:デフォルトの名無しさん mailto:sage [02/04/21 19:18] >>169 そういう問題ではなく、たとえば if(v-p-*i&&m[v]==t&&(s=a=v=p,d))do m[v]=t,v+=*i;while(m[v]-t); をインデントしても、 if(v-p-*i&&m[v]==t&&(s=a=v=p,d)) do m[v]=t,v+=*i; while(m[v]-t); にしかならないぞ、という事ではないかな? これで読みやすくなるわけでは無いよね。無いよりはマシだけど
171 名前: ◆Air.TtTk mailto:sage [02/04/21 19:48] ちゃんとした迷路(5行) // M.java public class M{public static void main(String[]_){new M();}M(){for(;p<1617;p++)m [p+80+p/77*2]=1;m[81]=m[160]=m[1735]=0;for(;g>0;){g=0;for(p=160;p<1658;p+=(p+3)% 79<1?((p+82)%158<1?84:5):2){if(m[p]<1){D(-158);D(158);D(-2);D(2);}g|=m[p];}}for( p=0;p<1817;p++)System.out.print(m[p]<1?(p%79<1?"\n ":" "):"@");}void D(int P){if (m[p+P]>0&&Math.random()<0.2)m[p+P]=m[p+P/2]=0;}int g=1,p,m[]=new int[1817];} >>165 M は public じゃないといけないし、 j2sdk1.4.0 なら main も public じゃないといけないらしいぞ。
172 名前:S ◆Q14CxNhI [02/04/21 21:56] テトリス多少遊びやすい版も8行到達です。 <body onKeyDown=K=event.keyCode><pre><script>X=[];function Y(){(E=B[t]).push(c= 0,1,-A);C=[d=K-37?1:-1];for(i=4;i--&&K;K-b?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math. round(p/A)*145)])p=E[i];t&&c<-3?B[t]=C:c-4?0:h+=d;for(f=K=i=0;i<4;f+=Z[A+p])X[p =h+E[i++]]=1;if(e=!e){if(f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if (i%A)i-=i%A*!Z[i];else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A}for(i=240;i--; X[i]=Z[i])D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,9)}B=[ [-11],[-24],[2],[b=13],[-b],[-1],[2,-1]];D=document;A=12;Z=[];h=17;for(e=K=t=P= i=0;i<280;X[i]=Z[i]=++i%A<2||i>228?1:0)D.write(i%b?"<b></b>":"\n");Y()</script>
173 名前:perl16 mailto:sage [02/04/21 22:29] >>170 あ、そうか。 うーん。完璧にインデントするのは難しい。
174 名前:Javaさん mailto:sage [02/04/21 22:43] >>171 とうとう5行ですか。 ロジックの変更お疲れ様です。 ここまでくると、残りの2行で何か出来そうですね。 >M は public じゃないといけないし、 >j2sdk1.4.0 なら main も public じゃないといけないらしいぞ。 Thanks. でも動くならいいやというノリで、削ってしまう今日この頃なのでアリマス。鬱氏
175 名前:Javaさん mailto:sage [02/04/21 22:46] >>173 インデントのことでなく、変数名のことを言っているんじゃないかな?
176 名前:S ◆Q14CxNhI mailto:sage [02/04/21 22:47] 表示系を変更したんですが、どうでしょうか? <body onKeyDown=K=event.keyCode><script>Z=[];B=[[-11],[-24],[2],[b=13],[-b],[-1 ],[2,-1]];function Y(){(E=B[t]).push(c=0,1,-A);C=[d=K-37?1:-1];for(i=4;i--&&K;K -b?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/A)*145)])p=E[i];t&&c<-3?B[t]=C:c -4?0:h+=d;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E[i++]]=1;if(e=!e){if(f){for(t=++t%7; i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if(i%A)i-=i%A*!Z[i];else for(P+=k++,j=i+=A ;--j>A;)Z[j]=Z[j-A]}h+=A}for(S="",i=0;i<240;S+=i-11?X[i]?"■":"_":P,X[i]=Z[i++ ])S+=i%A?"":"<br>";document.all(3).innerHTML=S;Z[5]?0:setTimeout(Y,150)}X=[];A= 12;for(e=K=t=P=i=0;i<280;h=17)X[i]=Z[i]=++i%A<2||i>228?1:0;Y()</script>
177 名前:デフォルトの名無しさん [02/04/22 00:34] >>168 ネタ提供だけのつもりだったんですが・・・ ソースはなくしちゃって。また作っても良いんですが、最近忙しくて・・・
178 名前:perl16 mailto:sage [02/04/22 01:07] よく分からなくなってきた。 なんか僕、書き込むたびにつっこまれているような…。
179 名前:デフォルトの名無しさん mailto:sage [02/04/22 01:40] >>178 有名税ってことで。
180 名前:厨々房某 mailto:sage [02/04/22 04:18] プログラムのことはよくわからないんですが、 ネットで対戦できるゲーム作れますかね。
181 名前:デフォルトの名無しさん mailto:sage [02/04/22 04:21] 7行でできたら神だ・・・・ まず言語は何がいいか?詳しくないからわからないけど、 Cじゃ厳しそうだな。
182 名前:デフォルトの名無しさん mailto:sage [02/04/22 11:10] >180 じゃんけんぐらいならすぐできるぞ。
183 名前:S ◆Q14CxNhI mailto:sage [02/04/22 20:39] ゲーム性能向上も狙ってみたんですが・・・ <body onKeyDown=K=event.keyCode><script>function Y(){(E=B[t]).push(c=0,1,-A);C= [d=K-37?1:-1];for(i=4;i--&&K;K-b?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/A) *145)])p=E[i];t&&c<-3?B[t]=C:c-4?0:h+=d;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E[i++]] =1;if(e=!e){if(f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if(i%A)i-=i% A*!Z[i];else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;S+=i-11 ?X[i]?"■":"_":P,X[i]=Z[i++])S+=i%A?"":"<br>";document.body.innerHTML=S;Z[5]?0 :setTimeout(Y,99-P)}X=[B=[[-11],[-24],[2],[b=13],[-b],[-1],[2,-1]]];for(Z=[A=12 ],e=K=t=P=i=0;i<280;h=17)X[i]=Z[i]=++i%A<2||i>228?1:0;Y()</script>
184 名前:S ◆Q14CxNhI [02/04/23 00:04] 今日はここまで、アプアゲ 1日5文字くらい縮められて、今月中に7行達成できるかなぁ <body onKeyDown=K=event.keyCode><script>function Y(){E=B[t];c=0;C=[d=K-37?1:-1] for(i=4;i--&&K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/A)*145)])p=E[i] t&&c<-3?B[t]=C:c-4?0:h+=d;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E[i++]]=1;if(e=!e){if (f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if(i%A)i-=i%A*!Z[i];else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;S+=i-11?X[i]?"■": "_":P,X[i]=Z[i++])S+=i%A?"":"<br>";document.body.innerHTML=S;Z[5]?0:setTimeout (Y,99-P)}X=[B=[Z=[A=12]]];for(e=K=t=P=i=0;i<264;X[i]=Z[i]=++i%A<2||i>228?1:0)B[ i%7]=[[-7,-20,6,h=17,-9,3,6][i%7]-4,0,1,i%6?-A:-1];Y()</script>
185 名前:perl16 mailto:sage [02/04/23 02:29] >>179 さん いい意味で有名(トリッキーの1氏みたいな)ならいいですが、 明らかに悪い意味で有名なので鬱。 もっと勉強せねば…
186 名前:デフォルトの名無しさん [02/04/23 12:39] >>184 ぬをを…一文字でも貢献できればと思ったが、全然わかんねぇYO!
187 名前:デフォルトの名無しさん mailto:sage [02/04/23 16:13] 俺も参加。 前スレ839のproxyを縮めてみた。 import java.net.*;import java.io.*;class P{public static void main(final String a[])throws Exception{ServerSocket s=new ServerSocket(a.length>2?Integer.parseInt (a[2]):8080);for(;;){Socket n=s.accept(),o=new Socket(a[0],Integer.parseInt(a[1] ));new P(o.getInputStream(),n.getOutputStream());new P(n.getInputStream(),o .getOutputStream());}}P(final InputStream i,final OutputStream o){new Thread(new Runnable(){public void run(){try{for(int d;(d=i.read())!=-1;)o.write(d);i.close( );o.close();}catch(Exception e){}}}).start();}}
188 名前:S ◆Q14CxNhI mailto:sage [02/04/23 22:25] 一日5文字なんて、夢は夢だった・・・1文字減らす難しさは指数関数的に増えるのかも 大改造して数文字減らせるかもと作業していますが、今日はパスです
189 名前:デフォルトの名無しさん mailto:sage [02/04/24 17:22] ピンポン、8行だけど。 難しい・・・このままじゃゲームとして面白くないし(;´Д`) import java.awt.*;class P extends Canvas{static int x=1,y=1,h=1,v=1,b=1;{ enableEvents(8);}public static void main(String a[]){Frame f=new Frame(); P p=new P();f.setSize(120,160); f.add(p); f.show();for(;;){p.repaint(); try{Thread.sleep(20);}catch(Exception e){}if(x<1||x>98)h*=-1;if(y<1||y>118|| (y>108&&x>b&&x<b+20))v*=-1;x+=h;y+=v;}}public void paint(Graphics g){g.drawRect (0,0,100,120);g.fillRect(x,y,2,2);g.fillRect(b,110,20,3);}public void processKeyEvent(java.awt.event.KeyEvent e){int c=e.getKeyCode();if(e.getID()!= 401)return;if(c==37&&b>1)b-=2;if(c==39&&b<80)b+=2;}}
190 名前:S ◆Q14CxNhI [02/04/24 22:34] テトリス。後46文字? <body onKeyDown=K=event.keyCode><script>X=[B=[Z=[a=A=12]]];function Y(){C=[d=K- 37?1:-1];c=0;for(i=4;i--&&K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/A) *145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1; if(e=!e){if(f|a){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t %7]-4,a=0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A ;)Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;S+=i-11?X[i]?"■":"_":P,X[i]=Z[i++])S+=i%A ?"":"<br>";document.body.innerHTML=S;Z[5]?0:setTimeout(Y,99-P)}for(e=K=t=P=i=0; i<264;Z[i]=++i%A<2||i>228?1:0)h=17;Y()</script>
191 名前:デフォルトの名無しさん mailto:sage [02/04/24 22:47] >189氏のピンポンいぢってみた也 import java.awt.*;public class P{public static void main(String a[]){new Frame (){int x,y,s,h=1,v=1,b;{setSize(120,160);Canvas p=new Canvas(){{enableEvents(8 );}public void paint(Graphics g){g.drawRect(0,0,100,120);g.fillRect(x,y,2,2);g .fillRect(b,110,20,3);}public void processKeyEvent(java.awt.event.KeyEvent e){ if(e.getID()==401)s=(e.getKeyCode()==37?-2:2);else s=0;}};add(p);show();try{ for(p.requestFocus();;p.repaint()){Thread.sleep(20);if(x<0||x>99)h*=-1;if(y<0 ||y>119||(y>108&&x>b&&x<b+20))v*=-1;x+=h;y+=v;b+=s;}}catch(Exception e){}}};}}
192 名前:デフォルトの名無しさん mailto:sage [02/04/24 23:15] >>190 ソースを読んだけど、テトリスだとは理解できなかた ...(゚Д゚)逝ってきます
193 名前:デフォルトの名無しさん [02/04/24 23:36] 前スレ 839 です. アスキーアートを Java で作ってみた. 特に工夫もせず,ビールを飲みながら作ると,できちゃった. import java.io.*;import javax.swing.*;public class A{static String A=" `.-:i+*"+ "3X8&%$W#@";public static void main(String[]S){PrintStream o=System.out; ImageIcon c=new ImageIcon(S[0]);int h=c.getIconHeight(),w=c.getIconWidth();int[] p=new int[w*h];try{(new java.awt.image.PixelGrabber(c.getImage(),0,0,w,h,p,0,w)) .grabPixels();}catch(InterruptedException e){}for(int i=0;i<h;i++){for(int j=0;j <w;j++){int P=p[i*w+j];int g=(int)(0.3*((P>>16 )&0xff)+((P>>8 )&0xff)*0.6+(P&0xff) *0.1);o.print(A.charAt(g/A.length()));}o.println();}o.flush();System.exit(0);}} $ java imagefile
194 名前:デフォルトの名無しさん mailto:sage [02/04/25 00:02] >>193 すごい! Java の強みを生かした良いプログラムですな。
195 名前:デフォルトの名無しさん mailto:sage [02/04/25 00:40] 蒸し返すようで悪いけど、 >>22 よ。 スライド辞書圧縮が楽勝だというのなら、もっと短くしてみれ
196 名前:デフォルトの名無しさん mailto:sage [02/04/25 01:18] >193の出力を79行にしてみた import java.awt.image.*;import java.awt.*;public class A{public static void main(String[]S)throws Exception{Image c=new javax.swing.ImageIcon(S[0]). getImage();int w=79,h=c.getHeight(null)*w/c.getWidth(null);BufferedImage s=new BufferedImage(w,h,10);Graphics g=s.getGraphics();g.drawImage(c,0,0,w,h,null);g. dispose();DataBuffer p=s.getData().getDataBuffer();char[]b=new char[w];for(int y=0;y<h;y++){for(int x=0;x<w;x++)b[x]=" `.-:i+*3X8&%$W#@".charAt(p.getElem(x+y *w)/16);System.out.println(b);}System.out.flush();}} もうちょっと縮むかも。 System.out.flush()は要らないかも。 コンソールの文字の縦横比を考慮した方がいいのかも。かも。
197 名前:S ◆Q14CxNhI [02/04/25 01:48] 意外とさくさく進みます。後40字。 <body onKeyDown=K=event.keyCode><script>X=[B=[Z=[A=12]]];function Y(){c=0;C=[d= K-37?1:-1];for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[(C[i]=p*A-Math.round(p/A)*145) +h])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1;if(e =!e){if(f|a){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t%7]- 4,a=0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;)Z[ j]=Z[j-A]}h+=A}for(i=S="";i<240;S+=X[i]?"■":"_",X[i]=Z[i++])S+=i%A?"":"<br>"; document.body.innerHTML=S+P;Z[5]?0:setTimeout(Y,99-P)}for(e=K=t=P=i=0;i<264;Z[i ]=++i%A<2||i>228?1:0)a=h=17;Y()</script>
198 名前:デフォルトの名無しさん mailto:sage [02/04/25 01:51] >>197 目立ちたいのはわかるが、作業中なのにぽこぽこageんでください。 ageられてるから見てみると、作業途中のテトリスばかりでうざいです。
199 名前:デフォルトの名無しさん mailto:sage [02/04/25 02:00] >>198 むしろどんどんアゲ欲しいのだが。 テトリス(以外も含めて)の縮め過程を見るのが最近ここのスレでの楽しみ。 それとも >>198 よ。作業用スレ立てるか?その方がうざい。
200 名前:perl16 mailto:sage [02/04/25 02:04] >>198 まぁまぁマターリしようよ。
201 名前:デフォルトの名無しさん mailto:sage [02/04/25 02:08] >>199 はぁ? 何で作業スレ立てるって話になるんだよ 別に作業課程を書き込むのは悪くないけど、いちいちageるなってことだ。 大幅に構造を変更したとかならともかく、ちまちま削るたびにageられても迷惑だ。 だいたい、ageられなきゃレスを確認できない>>199 の環境に問題がある。
202 名前:デフォルトの名無しさん mailto:sage [02/04/25 04:02] >193氏のアスキーアートをさらに縮めて4行に。 class A{static{new javax.swing.ImageIcon(System.getProperty("i")){int i,w=80,h =w*getIconHeight()/getIconWidth();{new java.awt.image.BufferedImage(w,h,10){{ for(getGraphics().drawImage(getImage(),0,0,w,h,null);++i<w*h;)System.out.print (" `.-:i+*3X8&%$W#@".charAt(getData().getDataBuffer().getElem(i)>>4 ));}};}};}} コンソールの横幅を80桁にして java -Di=C:\graphic\hoge.jpg A みたいな感じで実行。例外吐いて終了。 なんというか、これぞ糞コードの極み。みたいな。
203 名前:デフォルトの名無しさん mailto:sage [02/04/25 07:06] テトリスうざいのは同感だが、 作った物を見てくれ……というS氏の気持ちもわからんではない。
204 名前:デフォルトの名無しさん mailto:sage [02/04/25 17:11] extern int putchar(int);char*P="31287f861fa1fa187e7a182085efa186187efe0fa083ff\ e0fa08207a182785e861fe186110410410404104185e862f248a182082083f873b61861871a658\ e17a186185efa187e8207a186589dfa187e8a17a078185e7c410410486186185e86186148c8618\ 6dce185230c4a144a104104fc210843f";B(int i,int c){long long int j,x;for(x=j=0;j< 9;j++)x=(x<<4)+(*(P+i*9+j)-(*(P+i*9+j)>60?87:48));for(j=0;j<6;j++)putchar(((x>> c*6)&63)>>(5-j)&1?35:32);putchar(32);}main(int c,char*v[]){char*l,j;if(c>1)for( j=5;j>=0;j--){for(l=v[1];*l!=0;l++)B(*l-65,j);putchar(10);}} banner 大文字アルファベットのみ。long long int を __int64 にすればVCでも動くと思う。 上のAA生成に比べると見劣りするナァ(;´Д`)
205 名前:デフォルトの名無しさん mailto:sage [02/04/25 17:31] >199はageとアップを混同してると思われ。 プログラミング過程はどんどんカキコしていいけど、 完成品じゃないならメール欄にsageと書くべし。
206 名前:193 mailto:sage [02/04/25 21:21] >>187 new Thread(new Runnable(){ ... の new Runnable っていらんのじゃないの? なくなってもいいから,もっと縮むかも. >>202 縮むもんだねぇ. ちゃんとインデントして見たソース. 私には書けない... 喜んでいいのやら哀しんでいいのやら...
207 名前:perl16 mailto:sage [02/04/26 00:56] ピンポンには正直驚いた。 僕はJAVAプログラミングできませんが、 ピンポンを発展させて7行でブロック崩しができたらすごいと思う。 Perlでなんかいいネタないかなー。
208 名前:187 mailto:sage [02/04/26 09:21] >>206 縮めてみた import java.net.*;import java.io.*;class P{static void main(String a[])throws Exception{ServerSocket s=new ServerSocket(a.length>2?Integer.parseInt(a[2]):8080 );for(;;){Socket n=s.accept(),o=new Socket(a[0],Integer.parseInt(a[1]));new P(o. getInputStream(),n.getOutputStream());new P(n.getInputStream(),o.getOutputStream ());}}P(final InputStream i,final OutputStream o){new Thread(){public void run() {try{for(int d;(d=i.read())!=-1;)o.write(d);i.close();o.close();}catch(Exception e){}}}.start();}} こんなもんか
209 名前:S ◆Q14CxNhI mailto:sage [02/04/26 22:19] >>198 >> 203 うざっこく思われているということに全く気付いていませんでした。 申し訳ありません。 今後は気をつけて参加したいと思います。
210 名前:デフォルトの名無しさん mailto:sage [02/04/26 22:36] >>209 ガンバレSさん。sageだけど応援してるよ いつかロシア人もビックリの7行テトリスを夢見て
211 名前:デフォルトの名無しさん mailto:sage [02/04/26 23:38] こういった心遣いによってこのスレは成り立ってるんだね。 誰もレスしてないのに何度もアップしたのは確かにS氏のチョンボだけど、 テトリス自体は応援してるので、是非いつか遊びやすくて7行のテトリスを ずずんとアップしてください
212 名前:S ◆Q14CxNhI [02/04/27 01:20] ついにやりました! テトリス7行達成です!! 叱咤激励いろいろいただきました、みなさんのレスに感謝いたします。 遊び方:カーソル左右で移動、リターンキーで回転 プレイ環境:おそらく IE 5.01 以上? <body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t %7]-4,0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;) Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;X[i]=Z[i]|=++i%A<2|i>228)i%A?0:S+="<br>",S+=X [i]?"■":"_";document.body.innerHTML=S+P;Z[5]||setTimeout(Y,99-P)}Y()</script> ...これは age て良かったですよね?
213 名前:デフォルトの名無しさん mailto:sage [02/04/27 01:24] >212 下キー押すと右に行くのは仕様ですか?
214 名前:デフォルトの名無しさん mailto:sage [02/04/27 01:28] ちなみに1行79文字がこのスレの標準ルールです。
215 名前:S ◆Q14CxNhI mailto:sage [02/04/27 01:30] >>213 残念ながらそうなります。縮めるだけで精一杯なもので・・・ カーソル左右とリターンキー以外のキーを押すと、トンでもないことになります。
216 名前:デフォルトの名無しさん mailto:sage [02/04/27 06:58] >>212 おめでとう 綺麗にまとまったもんだねー、すごい。 これならageても文句はなかろう。
217 名前:デフォルトの名無しさん mailto:sage [02/04/27 08:23] やっとテトリス終わりですか。嬉しい。
218 名前:デフォルトの名無しさん mailto:sage [02/04/27 10:13] S、嫌われたね。自己厨の典型的な末路だな
219 名前:デフォルトの名無しさん mailto:sage [02/04/27 13:28] >>218 はあ?うざいのは確かだったが、誰も嫌ってなどはいない 少なくともテトリスは賞賛に値する(紙かどうかは別として) 今後は正しく sage てね、で終わりでいいじゃないか 本人も反省しているよう出し
220 名前:デフォルトの名無しさん mailto:sage [02/04/27 14:04] >>218 、嫌われたね。自己厨の典型的な末路だな
221 名前:デフォルトの名無しさん mailto:sage [02/04/27 14:09] >>S 感動すますた
222 名前:デフォルトの名無しさん mailto:sage [02/04/27 23:04] 荒れるのはやだねぇ。新しい作品期待。 ここで自分で「これみろや!」って出せないのが鬱
223 名前:デフォルトの名無しさん mailto:sage [02/04/28 01:01] テトリスは俺の中で神。というわけで解説キボンヌ
224 名前:デフォルトの名無しさん mailto:sage [02/04/28 01:09] 簡単な障害物よけゲームをJAVAアプレットで作ってみました。 import java.awt.*;public class H extends java.applet.Applet{int p,c,m,b,t=300, s[]=new int[18];{new Thread(){public void run(){for(;s[p+15]<1&b<1;){repaint() ;try{sleep(t--);}catch(Exception e){}for(c=17;c>=0;c--)s[c]=c>2?s[c-3]:m>2?0:m ==c?0:1;m=m>2?(int)(Math.random()*3):3;}}}.start();}public void paint(Graphics g){for(c=0;c<18;c++)g.drawString(s[c]>0?"■":c==p+15?"△":"□",c%3*10,c/3*10); }public boolean keyDown(Event e,int k){if(k==1006&p>0)p--;if(k==1007&p<2)p++;b =s[p+15];repaint();return 1>0;}} アプレットなので、以下のHTMLを使ってください。 <HTML> <BODY> <CENTER> <APPLET code="H.class" width="30" height="50"></APPLET> </CENTER> </BODY> </HTML> 矢印キーで左右に移動します、だんだんスピードが上がっていきます。
225 名前:デフォルトの名無しさん mailto:sage [02/04/28 01:20] >>223 テトリスの解説は >>117 にすでにあります
226 名前:223 mailto:sage [02/04/28 01:32] >225 それは知っていたんだけど、完成型は随分違うから全然わかんない もしかして俺はバカ? 無限にウィンドウを開くJS作ってOSごとしんできます
227 名前:デフォルトの名無しさん mailto:sage [02/04/28 10:32] game.2ch.net/test/read.cgi/gamedev/1005038280/ 「ソースを上げるスレッド」 @ゲ制技板 114前後しか今のところ言ってないみたいだし、 あまり変化がないならここに張ったらどうよ?
228 名前:デフォルトの名無しさん [02/04/28 13:43] 7文字プログラミングは?
229 名前:デフォルトの名無しさん mailto:sage [02/04/28 13:46] #includ cは早くも脱落
230 名前:デフォルトの名無しさん [02/04/28 13:51] void mai
231 名前:デフォルトの名無しさん mailto:sage [02/04/28 14:18] main(){
232 名前:デフォルトの名無しさん mailto:sage [02/04/28 16:47] 10 CLS
233 名前:デフォルトの名無しさん mailto:sage [02/04/28 17:02] 1CLS:FOR
234 名前:デフォルトの名無しさん mailto:sage [02/04/28 19:45] N88BASICで、リストと実行結果が全く同じプログラム 10 list ネタはこの程度にしておこう。 誰か作品出してくれっ
235 名前:デフォルトの名無しさん mailto:sage [02/04/28 20:18] トリッキーの1降臨キボン
236 名前:VB厨 mailto:sage [02/04/29 22:52] Sub Main