我的Connect Four游戏在运行时返回完成[关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的Connect Four游戏在运行时返回完成[关闭]相关的知识,希望对你有一定的参考价值。
我的连接四游戏没有验证任何东西,只是在程序启动时才开始显示正确。
我试图使用大数组列表并跟踪所有内容的进展情况。
private boolean areFourConnected(){
for (int j = 0; j<rows-3 ; j++ ){
for (int i = 0; i<columns; i++){
if (this.cells[i][j].getPlayer() == cells[i][j].getPlayer() && this.cells[i][j+1].getPlayer() == cells[i][j].getPlayer() && this.cells[i][j+2].getPlayer() == cells[i][j].getPlayer() && this.cells[i][j+3].getPlayer() == cells[i][j].getPlayer()){
return true;
}
}
}
for (int i = 0; i<columns-3 ; i++ ){
for (int j = 0; j<this.rows; j++){
if (this.cells[i][j].getPlayer() == cells[i][j].getPlayer() && this.cells[i+1][j].getPlayer() == cells[i][j].getPlayer() && this.cells[i+2][j].getPlayer() == cells[i][j].getPlayer() && this.cells[i+3][j].getPlayer() == cells[i][j].getPlayer()){
return true;
}
}
}
for (int i=3; i<columns; i++){
for (int j=0; j<rows-3; j++){
if (this.cells[i][j].getPlayer() == cells[i][j].getPlayer() && this.cells[i-1][j+1].getPlayer() == cells[i][j].getPlayer() && this.cells[i-2][j+2].getPlayer() == cells[i][j].getPlayer() && this.cells[i-3][j+3].getPlayer() == cells[i][j].getPlayer())
return true;
}
}
for (int i=3; i<columns; i++){
for (int j=3; j<rows; j++){
if (this.cells[i][j].getPlayer() == cells[i][j].getPlayer() && this.cells[i-1][j-1].getPlayer() == cells[i][j].getPlayer() && this.cells[i-2][j-2].getPlayer() == cells[i][j].getPlayer() && this.cells[i-3][j-3].getPlayer() == cells[i][j].getPlayer())
return true;
}
}
return false;
}
答案
手动调试它。手动调试是学习如何编程的好方法。
手动调试的工作方式如下:忘记计算机一秒钟。只需查看代码,然后成为计算机:如果必须,请使用纸张,但是,请准确记下您认为代码实际要执行的操作。对于每个执行的语句,您希望每个变量保持的值是多少?它会输入if还是跳过它?等等。
然后,运行实际代码并观察实际执行的内容。使用调试器。如果您没有访问权限,请使用System.out.println语句。
代码执行与您认为应该执行的操作不同的确切位置通常是代码问题变得清晰的时候。
这样做,你很快就会明白。
我会给你一个提示:据推测,.getPlayer()为空白单元格返回0,为播放器1放入芯片的单元格返回1,如果播放器2有则为2。 0 ..等于0。
以上是关于我的Connect Four游戏在运行时返回完成[关闭]的主要内容,如果未能解决你的问题,请参考以下文章