Exemplo n.º 1
0
    public BoardState()
    {
        bool fieldSymmetry  = PlayerPrefs.GetInt(Settings.symmetricFildKey, 0) == 1;
        bool offsetSymmetry = PlayerPrefs.GetInt(Settings.symmetricTileOffsetKey, 0) == 1;
        bool miceSymmetry   = PlayerPrefs.GetInt(Settings.symmetricMicePositionKey, 0) == 1;

        offsetSymmetry = offsetSymmetry && fieldSymmetry;
        miceSymmetry   = miceSymmetry && offsetSymmetry;

        for (int i = 0; i < blueMice.Length; i++)
        {
            blueMice[i] = new BlueMouse();
        }
        for (int i = 0; i < redMice.Length; i++)
        {
            redMice[i] = new RedMouse();
        }
        PlaceTiles(fieldSymmetry, offsetSymmetry);
        PlaceMice(blueMice, 1, 10);
        if (!miceSymmetry)
        {
            PlaceMice(redMice, 11, 20);
        }
        else
        {
            PlaceMiceSymmetric(blueMice, redMice);
        }

        // initial mice movement requires starting from end turn state
        turnState = Random.Range(0, 2) == 0 ? TurnState.BlueEnd : TurnState.RedEnd;
        QuickMoveAllMice();
    }
Exemplo n.º 2
0
 public BoardState(BoardState other)
 {
     tiles     = (TileType[, ])other.tiles.Clone();
     turnState = other.turnState;
     for (int i = 0; i < blueMice.Length; i++)
     {
         blueMice[i] = new BlueMouse
         {
             X        = other.blueMice[i].X,
             Y        = other.blueMice[i].Y,
             IsActive = other.blueMice[i].IsActive
         };
     }
     for (int i = 0; i < redMice.Length; i++)
     {
         redMice[i] = new RedMouse()
         {
             X        = other.redMice[i].X,
             Y        = other.redMice[i].Y,
             IsActive = other.redMice[i].IsActive
         };
     }
     blueScore  = other.blueScore;
     redScore   = other.redScore;
     lastTurn   = other.lastTurn;
     validTurns = GetValidTurns();
 }