Меняющаяся рандомная матрица: сохранить текущее состояние, и следующий запуск начать с него - C#

Узнай цену своей работы

Формулировка задачи:

у меня есть рандомная матрица, которая меняется. я хочу что бы в любой момент при нажатии "S" она сохранялась, а при новом запуске программы я мог её запустить, и продолжить с того места на котором остановился.

Решение задачи: «Меняющаяся рандомная матрица: сохранить текущее состояние, и следующий запуск начать с него»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8.     class Program
  9.     {
  10.  
  11.  
  12.         static void Main(string[] args)
  13.         {
  14.             Pods Otvet = new Pods();
  15.             Otvet.Vuvo1();
  16.             Otvet.Podsh();
  17.         }
  18.  
  19.     }
  20.     class Pods
  21.     {
  22.         public int stroka = 15;
  23.         public int stolb = 79;
  24.         int doom = 0;
  25.         int pokolen = 0;
  26.         int kollife = 0;
  27.         int kolrip = 0;
  28.         public int[,] Matr1 = new int[15, 79];
  29.         public int[,] Matr2 = new int[15, 79];
  30.         public Random MyRandom = new Random();
  31.  
  32.         public void Vuvo1()
  33.         {
  34.            
  35.             for (int i = 0; i < stroka; i++)
  36.                 for (int j = 0; j < stolb; j++)
  37.                 {
  38.                    
  39.  
  40.                     Matr1[i, j] = MyRandom.Next(0, 2);
  41.  
  42.                    
  43.  
  44.                 }
  45.             for (int i = 0; i < stroka; i++)
  46.             {
  47.  
  48.                 for (int j = 0; j < stolb; j++)
  49.                 {
  50.                     if (Matr1[i, j] == 1)
  51.                     Console.Write("*");
  52.                     else Console.Write(" ");
  53.                  
  54.                 }
  55.                   //  Console.Write(Matr1[i, j]);
  56.  
  57.  
  58.  
  59.                 Console.WriteLine();
  60.  
  61.  
  62.             }
  63.             Console.WriteLine();
  64.             Console.Write("Поколение: " + pokolen);
  65.            
  66.            
  67.             Console.WriteLine();
  68.             Console.ReadKey();
  69.             Console.Clear();
  70.         }
  71.         public void Podsh()
  72.         {
  73.             while (true)
  74.             {
  75.                 pokolen = pokolen + 1;
  76.                 kollife = 0;
  77.                 kolrip = 0;
  78.                 bool flag = false;
  79.  
  80.                 for (int i = 0; i < stroka; i++)
  81.                     for (int j = 0; j < stolb; j++)
  82.                     {
  83.                         doom = 0;
  84.                         flag = false;
  85.  
  86.                         if (i == 0 && j == 0) // угол верхний левый 11
  87.                         {
  88.                             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];
  89.                             flag = true;
  90.  
  91.                         }
  92.                         if (i == 0 && j != 0 && j != stolb - 1) //строка
  93.                         {
  94.                             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];
  95.                             flag = true;
  96.                         }
  97.                         if (i == 0 && j == stolb - 1) // угол верхний правый 11
  98.                         {
  99.                             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];
  100.                             flag = true;
  101.                         }
  102.                         if (j == stolb - 1 && i != stroka - 1 && i != 0) //нижний столб
  103.                         {
  104.                             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];
  105.                             flag = true;
  106.                         }
  107.                         if (i == stroka - 1 && j == stolb - 1) // угол нижний правый 11
  108.                         {
  109.                             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];
  110.                             flag = true;
  111.                         }
  112.                         if (i == stroka - 1 && j != 0 && j != stolb - 1) // нижняя строка
  113.                         {
  114.                             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];
  115.                             flag = true;
  116.                         }
  117.                         if (i == stroka - 1 && j == 0) //угол нижний левый 11
  118.                         {
  119.                             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];
  120.                             flag = true;
  121.                         }
  122.                         if (j == 0 && i != 0 && i != stroka - 1) // столоб
  123.                         {
  124.                             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];
  125.                             flag = true;
  126.                         }
  127.  
  128.                         if (!flag)
  129.                         {
  130.                             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];
  131.                         }
  132.                         if (Matr1[i, j] == 1)
  133.                         {
  134.                             if ((doom == 2) || (doom == 3)) Matr2[i, j] = 1;
  135.                             else Matr2[i, j] = 0;
  136.                         }
  137.                         if (Matr1[i, j] == 0)
  138.                         {
  139.                             if (doom == 3) Matr2[i, j] = 1;
  140.                             else Matr2[i, j] = 0;
  141.                         }
  142.                         if (Matr1[i, j] == 1)
  143.                         {
  144.                             kollife = kollife + 1;
  145.                         }
  146.                         if (Matr1[i, j] == 0)
  147.                         {
  148.                             kolrip = kolrip + 1;
  149.                         }
  150.  
  151.                     }
  152.  
  153.  
  154.  
  155.                 for (int i = 0; i < stroka; i++)
  156.                 {
  157.                     for (int j = 0; j < stolb; j++)
  158.                     {  if (Matr2[i, j] == 1)
  159.                        
  160.                            Console.Write("*");
  161.                          else Console.Write(" ");
  162.                    
  163.                         Matr1[i, j] = Matr2[i, j];
  164.  
  165.                     }
  166.                    
  167.  
  168.                     Console.WriteLine();
  169.                 }
  170.                
  171.  
  172.                 Console.WriteLine();
  173.  
  174.                 Console.Write("Поколение: " + pokolen);
  175.                 Console.WriteLine();
  176.                 Console.Write("life: " + kollife);
  177.                 Console.WriteLine();
  178.                 Console.Write("Rip: " + kolrip);
  179.                 Console.ReadKey();
  180.                 Console.Clear();
  181.             }
  182.         }
  183.  
  184.  
  185.     }
  186. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы