坦克大战,使敌人坦克随机运动

import java.awt.Graphics; import java.util.*; public class tt { //敌方坦克最少移动四步,最多移动18步改变运动方向 private int step=r.nextInt(15)+4; //静态随机数,所有坦克公用该随机数 private static Random r=new Random(); //坦克移动的八个方向,用枚举类型控制 public enum Direction {L, LU, U, RU, R, RD, D, LD, STOP}; //坦克默认方向为静止 Direction dir=Direction.STOP; //判断是否为敌方坦克 private boolean good; int x,y; public static final int XSPEED = 5; public static final int YSPEED = 5; //每画一次坦克就移动一次 public void draw(Graphics g) { move(); } private void move() { switch(dir) { case L: x -= XSPEED; break; case LU: x -= XSPEED; y -= YSPEED; break; case U: y -= YSPEED; break; case RU: x += XSPEED; y -= YSPEED; break; case R: x += XSPEED; break; case RD: x += XSPEED; y += YSPEED; break; case D: y += YSPEED; break; case LD: x -= XSPEED; y += YSPEED; break; case STOP: break; } if(!this.good){ Direction []d=Direction.values();//将枚举转化为数组 if(step==0){ step=r.nextInt(15)+4; int fx=r.nextInt(d.length);//随机取得数组d的下标 dir=d[fx]; //取得下标为fx的数组Direcion 的值 } step--; } } }

你可能感兴趣的:(java)