Bug 556 - The object generation may lead to incorrect result at game ending judgement
Summary: The object generation may lead to incorrect result at game ending judgement
Status: CONFIRMED
Alias: None
Product: Chinese Checker
Classification: Unclassified
Component: Algorithm Component (show other bugs)
Version: unspecified
Hardware: All All
: --- minor
Assignee: yutongmen2-c
URL:
Depends on:
Blocks:
 
Reported: 2021-11-12 19:49 HKT by yutongmen2-c
Modified: 2021-11-12 19:49 HKT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description yutongmen2-c 2021-11-12 19:49:11 HKT
The object generation may lead to incorrect result at game ending judgement. 

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;
        }
    }