Example #1
0
    public void SetPuzzleType(PuzzleTile.PType t)
    {
        puzzleType = t;
        switch (t)
        {
        case PuzzleTile.PType.R:
            colorControllor.SetColor(Color.red);
            break;

        case PuzzleTile.PType.G:
            colorControllor.SetColor(Color.green);
            break;

        case PuzzleTile.PType.B:
            colorControllor.SetColor(Color.blue);
            break;

        case PuzzleTile.PType.C:
            colorControllor.SetColor(Color.cyan);
            break;

        case PuzzleTile.PType.M:
            colorControllor.SetColor(Color.magenta);
            break;

        case PuzzleTile.PType.Y:
            colorControllor.SetColor(Color.yellow);
            break;
        }
    }
Example #2
0
    public void PushPuzzleRow(Dir dir, int row, PuzzleTile.PType t)
    {
        PuzzleTile p;
        int        max = 0, min = 0, step = 1;

        switch (dir)
        {
        case Dir.left:
            min  = 0;
            max  = puzzleMap.Count;
            step = 1;
            break;

        case Dir.right:
            max  = -1;
            min  = puzzleMap.Count - 1;
            step = -1;
            break;
        }

        for (int i = max - step; i != min - step; i -= step)
        {
            p = GetPuzzleTile(i, row);
            if (p != null)
            {
                if (p.puzzleType == t)
                {
                    RemovePuzzle(i, row);
                }
            }
        }
        for (int i = min; i != max; i += step)
        {
            Debug.Log("min=" + min + ";i=" + i);
            p = GetPuzzleTile(i, row);
            if (p != null)
            {
                puzzleMap[i][row] = null;
                if (puzzleMap[min].Count > row)
                {
                    puzzleMap[min][row] = p;
                }
                else
                {
                    puzzleMap[min].Add(p);
                }

                Vector3 pos = new Vector3(min, row, 0f) + puzzleOffset;
                p.Move(pos);
                min += step;
            }
        }
    }
Example #3
0
    public bool RemovePuzzle(int col, int row, PuzzleTile.PType t)
    {
        List <PuzzleTile> l = puzzleMap[col];

        if (l.Count > row && l[row] != null)
        {
            PuzzleTile p = l[row];
            if (p.puzzleType == t)
            {
                l[row] = null;
                p.Kill();
                puzzleDirty = true;
                return(true);
            }
        }
        return(false);
    }