java 随机步法?

java 随机步法?,第1张

给你写了一个,没怎么打注释,哪里码袭看不明白再问,望采纳

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()即可。

否则,派答扰产生的举盯随机数会不那么随尘旦机。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12508088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存