给你写了一个,没怎么打注释,哪里码袭看不明白再问,望采纳
public class Demo{char[][] chars = new char[10][10]
int char_x = 0
int char_y = 0
public static void main(String[] args){
Demo demo = new Demo()
//System.out.println((int)'A')
for(int i = 66i<颤棚91i++){
demo.go((char)i)
}
demo.print()
}
//填充chars
public Demo(){
for(int i = 0 i < 10 i++){
for(int j = 0 j < 10 j++){
chars[i][j] = '.'
}
}
chars[char_x][char_y]='A'
}
//生成随机方向,并判断是否可以移动
public void go(char c){
int direction
do{
direction = (int)(Math.random()*4)
switch(direction){
case 0:
if(isOut(char_x+1,char_y)&&isDot(char_x+1,char_y)){
char_x++
}else{continue}
break
case 1:
if(isOut(char_x-1,char_y)&&isDot(char_x-1,char_y)){
char_x--
}else{continue}
break
case 2:
if(isOut(char_x,char_y+1)&&isDot(char_x,char_y+1)){
char_y++
}else{continue}
break
case 3:
if(isOut(char_x,char_y-1)&&isDot(char_x,char_y-1)){
char_y--
}else{continue}
break
}
break
}while(true)
chars[char_x][char_y] = c
}
//判断位置是否在数组内,如果在,返回true
public boolean isOut(int x,int y){
return 茄模则(x>=0 && x<10 && y>=0 && y<10)
}
//判断要移动的位置是否为点,若是,则返回true
public boolean isDot(int x,int y){
return chars[x][y]=='.'
}
public void print(){
for(int i = 0i<10i++){
for(int j = 0j<10j++){
System.out.print(chars[i][j]+"\t")
}
System.out.println()
}
}
}
initialize_number_generator()应该放在循环外面,每个程序只能将随机数发生器初始化1次。以后,只要调用rand()即可。
否则,派答扰产生的举盯随机数会不那么随尘旦机。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)