「デッドコード」と「到達不能コード」をしばらく調査してきましたが、プログラムでこの問題で何が起こっているのかまだわかりません。これは私が持っているものの一部です。Tic Tac Toe の勝者をチェックするメソッド「gameEnd()」:
private boolean gameEnd() {
// Setting local variables
int x = xMouseSquare;
int y = yMouseSquare;
int[][] g = gameBoard;
int c = CPU;
int h = HUMAN;
// Checking for a winner
/* Checking columns (xMouseSquare)
* Enter the y value, the vertical value, first; then x, the horizontal value, second
*/
// Set y equal to 0 and then add 1
for (y = 0; y < 3; y++) {
// Set CPU c equal to 0
c = 0;
// Set x equal to 0 and then add 1
for (x = 0; x < 3; x++) {
// Add CPU's value to the game board
c += g[x][y];
// If statement returning the absolute value of CPU
if (Math.abs(c) == 3) {
// If these values are correct, return true; the game ends with CPU win horizontally
return true;
}
}
}
// If not, return false; game continues until all marks are filled
return false;
// Set y equal to 0 and then add 1
for (y = 0; y < 3; y++) {
// This time, however, set HUMAN h equal to 0
h = 0;
// Set x equal to 0 and then add 1
for (x = 0; x < 3; x++) {
// Then add HUMAN's value to the game board
h += g[x][y];
// If statement returning the absolute value of HUMAN
if (Math.abs(h) == -3) {
// If these values are correct, return true; the game ends with HUMAN win horizontally
return true;
}
}
}
// If not, return false; game continues until all marks are filled
return false;
{
/* Checking rows (yMouseSquare)
* Enter the x value, the horizontal value, first; then y, the vertical value, second
*/
// Set x equal to 0 and then add 1
for (x = 0; x < 3; x++) {
// Set CPU equal to 0
c = 0;
// Set y equal to 0 and then add 1
for (y = 0; y < 3; y++) {
// Add CPU's value to the game board, but with y and then x
c += g[y][x];
// If statement returning the absolute value of CPU
if (Math.abs(c) == 3) {
// If these values are correct, return true; the game ends with CPU win vertically
return true;
}
}
}
// If not, return false; game continues until all marks are filled
return false;
{
// Set x equal to 0 and then add 1
for (x = 0; x < 3; x++) {
// This time, however, set HUMAN h equal to 0
h = 0;
// Set y equal to 0 and then add 1
for (y = 0; y < 3; y++) {
// Then add HUMAN's value to the game board
h += g[x][y];
// If statement returning the absolute value of HUMAN
if (Math.abs(h) == -3) {
// If these values are correct, return true; the game ends with CPU win vertically
return true;
}
}
}
// If not, return false; game continues until all marks are filled
return false;
}
}
}
} // error on this bracket; but when I remove it, some of the code above becomes unreachable. Can anyone point to what I'm doing wrong?