- 690 名前:561 mailto:sage [02/08/28 18:56]
- 縮んできましたね〜。
色んなテクニックがあって、ほんと参考になります。 >689 「パラダイムシフト」なんてレベルではありませんが、ちょっと短くなりました。 (M.java : 現在10行[9行+19文字]) import java.awt.*;class M{public static void main(String[]a){new Frame(){int d, u,i,j,p;int[]s={1,-15,-1,15,1},w={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-1;++j<6;addPoint((i%3< 2?120-u:u)/11*24,(j<3?120-u:u)%11*24))u=w[(i%3+1)/2*3+i/3*6+(j<3?j:5-j)-3];}})) g.setColor(new Color((j=m[p+i/3*s[d]-((i+1)%3-1)*s[d+1]])<<23));}};{for(;i<165; )m[i+28]=i++%15<4?0:2;for(m[193]=1;j<25;p=32)m[p=j/5*20+j*2+48]=m[p+s[i=(int)( Math.random()*4)]]=m[p+s[i]*2]<2?++j*0:2;add(c);pack();show();}public boolean keyDown(Event e,int k){k-=51;p=k==5&m[k=p+s[d=k>0&k<4?d+k&3:d]]>1?k:p;c.repaint ();return 1>0;}};}} 通路=0,壁=1,扉=2だったのを、通路=2,壁=0,扉=1にしました。 迷路の初期化部分が短縮できたようです。 また、この結果「茶色の中を黒い部分を目指す」が「黒の中を茶色い部分を目指す」とな ります。 さらに、壁ポリゴンが一枚あたり5(+1)データだったのを、3データに減らしました。 ただ、このせいでaddPointの辺りがちょっと冗長ぎみに…。
|

|