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; } }
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); }
private void InitNewWorld(LearnLifeCore.Grid lifeGrid) { gridControlMain.SimulationPause(); gridControlMain.SetLifeGrid(lifeGrid); gridControlMain.GridSize = trackBarSize.Value; UpdateScrollBars(); toolStripStatusLabelRule.Text = "Rule: " + lifeGrid.Rule; }
public void SetLifeGrid(LearnLifeCore.Grid lg) { this.lifeGrid = lg; SimulationPause(); ScrollLeft = ScrollTop = 0; if (GridSize < 1) { GridSize = 1; } }
/// <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); } }
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(); }
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(); }
public PatternInfoDialog(LearnLifeCore.Grid grid) { InitializeComponent(); this.grid = grid; }