Beispiel #1
0
 void Game(Cell cell) // Метод самой логики игры
 {
     if (cell.Cycle == Cell.CycleLife.Empty && cell.CellCount == 3)
     {
         cell.rect.Fill = cell.GiveLife();                                                                                   // Если ячейка пустая и рядом 3 соседа, то возрождаем
     }
     if (cell.Cycle == Cell.CycleLife.New && cell.CellCount == 2 || cell.Cycle == Cell.CycleLife.New && cell.CellCount == 3) // Если Ячейка живая и рядом либо 2, либо 3 соседа, то живем
     {
         cell.rect.Fill = cell.GiveLife();                                                                                   // Красим в красный и даем жизнь клетке
     }
     else // иначе умираем
     {
         cell.rect.Fill = cell.Death(); // Красив в зеленые и омертвляем клетку
     }
 }
Beispiel #2
0
        void Draw()                                                                                                       // Метод отрисовки наших клеток
        {
            for (int x = 0; x < Width / Size; x++)                                                                        // Цикл по координатной плоскости X
            {
                for (int y = 0; y < Height / Size; y++)                                                                   // Цикл по координатной плоскости Y
                {
                    Cell cell = new Cell(new Coord(x, y), Size, Brushes.Green, Brushes.Green);                            // Создаем клетку с параметрами

                    cell.rect.MouseLeftButtonDown += (s, e) => { (s as Rectangle).Fill = Brushes.Red; cell.GiveLife(); }; // Даем ей событие при котором клетка будет оживляться по нажатию на левую кнопку мыши
                    cell.rect.MouseEnter          += (s, e) => { if (e.LeftButton == MouseButtonState.Pressed)
                                                                 {
                                                                     (s as Rectangle).Fill = Brushes.Red; cell.GiveLife();
                                                                 }
                    };                                   // Событие, которое будет оживлять клетку, если ты навел курсор на нее и нажал на левую кнопку мыши
                    cell.Death();                        // Убиваем все клетки сначала
                    Canvas.SetLeft(cell.rect, x * Size); // Метод для того, чтобы все клетки по оси X располагались упорядоченно (одна за другой)
                    Canvas.SetTop(cell.rect, y * Size);  // Тоже самое, только по вертикали
                    cells.Add(cell.Position, cell);      // Добавляем клетку с ее координатами в словарь
                    canvas.Children.Add(cell.rect);      // Рисуем наши клетки на полотне
                }
            }
        }