- 692 名前:561 [02/08/29 19:16]
- 3D迷路、9行達成&保守age。(M.java : 現在9行)
import java.awt.*;class M{public static void main(String[]a){new Frame(){int d, u,i,j,p,w[]={1,-15,-1,15,1,0,0,u=12,u,u,100,1,u,p=36,p,p,80,3,p,48},m[]=new int [u=240];Canvas c=new Canvas(){{resize(u,u);}public void paint(Graphics g){for(i =9;--i>0;g.fillPolygon(new Polygon(){{for(j=j/2*6;j<6;addPoint((i%3<2?120-u:u)/ 11*24,(j++<3?120-u:u)%11*24))u=w[i*i%3*3+i/3*6+(j*j%5+8)/3];}}))g.setColor(new Color((j=m[p+i/3*w[d]-(-~i%3-1)*w[d+1]])<<23));}};{for(add(c);i<165;m[193]=1)m[ i+28]=i++%15<4?0:2;for(pack();j<25;p=32)m[p=j/5*20+j*2+48]=m[p+w[i=(int)(Math. random()*4)]]=m[p+w[i]*2]<2?++j*0:2;show();}public boolean keyDown(Event e,int k){k-=51;p=k==5&m[k=p+w[d=k>0&k<4?d+k&3:d]]>1?k:p;c.repaint();return 1>0;}};}} >691 どうもです。役立ちました〜。 あと、いくつか狡いテクニックを駆使しました(笑) ・n+1と-~nが等価であるため、"(i+1)%3"を"-~i%3"へ変更。 単項演算子は優先順位が高いので括弧が不要になります。(せこ) ・n*n%3の数列が0,1,1,0,1,1,...になることを利用して、 "(i%3+1)/2*3"を"i*i%3*3"に変更。 ・n*n%5の数列がn=0〜5では0,1,4,4,1,0になることを利用して、 "(j<3?j:5-j)-2"を"(j*j%5+8)/3"に置き換え。 ソース見ても、何やってるのか分からない状態に…(^^;)
|

|