Java Pacman Ghost类,这个方法做什么?

Java Pacman Ghost类,这个方法做什么?,java,methods,pacman,Java,Methods,Pacman,我不明白moveGhost的方法是什么?为什么要在0-7之间选择一个随机数,这与追捕吃豆人有什么关系? 哦,我能做些什么来创建鬼的GUI图像呢? 我发现了这段代码,并试图理解它是如何工作的 public class GhostRed { private int size; private int row, col; //constructor public GhostRed(int r, int c, int s) { row = r; col = c; size =

我不明白moveGhost的方法是什么?为什么要在0-7之间选择一个随机数,这与追捕吃豆人有什么关系? 哦,我能做些什么来创建鬼的GUI图像呢? 我发现了这段代码,并试图理解它是如何工作的

public class GhostRed {

private int size;
private int row, col;

//constructor
public GhostRed(int r, int c, int s) {
    row = r;
    col = c;
    size = s;

}

public int getRow() {
    return row;
}
public int getCol() {
    return col;
}
public void setRow(int r) {
    row = r;

}
public void setCol(int c) {
    col = c;
}

private boolean checkMove(int r, int c) {
    boolean check=true;
    if (r<0 || r > size-1 || c < 0 || c > size-1) {
        check= false;
    }
    return check;
}

public boolean moveGhost() {

    boolean move=true;
    Random r = new Random();
    int newMove = r.nextInt(7); //taking a random number btw 0-7


    if (newMove == 0) {
        if(checkMove(row-1, col)==false) {
        move=false;
        }
        else{
        row = row-1;
        }

    }
    if (newMove == 1) {
        if(checkMove(row+1, col)==false) {
        move= false;
        }
        else{
        row = row+1;
        }

    }
    if (newMove == 2) {
        if(checkMove(row, col-1)==false) {
        move= false;
        }else{
        col = col-1;
        }

    }
    if (newMove == 3) {
        if(checkMove(row, col+1)==false) {
        move= false;
        }
        else{
        col = col+1;
        }

    }
    if (newMove == 4) {
        if(checkMove(row-1, col-1)==false) {
        move= false;
        }
        else{
        row = row-1;
        col = col-1;
        }

    }
    if (newMove == 5) {
        if(checkMove(row-1, col+1)==false) {
        move= false;
        }
        else{
        row = row-1;
        col = col+1;
        }

    }
    if (newMove == 6) {
        if(checkMove(row+1, col-1)==false) {
        move= false;
        }
        else{
        row = row+1;
        col = col-1;
        }

    }
    if (newMove == 7) {
        if(checkMove(row+1, col+1)==false) {
        move= false;
        }else{
        row = row+1;
        col = col+1;
        }

    }

    return move;


}
公共类GhostRed{
私有整数大小;
列兵int row,col;
//建造师
公共Ghosted(内部r、内部c、内部s){
row=r;
col=c;
尺寸=s;
}
public int getRow(){
返回行;
}
公共int getCol(){
返回列;
}
公共无效集合行(int r){
row=r;
}
公共空间集合(内部c){
col=c;
}
私有布尔checkMove(int r,int c){
布尔检查=真;
如果(r尺寸-1 | | c<0 | | c>尺寸-1){
检查=错误;
}
退货检查;
}
公共布尔值moveGhost(){
布尔移动=真;
随机r=新随机();
int newMove=r.nextInt(7);//取一个随机数btw 0-7
如果(newMove==0){
if(checkMove(第1行,列)=false){
move=false;
}
否则{
行=行-1;
}
}
如果(newMove==1){
if(checkMove(行+1,列)=false){
move=false;
}
否则{
行=行+1;
}
}
如果(newMove==2){
if(checkMove(行,列1)==false){
move=false;
}否则{
col=col-1;
}
}
如果(newMove==3){
if(checkMove(行、列+1)==false){
move=false;
}
否则{
col=col+1;
}
}
如果(newMove==4){
if(checkMove(第1行,第1列)=false){
move=false;
}
否则{
行=行-1;
col=col-1;
}
}
如果(newMove==5){
如果(检查移动(第1行,列+1)=假){
move=false;
}
否则{
行=行-1;
col=col+1;
}
}
如果(newMove==6){
如果(检查移动(行+1,列-1)=假){
move=false;
}
否则{
行=行+1;
col=col-1;
}
}
如果(newMove==7){
if(选中移动(行+1,列+1)=false){
move=false;
}否则{
行=行+1;
col=col+1;
}
}
回击动作;
}

}

移动重影方法从8个指南针方向(N、S、E、W、NW、SW、NE、NW)沿随机方向移动重影。八个不同的方向对应于0-7范围内的8个不同数字


如果方法
checkMove
返回false,则重影不移动。

方法
moveGhost
从8个指南针方向(N、S、E、W、NW、SW、NE、NW)沿随机方向移动重影。八个不同的方向对应于0-7范围内的8个不同数字

如果方法
checkMove
返回false,则重影不会移动