예제 #1
0
        /// <summary>
        /// Set up the galaxy
        /// </summary>
        /// <param name="galaxyType"></param>
        /// <param name="minPlanets"></param>
        /// <param name="maxPlanets"></param>
        /// <param name="r"></param>
        /// <param name="reason"></param>
        public bool GenerateGalaxy(GALAXYTYPE galaxyType, int minPlanets, int maxPlanets, Random r, out string reason)
        {
            if (_bw.IsBusy)
            {
                reason = "Already in process of generating a galaxy";
                return false;
            }
            _bw.DoWork += GenerateGalaxyThread;
            _bw.RunWorkerCompleted += GenerateGalaxyCompleted;
            GalaxyArgs args = new GalaxyArgs();
            args.GalaxyType = galaxyType;
            args.MinPlanets = minPlanets;
            args.MaxPlanets = maxPlanets;
            args.Random = r;
            _bw.RunWorkerAsync(args);

            reason = null;
            return true;
        }
예제 #2
0
        private static bool[][] GenerateRandom(GALAXYTYPE type)
        {
            int width  = 0;
            int height = 0;

            switch (type)
            {
            case GALAXYTYPE.SMALL:
            {
                width  = 21;
                height = 15;
            } break;

            case GALAXYTYPE.MEDIUM:
            {
                width  = 27;
                height = 21;
            } break;

            case GALAXYTYPE.LARGE:
            {
                width  = 33;
                height = 24;
            } break;

            case GALAXYTYPE.HUGE:
            {
                width  = 39;
                height = 27;
            } break;
            }
            bool[][] grid = new bool[width][];
            for (int i = 0; i < grid.Length; i++)
            {
                grid[i] = new bool[height];
                for (int j = 0; j < height; j++)
                {
                    grid[i][j] = true;
                }
            }

            return(grid);
        }
예제 #3
0
        /// <summary>
        /// Set up the galaxy
        /// </summary>
        /// <param name="galaxyType"></param>
        /// <param name="minPlanets"></param>
        /// <param name="maxPlanets"></param>
        /// <param name="r"></param>
        /// <param name="reason"></param>
        public bool GenerateGalaxy(GALAXYTYPE galaxyType, int minPlanets, int maxPlanets, Random r, out string reason)
        {
            if (_bw.IsBusy)
            {
                reason = "Already in process of generating a galaxy";
                return(false);
            }
            _bw.DoWork             += GenerateGalaxyThread;
            _bw.RunWorkerCompleted += GenerateGalaxyCompleted;
            GalaxyArgs args = new GalaxyArgs();

            args.GalaxyType = galaxyType;
            args.MinPlanets = minPlanets;
            args.MaxPlanets = maxPlanets;
            args.Random     = r;
            _bw.RunWorkerAsync(args);

            reason = null;
            return(true);
        }
예제 #4
0
        private static bool[][] GenerateRandom(GALAXYTYPE type)
        {
            int width = 0;
            int height = 0;

            switch (type)
            {
                case GALAXYTYPE.SMALL:
                {
                    width = 21;
                    height = 15;
                } break;
                case GALAXYTYPE.MEDIUM:
                    {
                        width = 27;
                        height = 21;
                    } break;
                case GALAXYTYPE.LARGE:
                    {
                        width = 33;
                        height = 24;
                    } break;
                case GALAXYTYPE.HUGE:
                    {
                        width = 39;
                        height = 27;
                    } break;
            }
            bool[][] grid = new bool[width][];
            for (int i = 0; i < grid.Length; i++)
            {
                grid[i] = new bool[height];
                for (int j = 0; j < height; j++)
                {
                    grid[i][j] = true;
                }
            }

            return grid;
        }