gpt4 book ai didi

java - 猫追踪老鼠,小游戏

转载 作者:行者123 更新时间:2023-11-30 07:53:56 27 4
gpt4 key购买 nike

我正在创建一个小游戏,其中一只猫必须捕获一只随机移动的老鼠。代码背后的想法是首先随机移动鼠标,然后检查猫相对于鼠标的位置。该代码对于较小的网格(CatAndMouse(...) 中的第一个输入)工作得很好,但在这个例子中(n=100),鼠标开始移动到 0 以下。我确信会有更聪明的方法来移动猫,但主要是我的问题是为什么鼠标移动的 y 值太大?如果当前位置大于 0,则它应该仅沿负 y 方向移动,而如果当前位置等于 0,则不应移动?

            public class CatAndMouse {
public static void main(String[] args) {
// runs a test
CatAndMouse.runCatAndMouse(100, 7, 88, 98, 13);
}
// method here
public static void runCatAndMouse(int n, int catX, int catY, int mouseX,int mouseY) {
// print user input
System.out.println(n+" ["+catX+";"+catY+"]"+" ["+mouseX+";"+mouseY+"]");
int k = 0;
Random random = new Random();
// checks for valid input
if ( catX < 0 || catY < 0 || mouseX < 0 || mouseY < 0 || n < 0 ||catX > n || catY > n || mouseX > n || mouseY > n) {
System.out.println("ERROR");
}
else {
while ( catX != mouseX || catY != mouseY) {
k ++;
int mouseMovement = random.nextInt(5);
if ( mouseMovement == 1 && mouseX < n) {
mouseX ++;
}
else if ( mouseMovement == 2 && mouseY < n) {
mouseY ++;
}
else if ( mouseMovement == 3 && mouseX > 0) {
mouseX --;
}
else if ( mouseMovement == 4 && mouseY > 0) {
mouseY --;
}

// cat
if ( catX < mouseX && catY < mouseY){
catX ++;
catY ++;
}
else if ( catX > mouseX && catY > mouseY) {
catX --;
catY --;
}
else if ( catX < mouseX && catY > mouseY) {
catX ++;
mouseY --;
}
else if ( catX > mouseX && catY < mouseY) {
catX --;
catY ++;
}
else if ( catX == mouseX+1) {
catX ++;
}
else if ( catY == mouseY+1) {
catY ++;
}
else if ( catX == mouseX-1) {
catX --;
}
else if ( catY == mouseY-1) {
catY --;
}
else if ( catX < mouseX) {
catX += 2;
}
else if ( catY < mouseY) {
catY +=2 ;
}
else if ( catX > mouseX) {
catX -= 2;
}
else if ( catY > mouseY) {
catY -= 2;
}
System.out.println("move "+k+" ["+catX+";"+catY+"]"+" ["+mouseX+";"+mouseY+"]");
}
}

}
}

最佳答案

再次查看您的 else if block 。你有

else if ( catX < mouseX && catY > mouseY) {
catX ++;
mouseY --;
}

从逻辑上讲,你认为这是在做什么?我相信,如果您将其从 mouseY-- 更改为 catY--,它将符合您的猫捉老鼠游戏应该做什么的逻辑。

关于java - 猫追踪老鼠,小游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32953224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com