/
MrFish
/
CSharpGameProject
Обзор
Документация
Войти
/
MrFish
/
CSharpGameProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
MainGameProject/Board.cs
93 строки
3 KB
Yaroslav4444-bauer
Кодстайл - исправлены сообщения
20 дек 2025, 14:46
20 дек 2025, 14:46
5149f1a
Код
Авторство
О чём код?
using System; namespace MainGameProject { // Board class public class Board { public const int Size = 8; // 8 Х 8 public Cell[][] Cells { get; set; } = new Cell[Size][]; // Матрица клеток // В конструкторе инициализируем доску public Board() { InitializeBoard(); } // Инициализация доски private void InitializeBoard() { var random = new Random(); var terrains = Enum.GetValues<TerrainType>(); // Присваиваем каждой клетке рандомный биом for (int r = 0; r < Size; r++) { Cells[r] = new Cell[Size]; for (int c = 0; c < Size; c++) { Cells[r][c] = new Cell(terrains[random.Next(terrains.Length)]); } } } // Установка тотема на доску public void PlaceTotem(Totem totem) { var cell = Cells[totem.Position.Row][totem.Position.Col]; cell.HasTotem = true; cell.PlayerId = totem.PlayerId; } // Функция перемещения тотема игрока public void MoveTotem(Totem totem, Position newPos) { // Удаление со старой позиции var oldCell = Cells[totem.Position.Row][totem.Position.Col]; oldCell.HasTotem = false; oldCell.PlayerId = 0; // Установка на новую позицию totem.Position = newPos; var newCell = Cells[newPos.Row][newPos.Col]; newCell.HasTotem = true; newCell.PlayerId = totem.PlayerId; } // Вывод состояния доски на экран public void Display() { Console.Write(" "); for (int col = 0; col < Size; col++) Console.Write($" {col}"); Console.WriteLine(); for (int r = 0; r < Size; r++) { Console.Write(r + " "); for (int c = 0; c < Size; c++) { var cell = Cells[r][c]; char symbol; if (cell.HasTotem) { symbol = cell.PlayerId == 1 ? '@' : '*'; // Значки игроков } else { symbol = cell.Terrain switch { TerrainType.Plain => '.', // Равнина TerrainType.Forest => 'F', // Лес TerrainType.Desert => 'D', // Пустыня TerrainType.Ocean => 'O', // Океан TerrainType.Mountain => 'M', // Гора _ => '?' // (?) Неизвестный тип }; } Console.Write(symbol + " "); } Console.WriteLine(); } Console.WriteLine(); } } }