import java.util.Random;
public class Drunk_walk {
public static void main(String[] args) {
//path全開true,經過時變false
int x=8,y=8;
boolean path[][]=new boolean[x][y];
for (int i=0;i<path.length;i++){
for (int j=0;j<path[0].length;j++){
path[i][j]=true;
}
}
Random RD = new Random();
path[2][2]=false; //start
int n=2,m=2,walk=0;
do{
int temp=RD.nextInt(4)+1;
switch (temp){
case 1: //往左走
if (n-1<0){
System.out.println("撞牆了。因此原地停留。");
}else{
n-=1;
path[n][m]=false;
}
break;
case 2: //往右走
if (n+1>=x){
System.out.println("撞牆了。因此原地停留。");
}else{
n+=1;
path[n][m]=false;
}
break;
case 3: //往上走
if (m-1<0){
System.out.println("撞牆了。因此原地停留。");
}else{
m-=1;
path[n][m]=false;
}
break;
case 4: //往下走
if (m+1>=y){
System.out.println("撞牆了。因此原地停留。");
}else{
m+=1;
path[n][m]=false;
}
break;
}
walk++;
System.out.printf("第%s步:(%s,%s)\n",walk,n,m);
}while (path[5][5]==true);
}
}
//一個很有名的電腦問題,稱為醉漢走路,也就是有一個醉漢要回幏,但是他實在醉的幾乎不省人事,完全不記得家的方向,甚至連走過的路都馬上忘記,所以他就隨機地前後左右走出每一步,直到突然發現家已經到了為止。請你用一個8x8的二維矩陣來模仿醉漢走的路線,給定醉漢一開始的位置和家的位置,讓醉漢隨機地在矩陣上下左右移動,直到家的座標為止。
- Feb 02 Tue 2010 16:14
Drunk_walk(酒漢走路)
全站熱搜
留言列表