Ejemplo n.º 1
0
    public int check(CoastCon fromCoast, CoastCon toCoast, BoatCon boat)          // 0->not finish, 1->lose, 2->win
    {
        int fromP = 0, fromD = 0, toP = 0, toD = 0;

        int[] fromCount = fromCoast.getCharacterNum();
        fromP += fromCount[0];
        fromD += fromCount[1];

        int[] toCount = toCoast.getCharacterNum();
        toP += toCount[0];
        toD += toCount[1];

        if (toP + toD == 6)
        {
            return(2);                //win
        }
        int[] boatCount = boat.getCharacterNum();
        if (boat.getStatus() == -1)
        {
            toP += boatCount[0]; toD += boatCount[1];   // boat at toCoast
        }
        else
        {
            fromP += boatCount[0]; fromD += boatCount[1];       // boat at fromCoast
        }
        if (fromP < fromD && fromP > 0)
        {
            return(1);                            //lose
        }
        if (toP < toD && toP > 0)
        {
            return(1);                   //lose
        }
        return(0);                       // not finish
    }
Ejemplo n.º 2
0
    public int tip(CoastCon fromCoast, CoastCon toCoast, BoatCon boat)
    {
        int fromP = 0, fromD = 0, toP = 0, toD = 0, boatst = 0;

        int[] fromCount = fromCoast.getCharacterNum();
        fromP += fromCount[0];
        fromD += fromCount[1];

        int[] toCount = toCoast.getCharacterNum();
        toP += toCount[0];
        toD += toCount[1];

        int[] boatCount = boat.getCharacterNum();
        if (boat.getStatus() == -1)
        {
            boatst = 1;
        }
        else
        {
            boatst = 0;
        }
        if (boat.getStatus() == -1)
        {
            toP += boatCount[0]; toD += boatCount[1];   // boat at toCoast
        }
        else
        {
            fromP += boatCount[0]; fromD += boatCount[1];       // boat at fromCoast
        }
        Debug.Log(fromP.ToString() + ' ' + fromD.ToString() + ' ' + get(boatst, fromP, fromD).ToString());
        for (int o = 0; o <= 1; o++)
        {
            for (int i = 0; i <= 3; i++)
            {
                for (int j = 0; j <= 3; j++)
                {
                    if (trans[get(boatst, fromP, fromD), get(o, i, j)] == 1)
                    {
                        return(get(boatst, i, j));
                    }
                }
            }
        }

        return(-1);
    }
    public void ClickCha(ChaCon cha)
    {
        if (cha.isOnBoat())
        {
            CoastCon nowCoast;
            if (boat.getStatus() == -1)
            {
                nowCoast = toCoast;                                      // to->-1; from->1
            }
            else
            {
                nowCoast = fromCoast;
            }
            boat.getOffBoat(cha.getName());

            Vector3 end_pos    = nowCoast.getEmptyPosition();                                                 //动作分离版本改变
            Vector3 middle_pos = new Vector3(cha.getGameObject().transform.position.x, end_pos.y, end_pos.z); //动作分离版本改变
            actionManager.moveCha(cha.getGameObject(), middle_pos, end_pos, cha.move_speed);                  //动作分离版本改变

            cha.getOnCoast(nowCoast);
            nowCoast.getOnCoast(cha);
        }
        else                                                                            // character on coast
        {
            CoastCon nowCoast = cha.getCoastCon();
            if (boat.getEmptyIndex() == -1)
            {
                return;                                          // boat is full
            }
            if (nowCoast.getStatus() != boat.getStatus())
            {
                return;                                                         // boat is not on the side of character
            }
            nowCoast.getOffCoast(cha.getName());

            Vector3 end_pos    = boat.getEmptyPosition();                                                     //动作分离版本改变
            Vector3 middle_pos = new Vector3(end_pos.x, cha.getGameObject().transform.position.y, end_pos.z); //动作分离版本改变
            actionManager.moveCha(cha.getGameObject(), middle_pos, end_pos, cha.move_speed);                  //动作分离版本改变

            cha.getOnBoat(boat);
            boat.getOnBoat(cha);
        }
        userGUI.status = Judger.getInstance().check(fromCoast, toCoast, boat);
        userGUI.tips   = AI.getInstance().tip(fromCoast, toCoast, boat);
    }
Ejemplo n.º 4
0
 public void ClickCha(ChaCon cha)
 {
     if (cha.isOnBoat())
     {
         CoastCon nowCoast;
         if (boat.getStatus() == -1)
         {
             nowCoast = toCoast;                                      // to->-1; from->1
         }
         else
         {
             nowCoast = fromCoast;
         }
         boat.getOffBoat(cha.getName());
         cha.moveToPosition(nowCoast.getEmptyPosition());
         cha.getOnCoast(nowCoast);
         nowCoast.getOnCoast(cha);
     }
     else                                                                            // character on coast
     {
         CoastCon nowCoast = cha.getCoastCon();
         if (boat.getEmptyIndex() == -1)
         {
             return;                                          // boat is full
         }
         if (nowCoast.getStatus() != boat.getStatus())
         {
             return;                                                         // boat is not on the side of character
         }
         nowCoast.getOffCoast(cha.getName());
         cha.moveToPosition(boat.getEmptyPosition());
         cha.getOnBoat(boat);
         boat.getOnBoat(cha);
     }
     userGUI.status = check();
 }
Ejemplo n.º 5
0
 public void ClickCha(ChaCon cha)
 {
     if (cha.isOnBoat())
     {
         CoastCon nowCoast;
         if (boat.getStatus() == -1)
         {
             nowCoast = toCoast;
         }
         else
         {
             nowCoast = fromCoast;
         }
         boat.getOffBoat(cha.getName());
         cha.moveToPosition(nowCoast.getEmptyPosition());
         cha.getOnCoast(nowCoast);
         nowCoast.getOnCoast(cha);
     }
     else
     {
         CoastCon nowCoast = cha.getCoastCon();
         if (boat.getEmptyIndex() == -1)
         {
             return;
         }
         if (nowCoast.getStatus() != boat.getStatus())
         {
             return;
         }
         nowCoast.getOffCoast(cha.getName());
         cha.moveToPosition(boat.getEmptyPosition());
         cha.getOnBoat(boat);
         boat.getOnBoat(cha);
     }
     userGUI.status = check();
 }