Регистрация не е нужна, освен при създаване на тема в "Задача на седмицата".

Играта "Живот"

Играта "Живот"

Мнениеот Добромир Глухаров » 25 Юни 2019, 14:29

Ето играта "Живот" на C#

Живот with Menu.rar
(54.74 KiB) 102 пъти


Само да обърна внимание, че в тази част от MainForm.cs:

Код: Избери целия код
public partial class MainForm : Form
   {
      Popul pl;
      string fileName;
      string[] lv;
      RuleDialog rd;
      public MainForm()
      {
         //
         // The InitializeComponent() call is required for Windows Forms designer support.
         //
         InitializeComponent();
         
         //
         // TODO: Add constructor code after the InitializeComponent() call.
         //
         lv = new string[27];
         for(int c = 0; c < 27; c++)
            lv[c] = new string('0', 27);
         fileName
= @"C:\Users\Добромир.Asus-PC\Documents\Documents\My Documents - Dobromir\C#\Games\Живот with Menu\Lives\Untitled";
      }
      void ToolStripMenuItem1Click(object sender, EventArgs e)
      {
   
      }
      void ToolStripMenuItem2Click(object sender, EventArgs e)
      {
         
      }
      void ExitToolStripMenuItemClick(object sender, EventArgs e)
      {
         Application.Exit();
      }
      void NewToolStripMenuItemClick(object sender, EventArgs e)
      {
         for(int c = 0; c < 27; c++)
            lv[c] = new string('0', 27);
         fileName
= @"C:\Users\Добромир.Asus-PC\Documents\Documents\My Documents - Dobromir\C#\Games\Живот with Menu\Lives\Untitled";
         this.Invalidate();
      }
      void OpenToolStripMenuItemClick(object sender, EventArgs e)
      {
         OpenFileDialog openFileDialog1 = new OpenFileDialog();
         openFileDialog1.InitialDirectory
= @"C:\Users\Добромир.Asus-PC\Documents\Documents\My Documents - Dobromir\C#\Games\Живот with Menu\Lives";
         openFileDialog1.RestoreDirectory = false;
         openFileDialog1.DefaultExt = "liv";
         openFileDialog1.Filter = "live files (*.liv)|*.liv";
         openFileDialog1.FilterIndex = 1;
         openFileDialog1.CheckFileExists = true;
         openFileDialog1.CheckPathExists = true;
         openFileDialog1.ShowDialog();
         fileName = openFileDialog1.FileName;
         using(StreamReader rd = new StreamReader(fileName))
         {
            int c = 0;
            while(!rd.EndOfStream)
            {
               lv[c] = rd.ReadLine();
               c++;
            }
         }
         this.Invalidate();
      }
      void SaveToolStripMenuItemClick(object sender, EventArgs e)
      {
         using (StreamWriter wr = new StreamWriter(fileName))
         {
            for(int c=0; c<27; c++)
            wr.WriteLine(lv[c]);
         }
      }
      void SaveAsToolStripMenuItemClick(object sender, EventArgs e)
      {
         SaveFileDialog saveFileDialog1 = new SaveFileDialog();
         saveFileDialog1.InitialDirectory
= @"C:\Users\Добромир.Asus-PC\Documents\Documents\My Documents - Dobromir\C#\Games\Живот with Menu\Lives";
         saveFileDialog1.RestoreDirectory = false;
         saveFileDialog1.DefaultExt = "liv";
         saveFileDialog1.Filter = "live files (*.liv)|*.liv";
         saveFileDialog1.FilterIndex = 1;
         saveFileDialog1.CheckFileExists = false;
         saveFileDialog1.CheckPathExists = true;
         saveFileDialog1.ShowDialog();
         fileName = saveFileDialog1.FileName;
         using (StreamWriter wr = new StreamWriter(fileName))
         {
            for(int c=0; c<27; c++)
            wr.WriteLine(lv[c]);
         }
      }


за fileName и InitialDirectory съм задал пълните пътища според файловата система на МОЯ компютър. Когато разархивирате .rar - файла на своя, ще трябва да ги промените според собствената си файлова система. А може би ще можете да промените кода така, че да минете без дословно задаване на пътя - сигурно има начин да накарате компилатора да сложи Вашия път без да го изписвате. Ако някой се сети как да стане, ще се радвам, ако сподели тук.
Аватар
Добромир Глухаров
Математик
 
Мнения: 2080
Регистриран на: 11 Яну 2010, 13:23
Рейтинг: 2178

Re: Играта "Живот"

Мнениеот Davids » 25 Юни 2019, 14:38

Може да ползваш енумерацията $SpecialDirectories$: https://docs.microsoft.com/en-us/dotnet ... mework-4.8
В комбинация с $GetFolderPath$ метода от забравих кой неймспейс ти дават пълна флексабилност на директориите :P
*Нещо непосредствено и интересно, привличащо вниманието на читателя и оставящо го с приятна топла усмивка на лицето.*
----
Вече не го правя само за точката. :lol:
Davids
Математик
 
Мнения: 2394
Регистриран на: 16 Ное 2015, 11:47
Рейтинг: 2552

Re: Играта "Живот"

Мнениеот Добромир Глухаров » 25 Юни 2019, 21:02

Мисля, че го натаманих. (Проблемът със забиването при натискане на Cancel е отстранен.)

Живот with Menu.rar
(55.16 KiB) 136 пъти


Благодаря на Davids за помощта.
Аватар
Добромир Глухаров
Математик
 
Мнения: 2080
Регистриран на: 11 Яну 2010, 13:23
Рейтинг: 2178

Re: Играта "Живот"

Мнениеот Sup3rlum » 25 Юни 2019, 22:26

Ето една по-кратка и прибрана версия от мен.

GameOfLife.rar
(172.88 KiB) 136 пъти
Sup3rlum
Фен на форума
 
Мнения: 247
Регистриран на: 19 Фев 2019, 02:08
Рейтинг: 347


Назад към C#, Java



Кой е на линия

Регистрирани потребители: Google Adsense [Bot], Google [Bot]

Форум за математика(архив)