Beispiel #1
0
    public BoatStatus getNextBS()
    {
        BoatStatus status = new BoatStatus();
        int        p      = right_coast.getCount(true);
        int        d      = right_coast.getCount(false);

        if (boat.isRight())
        {
            p += boat.getCount(true);
            d += boat.getCount(false);
        }
        bool isRight = boat.isRight();

        // the right path
        if (p == 3 && d == 3 && isRight)
        {
            status = BoatStatus.PD;
        }
        else if (p == 2 && d == 2 && !isRight)
        {
            status = BoatStatus.P;
        }
        else if (p == 3 && d == 2 && isRight)
        {
            status = BoatStatus.DD;
        }
        else if (p == 3 && d == 0 && !isRight)
        {
            status = BoatStatus.D;
        }
        else if (p == 3 && d == 1 && isRight)
        {
            status = BoatStatus.PP;
        }
        else if (p == 1 && d == 1 && !isRight)
        {
            status = BoatStatus.PD;
        }
        else if (p == 2 && d == 2 && isRight)
        {
            status = BoatStatus.PP;
        }
        else if (p == 0 && d == 2 && !isRight)
        {
            status = BoatStatus.D;
        }
        else if (p == 0 && d == 3 && isRight)
        {
            status = BoatStatus.DD;
        }
        else if (p == 0 && d == 1 && !isRight)
        {
            status = BoatStatus.D;
        }
        else if (p == 0 && d == 2 && isRight)
        {
            status = BoatStatus.DD;
        }
        // the other status
        else if (p == 3 && d == 2 && !isRight)
        {
            status = BoatStatus.D;
        }
        else if (p == 3 && d == 1 && !isRight)
        {
            status = BoatStatus.DD;
        }

        return(status);
    }
Beispiel #2
0
    public void nextOnBoat()
    {
        BoatStatus status = getNextBS();

        nextOffBoat();
        if (status == BoatStatus.P)
        {
            for (int i = 0; i < characters.Length; ++i)
            {
                if (characters[i].getCoastController().isRight() == boat.isRight() &&
                    characters[i].isPriest())
                {
                    characterIsClicked(characters[i]);
                    break;
                }
            }
        }
        else if (status == BoatStatus.PP)
        {
            int count = 0;
            for (int i = 0; i < characters.Length; ++i)
            {
                if (characters[i].getCoastController().isRight() == boat.isRight() &&
                    characters[i].isPriest())
                {
                    characterIsClicked(characters[i]);
                    ++count;
                    if (count == 2)
                    {
                        break;
                    }
                }
            }
        }
        else if (status == BoatStatus.D)
        {
            for (int i = 0; i < characters.Length; ++i)
            {
                if (characters[i].getCoastController().isRight() == boat.isRight() &&
                    !characters[i].isPriest())
                {
                    characterIsClicked(characters[i]);
                    break;
                }
            }
        }
        else if (status == BoatStatus.DD)
        {
            int count = 0;
            for (int i = 0; i < characters.Length; ++i)
            {
                if (characters[i].getCoastController().isRight() == boat.isRight() &&
                    !characters[i].isPriest())
                {
                    characterIsClicked(characters[i]);
                    ++count;
                    if (count == 2)
                    {
                        break;
                    }
                }
            }
        }
        else if (status == BoatStatus.PD)
        {
            int count_p = 0;
            int count_d = 0;
            for (int i = 0; i < characters.Length; ++i)
            {
                if (characters[i].getCoastController().isRight() == boat.isRight())
                {
                    if (count_p == 0 && characters[i].isPriest())
                    {
                        characterIsClicked(characters[i]);
                        count_p++;
                    }
                    else if (count_d == 0 && !characters[i].isPriest())
                    {
                        characterIsClicked(characters[i]);
                        count_d++;
                    }
                }
            }
        }
    }
Beispiel #3
0
 public void Crash()
 {
     Status = BoatStatus.Sunk;
 }