七行プログラミング part2at TECH
七行プログラミング part2 - 暇つぶし2ch651:561
02/08/07 00:08
>>650
>私ごときが口を挟むのは失礼とは存じますが、、

いやいや、そんなことはありませんです。参考になります。
特に、mainのクラスがpublicじゃなくてもいいというのは知りませんでした。
(SUNのサンプルにも非publicなクラスがありますから、安心して使えそうですね)
URLリンク(java.sun.com)
7文字減らせますから、七行スレのJava使いには朗報です。

# 赤青の方も試してみましたが…目にキツいですね(笑)

成果を採り入れて、詰めロードランナーが一行縮みました。(L.java : 現在16行)

import java.awt.*;import java.io.*;class L extends Frame{int W,H,T,U=12,p,t,g,e
,l,r,u,d,a,b,i,j,k,x,y,m[],w[];char[]q={'□','田','田',' ', ' ̄','#',' ','◎',
'★'};L(String n){try{BufferedReader f=new BufferedReader(new FileReader(n));W=
Integer.valueOf(f.readLine()).intValue();H=Integer.valueOf(f.readLine()).
intValue();m=new int[T=W*H];w=new int[T];for(;i<T;g+=m[i++]>6?1:0){n=(j=i%W)<1?
f.readLine():n;if((m[i]=(int)n.charAt(j)-48)>7)m[p=i]=3;}Canvas c=new Canvas(){
{resize(W*U,H*U);}public void paint(Graphics g){for(k=T;k-->0;)g.drawChars(q,m[
k],1,k%W*U,k/W*U+U);g.drawChars(q,8,1,p%W*U,p/W*U+U);}};add(c);pack();show();m:
for(;g>0|p>W*2;Thread.sleep(20)){e=0;for(i=T;i-->0;)if(w[i]>0&&--w[i]<1){e=m[i]
=1;if(i==p)break m;}if((i=m[p])>6){m[e=p]=3;if(--g<1)for(g=T;g-->0;)m[g]-=m[g]>
5?1:0;}if(t>0)t--;else{p+=i=i!=4&i!=5&(j=m[p+W])>1&j!=5|d>0&j>1?W:u>0&i==5&m[p-
W]>2?-W:l>0&m[p-1]>2?-1:r>0&m[p+1]>2?1:0;if(i!=0)e=t=4;if(i==0&(i=a>0?p+W-1:b>0
?p+W+1:0)>0&m[i]==1)if((j=m[i-W])==3|j==6){m[i]=3;e=w[i]=500;}}if(e>0)c.repaint
();}}catch(Exception e){}}public boolean handleEvent(Event e){y=(x=402-e.id)>=0
&x<2?e.key-48:0;l=y==4?x:l;r=y==6?x:r;u=y==8?x:u;d=y==2?x:d;a=y==42|y==74?x:a;b
=y==40|y==72?x:b;return 1>0;}public static void main(String[]a){new L(a[0]);}}

7行には達するべくもなさそうですが、結構気に入ってます。
(最近更新してない自分のサイトにでも置こうかな…(^^;))



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch