public boolean checkEndGameSate() {
        // Win / Lose
        boolean humanWins = false;
        boolean computerWins = false;
        Player computer = AllZone.getComputerPlayer();
        Player human = AllZone.getHumanPlayer();

        int gameWon = Constant.Runtime.matchState.getWin();

        if (human.hasWon()) {    // Winning Conditions can be worth more than losing conditions
            // Human wins
            humanWins = true;
            if (human.getAltWin()) {
                Constant.Runtime.matchState.setWinMethod(gameWon, human.getWinCondition());
            }
            Constant.Runtime.matchState.addWin();
        } else if (computer.hasLost()) {
            // Human wins
            humanWins = true;

            if (computer.getAltLose()) {
                Constant.Runtime.matchState.setWinMethod(gameWon, computer.getLoseCondition());
            }
            Constant.Runtime.matchState.addWin();
        }


        if (computer.hasWon() || human.hasLost()) {
            if (humanWins) {
                // both players won/lost at the same time.
                // TODO: Handle a Draw here
            }

            // Computer wins
            computerWins = true;
            Constant.Runtime.matchState.addLose();
        }

        return humanWins || computerWins;
    }