跳蚤移动
package unit3; import com.sun.org.apache.xpath.internal.axes.WalkerFactory; public class House { private int m; private int n; private int[][]a; public House() { m=10; n=10; a=new int[m][n]; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ a[i][j]=0; } } } public House(int m,int n) { this.m=m; this.n=n; a=new int[m][n]; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ a[i][j]=0; } } } public int getM() { return m; } public int getN() { return n; } public int[][] getA() { return a; } public int getElement(int i,int j) { return a[i][j]; } public void setElement(int i,int j,int value) { a[i][j]=value; } public boolean checkZero() { for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ if(a[i][j]==0) return true; } } return false; } public void display() { for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ System.out.print(" "+a[i][j]+" "); } System.out.println(); } } public class Tiaozao{ private static final int UP=0; private static final int DOWN=1; private static final int RIGHT=2; private static final int LEFT=3; private int x,y; private int totals=0; private House ahouse; public Tiaozao(House h){ ahouse=h; totals=0; x=(int)(Math.random()*ahouse.getM()); y=(int)(Math.random()*ahouse.getN()); } public int getTotals() { return totals; } public boolean walk(int direction) { System.out.println("x="+x+", y="+y+", direction="+direction); switch (direction) { case UP: if(y==0) { return false; }else{ ahouse.setElement(x,y,ahouse.getElement(x,y)+1); y=y-1; } return true; case DOWN: if(y==ahouse.getN()-1){ return false; }else{ ahouse.setElement(x,y,ahouse.getElement(x,y)+1); y=y+1; } return true; case LEFT: if(x==0){ return false; }else{ ahouse.setElement(x,y,ahouse.getElement(x,y)+1); x=x-1; } return true; case RIGHT: if(x==ahouse.getM()-1){ return false; }else{ ahouse.setElement(x,y,ahouse.getElement(x,y)+1); x=x+1; } return true; default: System.out.println("分发移动");return false; } } public void move() { int nextdirection; boolean success; do{ nextdirection=(int)(Math.random()*4); success=walk(nextdirection); if(success) totals++; }while(ahouse.checkZero()); } } public static void main(String[] args){ House ahouse= new House(6,6); Tiaozao atiaozao =ahouse.new Tiaozao(ahouse); atiaozao.move(); ahouse.display(); System.out.println("Totals="+atiaozao.getTotals()); } }