Меняющаяся рандомная матрица: сохранить текущее состояние, и следующий запуск начать с него - C#
Формулировка задачи:
у меня есть рандомная матрица, которая меняется. я хочу что бы в любой момент при нажатии "S" она сохранялась, а при новом запуске программы я мог её запустить, и продолжить с того места на котором остановился.
Решение задачи: «Меняющаяся рандомная матрица: сохранить текущее состояние, и следующий запуск начать с него»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- Pods Otvet = new Pods();
- Otvet.Vuvo1();
- Otvet.Podsh();
- }
- }
- class Pods
- {
- public int stroka = 15;
- public int stolb = 79;
- int doom = 0;
- int pokolen = 0;
- int kollife = 0;
- int kolrip = 0;
- public int[,] Matr1 = new int[15, 79];
- public int[,] Matr2 = new int[15, 79];
- public Random MyRandom = new Random();
- public void Vuvo1()
- {
- for (int i = 0; i < stroka; i++)
- for (int j = 0; j < stolb; j++)
- {
- Matr1[i, j] = MyRandom.Next(0, 2);
- }
- for (int i = 0; i < stroka; i++)
- {
- for (int j = 0; j < stolb; j++)
- {
- if (Matr1[i, j] == 1)
- Console.Write("*");
- else Console.Write(" ");
- }
- // Console.Write(Matr1[i, j]);
- Console.WriteLine();
- }
- Console.WriteLine();
- Console.Write("Поколение: " + pokolen);
- Console.WriteLine();
- Console.ReadKey();
- Console.Clear();
- }
- public void Podsh()
- {
- while (true)
- {
- pokolen = pokolen + 1;
- kollife = 0;
- kolrip = 0;
- bool flag = false;
- for (int i = 0; i < stroka; i++)
- for (int j = 0; j < stolb; j++)
- {
- doom = 0;
- flag = false;
- if (i == 0 && j == 0) // угол верхний левый 11
- {
- doom = Matr1[i, j + 1] + Matr1[i + 1, j] + Matr1[i + 1, j + 1] + Matr1[i, stolb - 1] + Matr1[i + 1, stolb - 1] + Matr1[stroka - 1, j] + Matr1[stroka - 1, j + 1] + Matr1[stroka - 1, stolb - 1];
- flag = true;
- }
- if (i == 0 && j != 0 && j != stolb - 1) //строка
- {
- doom = Matr1[stroka - 1, j] + Matr1[stroka - 1, j - 1] + Matr1[stroka - 1, j + 1] + Matr1[1, j - 1] + Matr1[1, j] + Matr1[1, j + 1] + Matr1[0, j - 1] + Matr1[0, j + 1];
- flag = true;
- }
- if (i == 0 && j == stolb - 1) // угол верхний правый 11
- {
- doom = Matr1[0, 0] + Matr1[1, 0] + Matr1[stroka - 1, 0] + Matr1[0, stolb - 2] + Matr1[1, stolb - 2] + Matr1[1, stolb - 1] + Matr1[stroka - 1, stolb - 1] + Matr1[stroka - 1, stolb - 2];
- flag = true;
- }
- if (j == stolb - 1 && i != stroka - 1 && i != 0) //нижний столб
- {
- doom = Matr1[i + 1, 0] + Matr1[i - 1, 0] + Matr1[i, 0] + Matr1[i - 1, j - 1] + Matr1[i - 1, j] + Matr1[i, j - 1] + Matr1[i + 1, j - 1] + Matr1[i + 1, j];
- flag = true;
- }
- if (i == stroka - 1 && j == stolb - 1) // угол нижний правый 11
- {
- doom = Matr1[0, 0] + Matr1[0, stolb - 1] + Matr1[0, stolb - 2] + Matr1[stroka - 2, 0] + Matr1[stroka - 1, 0] + Matr1[stroka - 1, stolb - 2] + Matr1[stroka - 2, stolb - 2] + Matr1[stroka - 1, stolb - 1];
- flag = true;
- }
- if (i == stroka - 1 && j != 0 && j != stolb - 1) // нижняя строка
- {
- doom = Matr1[0, j - 1] + Matr1[0, j] + Matr1[0, j + 1] + Matr1[stroka - 1, j - 1] + Matr1[stroka - 2, j - 1] + Matr1[stroka - 1, j] + Matr1[stroka - 1, j + 1] + Matr1[stroka - 2, j + 1];
- flag = true;
- }
- if (i == stroka - 1 && j == 0) //угол нижний левый 11
- {
- doom = Matr1[0, 0] + Matr1[0, 1] + Matr1[0, stolb - 1] + Matr1[stroka - 2, 0] + Matr1[stroka - 2, 1] + Matr1[stroka - 1, 1] + Matr1[stroka - 2, stolb - 1] + Matr1[stroka - 1, stolb - 1];
- flag = true;
- }
- if (j == 0 && i != 0 && i != stroka - 1) // столоб
- {
- doom = Matr1[i, stolb - 1] + Matr1[i - 1, stolb - 1] + Matr1[i + 1, stolb - 1] + Matr1[i - 1, j + 1] + Matr1[i - 1, j] + Matr1[i, j + 1] + Matr1[i + 1, j] + Matr1[i + 1, j + 1];
- flag = true;
- }
- if (!flag)
- {
- doom = Matr1[i - 1, j + 1] + Matr1[i, j + 1] + Matr1[i + 1, j + 1] + Matr1[i + 1, j] + Matr1[i + 1, j - 1] + Matr1[i, j - 1] + Matr1[i - 1, j - 1] + Matr1[i - 1, j];
- }
- if (Matr1[i, j] == 1)
- {
- if ((doom == 2) || (doom == 3)) Matr2[i, j] = 1;
- else Matr2[i, j] = 0;
- }
- if (Matr1[i, j] == 0)
- {
- if (doom == 3) Matr2[i, j] = 1;
- else Matr2[i, j] = 0;
- }
- if (Matr1[i, j] == 1)
- {
- kollife = kollife + 1;
- }
- if (Matr1[i, j] == 0)
- {
- kolrip = kolrip + 1;
- }
- }
- for (int i = 0; i < stroka; i++)
- {
- for (int j = 0; j < stolb; j++)
- { if (Matr2[i, j] == 1)
- Console.Write("*");
- else Console.Write(" ");
- Matr1[i, j] = Matr2[i, j];
- }
- Console.WriteLine();
- }
- Console.WriteLine();
- Console.Write("Поколение: " + pokolen);
- Console.WriteLine();
- Console.Write("life: " + kollife);
- Console.WriteLine();
- Console.Write("Rip: " + kolrip);
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д