Beispiel #1
0
        private Point[] GetTrominoPointsByPosition(TrominoPositions pos, Point p)
        {
            switch (pos)
            {
            case TrominoPositions.UpLeft:
                return(new Point[] {
                    new Point(p.X, p.Y),
                    new Point(p.X + 2 * SizeOfGridTile, p.Y),
                    new Point(p.X + 2 * SizeOfGridTile, p.Y + SizeOfGridTile),
                    new Point(p.X + SizeOfGridTile, p.Y + SizeOfGridTile),
                    new Point(p.X + SizeOfGridTile, p.Y + 2 * SizeOfGridTile),
                    new Point(p.X, p.Y + 2 * SizeOfGridTile),
                    new Point(p.X, p.Y),
                });

            case TrominoPositions.DownLeft:
                return(new Point[] {
                    new Point(p.X, p.Y),
                    new Point(p.X + SizeOfGridTile, p.Y),
                    new Point(p.X + SizeOfGridTile, p.Y + SizeOfGridTile),
                    new Point(p.X + 2 * SizeOfGridTile, p.Y + SizeOfGridTile),
                    new Point(p.X + 2 * SizeOfGridTile, p.Y + 2 * SizeOfGridTile),
                    new Point(p.X, p.Y + 2 * SizeOfGridTile),
                    new Point(p.X, p.Y),
                });

            case TrominoPositions.UpRight:
                return(new Point[] {
                    new Point(p.X, p.Y),
                    new Point(p.X + 2 * SizeOfGridTile, p.Y),
                    new Point(p.X + 2 * SizeOfGridTile, p.Y + 2 * SizeOfGridTile),
                    new Point(p.X + SizeOfGridTile, p.Y + 2 * SizeOfGridTile),
                    new Point(p.X + SizeOfGridTile, p.Y + SizeOfGridTile),
                    new Point(p.X, p.Y + SizeOfGridTile),
                    new Point(p.X, p.Y),
                });

            case TrominoPositions.DownRight:
                return(new Point[] {
                    new Point(p.X + SizeOfGridTile, p.Y),
                    new Point(p.X + 2 * SizeOfGridTile, p.Y),
                    new Point(p.X + 2 * SizeOfGridTile, p.Y + 2 * SizeOfGridTile),
                    new Point(p.X, p.Y + 2 * SizeOfGridTile),
                    new Point(p.X, p.Y + SizeOfGridTile),
                    new Point(p.X + SizeOfGridTile, p.Y + SizeOfGridTile),
                    new Point(p.X + SizeOfGridTile, p.Y),
                });

            default:
                return(new Point[] { });
            }
        }
Beispiel #2
0
 private void SetTromino(TrominoPositions trominoPos, Point baseQuadrantPos, Color brushColor)
 {
     GraphicsObj.FillPolygon(new SolidBrush(brushColor), GetTrominoPointsByPosition(trominoPos, baseQuadrantPos));
     GraphicsObj.DrawPolygon(BasicPen, GetTrominoPointsByPosition(trominoPos, baseQuadrantPos));
 }