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[] { }); } }
private void SetTromino(TrominoPositions trominoPos, Point baseQuadrantPos, Color brushColor) { GraphicsObj.FillPolygon(new SolidBrush(brushColor), GetTrominoPointsByPosition(trominoPos, baseQuadrantPos)); GraphicsObj.DrawPolygon(BasicPen, GetTrominoPointsByPosition(trominoPos, baseQuadrantPos)); }