private static LifeBoard GetCuboidLifeBoard()
        {
            Console.Clear();

            int width  = GetInt32("Enter width [3]: ", 3);
            int height = GetInt32("Enter height [3]: ", 3);
            int depth  = GetInt32("Enter depth [3]: ", 3);
            IEnumerable <Position> alivePositions = GetAlivePositions();

            return(CuboidLifeBoard.Create(width, height, depth, alivePositions));
        }
        private static async Task CreateGameFromParameters(Options options)
        {
            if (options.GameFilePath != null)
            {
                await LoadGame(options.GameFilePath).ConfigureAwait(false);
            }
            else
            {
                List <Position> alivePositions = new List <Position>();

                for (int i = 0; i < (options.AlivePositions.Length - 1); i += 2)
                {
                    alivePositions.Add(new Position(options.AlivePositions[i], options.AlivePositions[i + 1]));
                }

                if (Rules.IsValid(options.Rules))
                {
                    Rules rules = new Rules(options.Rules);

                    LifeBoard lifeBoard = null;
                    switch (options.Board)
                    {
                    case Options.BoardType.Toroid:
                        lifeBoard = ToroidLifeBoard.Create(options.Width, options.Height, alivePositions);
                        break;

                    case Options.BoardType.Cuboid:
                        lifeBoard = CuboidLifeBoard.Create(options.Width, options.Height, options.Depth, alivePositions);
                        break;
                    }

                    if (lifeBoard != null)
                    {
                        await CreateGame(rules, lifeBoard);
                    }
                }
            }
        }
 /// <summary>
 /// Creates a new instance of the see <see cref="CuboidLifeBoard"/>.
 /// </summary>
 /// <returns></returns>
 public LifeBoard Create()
 {
     return(CuboidLifeBoard.Create(Width, Height, Depth, new List <Position>()));
 }