- 651 名前:561 mailto:sage [02/08/07 00:08]
- >>650
>私ごときが口を挟むのは失礼とは存じますが、、 いやいや、そんなことはありませんです。参考になります。 特に、mainのクラスがpublicじゃなくてもいいというのは知りませんでした。 (SUNのサンプルにも非publicなクラスがありますから、安心して使えそうですね) java.sun.com/docs/books/jls/second_edition/html/intro.doc.html#11484 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行には達するべくもなさそうですが、結構気に入ってます。 (最近更新してない自分のサイトにでも置こうかな…(^^;))
|

|