The object generation leads to incorrect result at game ending judgement. Steps to reproduce: N/A. Actual outcome: N/A. Expected outcome: N/A.
Former implementation of method GameisEnd(): public static boolean GameisEnd(){ boolean isEnd = false; if (Graph.getInstance().chessboard[0][0].equals(new Point(0,0,2)) && Graph.getInstance().chessboard[0][1].equals(new Point(0,1,2)) && Graph.getInstance().chessboard[0][2].equals(new Point(0,2,2)) && Graph.getInstance().chessboard[0][3].equals(new Point(0,3,2)) && Graph.getInstance().chessboard[1][0].equals(new Point(1,0,2)) && Graph.getInstance().chessboard[1][1].equals(new Point(1,1,2)) && Graph.getInstance().chessboard[1][2].equals(new Point(1,2,2)) && Graph.getInstance().chessboard[2][0].equals(new Point(2,0,2)) && Graph.getInstance().chessboard[2][1].equals(new Point(2,1,2)) && Graph.getInstance().chessboard[3][0].equals(new Point(3,0,2)) ){ winner = 2; return true; } else if(Graph.getInstance().chessboard[8][8].equals(new Point(8,8,1)) && Graph.getInstance().chessboard[8][7].equals(new Point(8,7,1)) && Graph.getInstance().chessboard[8][6].equals(new Point(8,6,1)) && Graph.getInstance().chessboard[8][5].equals(new Point(8,5,1)) && Graph.getInstance().chessboard[7][8].equals(new Point(7,8,1)) && Graph.getInstance().chessboard[7][7].equals(new Point(7,7,1)) && Graph.getInstance().chessboard[7][6].equals(new Point(7,6,1)) && Graph.getInstance().chessboard[6][8].equals(new Point(6,8,1)) && Graph.getInstance().chessboard[6][7].equals(new Point(6,7,1)) && Graph.getInstance().chessboard[5][8].equals(new Point(5,8,1)) ){ winner = 1; return true; } else{ return false; } } Modified code: public static boolean GameisEnd(){ // boolean isEnd = false; if (Graph.getInstance().chessboard[0][0].equals(new Point(0,0,2)) && Graph.getInstance().chessboard[0][1].equals(new Point(0,1,2)) && Graph.getInstance().chessboard[0][2].equals(new Point(0,2,2)) && Graph.getInstance().chessboard[0][3].equals(new Point(0,3,2)) && Graph.getInstance().chessboard[1][0].equals(new Point(1,0,2)) && Graph.getInstance().chessboard[1][1].equals(new Point(1,1,2)) && Graph.getInstance().chessboard[1][2].equals(new Point(1,2,2)) && Graph.getInstance().chessboard[2][0].equals(new Point(2,0,2)) && Graph.getInstance().chessboard[2][1].equals(new Point(2,1,2)) && Graph.getInstance().chessboard[3][0].equals(new Point(3,0,2)) ){ winner = 2; return true; } else if(Graph.getInstance().chessboard[8][8].equals(new Point(8,8,1)) && Graph.getInstance().chessboard[8][7].equals(new Point(8,7,1)) && Graph.getInstance().chessboard[8][6].equals(new Point(8,6,1)) && Graph.getInstance().chessboard[8][5].equals(new Point(8,5,1)) && Graph.getInstance().chessboard[7][8].equals(new Point(7,8,1)) && Graph.getInstance().chessboard[7][7].equals(new Point(7,7,1)) && Graph.getInstance().chessboard[7][6].equals(new Point(7,6,1)) && Graph.getInstance().chessboard[6][8].equals(new Point(6,8,1)) && Graph.getInstance().chessboard[6][7].equals(new Point(6,7,1)) && Graph.getInstance().chessboard[5][8].equals(new Point(5,8,1)) ){ winner = 1; return true; } else{ return false; } }