Exemple #1
0
    int check_game_over()       // 0->not finish, 1->lose, 2->win
    {
        int from_priest = 0;
        int from_devil  = 0;
        int to_priest   = 0;
        int to_devil    = 0;

        int[] fromCount = frombank.getCharacterNum();
        from_priest += fromCount[0];
        from_devil  += fromCount[1];

        int[] toCount = tobank.getCharacterNum();
        to_priest += toCount[0];
        to_devil  += toCount[1];

        if (to_priest + to_devil == 6)                  // win
        {
            return(2);
        }

        int[] boatCount = boat.getCharacterNum();
        if (boat.get_to_or_from() == -1)                // boat at tobank
        {
            to_priest += boatCount[0];
            to_devil  += boatCount[1];
        }
        else                    // boat at frombank
        {
            from_priest += boatCount[0];
            from_devil  += boatCount[1];
        }
        if (from_priest < from_devil && from_priest > 0)                        // lose
        {
            return(1);
        }
        if (to_priest < to_devil && to_priest > 0)
        {
            return(1);
        }
        return(0);                              // not finish
    }
    int check_game_over()
    {
        int from_priest = 0;
        int from_devil  = 0;
        int to_priest   = 0;
        int to_devil    = 0;

        int[] fromCount = frombank.getCharacterNum();
        from_priest += fromCount[0];
        from_devil  += fromCount[1];

        int[] toCount = tobank.getCharacterNum();
        to_priest += toCount[0];
        to_devil  += toCount[1];

        if (to_priest + to_devil == 6)
        {
            return(2);
        }

        int[] boatCount = boat.getCharacterNum();
        if (boat.get_to_or_from() == -1)
        {
            to_priest += boatCount[0];
            to_devil  += boatCount[1];
        }
        else
        {
            from_priest += boatCount[0];
            from_devil  += boatCount[1];
        }
        if (from_priest < from_devil && from_priest > 0)
        {
            return(1);
        }
        if (to_priest < to_devil && to_priest > 0)
        {
            return(1);
        }
        return(0);
    }