作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个小游戏,其中一只猫必须捕获一只随机移动的老鼠。代码背后的想法是首先随机移动鼠标,然后检查猫相对于鼠标的位置。该代码对于较小的网格(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/
我有一个数据集,其中包含大约 12 个等级从 2 到 10 的分类变量,以及其他数值变量。约 280 条记录。我正在使用 r 中的 mice 包以所有默认设置对丢失的数据执行插补。但是,当我尝试这样进
调用 canvas.getContext("webgl"); 让 Chrome 触发“Rats!WebGL hit a snag”消息,但不提供任何信息。我该如何解决? 除了 canvas.getCo
我是一名优秀的程序员,十分优秀!