我需要完成这个连接我制作的四个游戏。看起来这些行不会因为我不知道的某些原因而起作用。这是我的行代码。当我运行我的代码时,游戏连续4次后不会停止,但是当我在列中或在诊断中得到4时它确实停止了。所有其他可能性都可以使用此格式。这是我的专栏的一个例子。这有效:
public boolean win_col() {
int xTemp = x;
int yTemp = y;
int win = 0;
while (xTemp != 6) {
if (A[xTemp][yTemp] == cod) {
win ++;
xTemp ++;
}
else
break;
if (win == 4) {
return true;
}
}
return false;
}
这就是我尝试使用我的行。
public boolean win_row() {
int xTemp = x;
int yTemp = y;
int win = 0;
while (yTemp != 0) {
if (A[xTemp][yTemp] == cod) {
win ++;
yTemp --;
}
else
break;
if (win == 4) {
return true;
}
}
yTemp = y + 1;
while (yTemp != 7) {
if (A[xTemp][yTemp] == cod) {
win ++;
yTemp ++;
}
else
break;
if (win == 4) {
return true;
}
}
return false;
}
我一直这样做,我的排不起作用。除了行之外的所有内容都适用于我的程序HELP !!
答案 0 :(得分:1)
我仍然不了解你是如何检查win场景的,所以这是一个简单的方法,我可以调试而无需使用IDE的调试器,这看起来像你没有&#39 ; t有很多使用经验。
在每个州,添加System.out.println
以查看代码是否实际上应该按照应有的方式运行。我会做类似
public boolean win_row() {
int xTemp = x;
int yTemp = y;
int win = 0;
while (yTemp != 0) {
if (A[xTemp][yTemp] == cod) {
win ++;
yTemp --;
System.out.println("Going Left: Matched");
}
else {
System.out.println("Going Left: Not Matched");
break;
}
if (win == 4) {
return true;
}
}
yTemp = y + 1;
while (yTemp != 7) {
if (A[xTemp][yTemp] == cod) {
win ++;
yTemp ++;
System.out.println("Going Right: Matched");
}
else {
System.out.println("Going Right: Not Matched");
break;
}
if (win == 4) {
return true;
}
}
return false;
}
您还可以使用System.out.println
来跟踪所有变量,看看它是否实际上在它经历的每个状态中递增/递减它的方式。