コード例 #1
0
        private void LoadPattern()
        {
            string patternFolder = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Pattern");

            if (!Directory.Exists(patternFolder))
            {
                return;
            }

            LearnLifeCore.FileReader.FileReader fileReader = new LearnLifeCore.FileReader.FileReader();
            if (tutorial.Border > 0)
            {
                fileReader.Border = tutorial.Border;
            }
            LearnLifeCore.Grid lifeGrid = fileReader.ReadFile(Path.Combine(patternFolder, "tutorial", tutorial.Pattern));
            if (lifeGrid != null)
            {
                gridControl1.SetLifeGrid(lifeGrid);
                gridControl1.FitBestGridSize();

                buttonNext.Enabled  = true;
                buttonPause.Enabled = true;
                buttonStart.Enabled = true;
            }
        }
コード例 #2
0
        static void Main(string[] args)
        {
            LearnLifeCore.Grid grid = new LearnLifeCore.Grid(Console.WindowWidth - 1, Console.WindowHeight - 5);
            grid.RandomWorld(10);

            /*
             * TODO
             *
             * Key handler
             * h, ?, help, man - help
             * i - info
             * l - load
             *
             * File Loader
             *
             * cmd path: System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
             */

            do
            {
                Console.Clear();
                RenderNext(grid);
                grid.GenerateNext();
            } while (Console.ReadKey().Key == ConsoleKey.Enter);
        }
コード例 #3
0
        private void InitNewWorld(LearnLifeCore.Grid lifeGrid)
        {
            gridControlMain.SimulationPause();
            gridControlMain.SetLifeGrid(lifeGrid);
            gridControlMain.GridSize = trackBarSize.Value;
            UpdateScrollBars();

            toolStripStatusLabelRule.Text = "Rule: " + lifeGrid.Rule;
        }
コード例 #4
0
ファイル: GridControl.cs プロジェクト: spech66/LearnLife
        public void SetLifeGrid(LearnLifeCore.Grid lg)
        {
            this.lifeGrid = lg;
            SimulationPause();
            ScrollLeft = ScrollTop = 0;

            if (GridSize < 1)
            {
                GridSize = 1;
            }
        }
コード例 #5
0
 /// <summary>
 /// Read a file and create grid
 /// </summary>
 /// <param name="fileReader"></param>
 /// <param name="filename"></param>
 private void ReadLifeFile(LearnLifeCore.FileReader.FileReader fileReader, string filename)
 {
     try
     {
         LearnLifeCore.Grid lifeGrid = fileReader.ReadFile(filename);
         if (lifeGrid != null)
         {
             InitNewWorld(lifeGrid);
         }
         else
         {
             throw new NotSupportedException("Fileformat is missformed.");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Could not read file from disk.\nOriginal error:\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
コード例 #6
0
 static void RenderNext(LearnLifeCore.Grid grid)
 {
     Console.WriteLine("Gen: {0}", grid.Generation);
     for (int j = 0; j < grid.Height; j++)
     {
         for (int i = 0; i < grid.Width; i++)
         {
             if (grid[i, j] == 1)
             {
                 Console.Write("#");
             }
             else
             {
                 Console.Write(" ");
             }
         }
         Console.WriteLine();
     }
     Console.WriteLine();
 }
コード例 #7
0
        private void newToolStripMenuItem_Click(object sender, EventArgs e)
        {
            NewDialog dlg = new NewDialog();

            if (dlg.ShowDialog() != System.Windows.Forms.DialogResult.OK)
            {
                return;
            }

            LearnLifeCore.Grid lifeGrid = new LearnLifeCore.Grid(dlg.GridWidth, dlg.GridHeight);
            lifeGrid.ParsePatternRule(dlg.Rule);
            if (dlg.GenerateRandom)
            {
                lifeGrid.RandomWorld(dlg.RandomPercent);
            }

            isModified = false;
            OpenFile   = string.Empty;

            InitNewWorld(lifeGrid);

            //PatternInfoDialog pidlg = new PatternInfoDialog(gridControlMain.LifeGrid);
            //pidlg.ShowDialog();
        }
コード例 #8
0
        public PatternInfoDialog(LearnLifeCore.Grid grid)
        {
            InitializeComponent();

            this.grid = grid;
        }