コード例 #1
0
ファイル: Figure.cs プロジェクト: eplar0/childhood-games-pack
        public Figure(Panel workspace, FIGURE_TYPE figureType)
        {
            this.workspace  = workspace;
            this.figureType = figureType;

            isStay        = false;
            rotatingState = FIGURE_ROTATING_STATE.NORMAL;

            cubes = CreateFigure(figureType);
        }
コード例 #2
0
ファイル: Figure.cs プロジェクト: eplar0/childhood-games-pack
        private List <Point> CreateFigure(FIGURE_TYPE figureType)
        {
            List <Point> cubes = new List <Point>();

            switch (figureType)
            {
            case FIGURE_TYPE.I: {
                for (int i = 0; i < 4; i++)
                {
                    cubes.Add(new Point(4 * CUBE_SIZE, (i - 4) * CUBE_SIZE));
                }

                break;
            }

            case FIGURE_TYPE.J: {
                cubes.Add(new Point(5 * CUBE_SIZE, -CUBE_SIZE));
                cubes.Add(new Point(4 * CUBE_SIZE, -CUBE_SIZE));
                cubes.Add(new Point(3 * CUBE_SIZE, -CUBE_SIZE));
                cubes.Add(new Point(3 * CUBE_SIZE, -2 * CUBE_SIZE));

                break;
            }

            case FIGURE_TYPE.L: {
                cubes.Add(new Point(3 * CUBE_SIZE, -CUBE_SIZE));
                cubes.Add(new Point(4 * CUBE_SIZE, -CUBE_SIZE));
                cubes.Add(new Point(5 * CUBE_SIZE, -CUBE_SIZE));
                cubes.Add(new Point(5 * CUBE_SIZE, -2 * CUBE_SIZE));

                break;
            }

            case FIGURE_TYPE.O: {
                cubes.Add(new Point(5 * CUBE_SIZE, -2 * CUBE_SIZE));
                cubes.Add(new Point(4 * CUBE_SIZE, -2 * CUBE_SIZE));
                cubes.Add(new Point(4 * CUBE_SIZE, -CUBE_SIZE));
                cubes.Add(new Point(5 * CUBE_SIZE, -CUBE_SIZE));

                break;
            }

            case FIGURE_TYPE.S: {
                cubes.Add(new Point(5 * CUBE_SIZE, -2 * CUBE_SIZE));
                cubes.Add(new Point(4 * CUBE_SIZE, -2 * CUBE_SIZE));
                cubes.Add(new Point(4 * CUBE_SIZE, -CUBE_SIZE));
                cubes.Add(new Point(3 * CUBE_SIZE, -CUBE_SIZE));

                break;
            }

            case FIGURE_TYPE.T: {
                cubes.Add(new Point(4 * CUBE_SIZE, -2 * CUBE_SIZE));
                cubes.Add(new Point(3 * CUBE_SIZE, -CUBE_SIZE));
                cubes.Add(new Point(4 * CUBE_SIZE, -CUBE_SIZE));
                cubes.Add(new Point(5 * CUBE_SIZE, -CUBE_SIZE));

                break;
            }

            case FIGURE_TYPE.Z: {
                cubes.Add(new Point(4 * CUBE_SIZE, -2 * CUBE_SIZE));
                cubes.Add(new Point(5 * CUBE_SIZE, -2 * CUBE_SIZE));
                cubes.Add(new Point(5 * CUBE_SIZE, -CUBE_SIZE));
                cubes.Add(new Point(6 * CUBE_SIZE, -CUBE_SIZE));

                break;
            }

            default:
                throw new Exception("Wrong type of Figure");
            }

            return(cubes);
        }