コード例 #1
0
ファイル: Tri.cs プロジェクト: pattyqubed/GameofTiles
        /**
         *      @param n Must be positive
         */
        public PointyTriHexagonWrapper(int side)
        {
            if (side <= 0)
            {
                throw new Exception("n Must be a positive integer.");
            }

            int colorCount = 3 * side * side;

            colorFunc = x => x.GetColor(colorCount / side, side, side);

            wrappedPoints = new PointyTriPoint[colorCount * 2];
            var grid = PointyTriGrid <int> .Hexagon(side);

            foreach (var point in grid)
            {
                int color = colorFunc(point);
                wrappedPoints[color] = point;
            }
        }
コード例 #2
0
        protected override void InitGrid()
        {
            VectorPoint rectDimensions = Dimensions;

            switch (shape)
            {
            case Shape.Rectangle:
                base.Grid = PointyTriGrid <TileCell> .Rectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.Parallelogram:
                base.Grid = PointyTriGrid <TileCell> .ParallelogramXY(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.ThinRectangle:
                base.Grid = PointyTriGrid <TileCell> .ThinRectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.FatRectangle:
                base.Grid = PointyTriGrid <TileCell> .FatRectangle(rectDimensions.X, rectDimensions.Y);

                break;

            case Shape.LeftTriangle:
                base.Grid = PointyTriGrid <TileCell> .LeftTriangle(size);

                break;

            case Shape.RightTriangle:
                base.Grid = PointyTriGrid <TileCell> .RightTriangle(size);

                break;

            case Shape.Hexagon:
                base.Grid = PointyTriGrid <TileCell> .Hexagon(size);

                break;

            case Shape.Star:
                base.Grid = PointyTriGrid <TileCell> .Star(size);

                break;

            case Shape.Single:
                base.Grid = PointyTriGrid <TileCell> .Single();

                break;

            case Shape.SingleGroup:
                base.Grid = PointyTriGrid <TileCell> .SingleGroup();

                break;

            case Shape.Custom:
                base.Grid = GetCustomGrid();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }