using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography.Xml; using System.Text; using System.Threading.Tasks; namespace Snake { public class Map { public Cell[,] Cells; private int _h; private int _w; private const int CELL_SIZE = 20; public Map(int h, int w) { Cells = new Cell[h, w]; _h = h; _w = w; for (int x = 0; x < _w; x++) { for (int y = 0; y < _h; y++) { Cells[x, y] = new Cell(x, y, CellTypes.None); } } } public void SetCell(Cell cell) { Cells[cell.X,cell.Y] = cell; } public void SwapCells(Cell cell1, Cell cell2) { int tmpX = cell1.X; int tmpY = cell1.Y; cell1.X = cell2.X; cell1.Y = cell2.Y; cell2.X = tmpX; cell2.Y = tmpY; Cells[cell1.X, cell1.Y] = cell1; Cells[cell2.X, cell2.Y] = cell2; } public void Render(Graphics graphics) { SolidBrush brush = new SolidBrush(Color.RebeccaPurple); for (int x = 0; x < _w; x++) { for (int y = 0; y < _h; y++) { Cell cell = Cells[x,y]; if (cell.Type == CellTypes.None) { brush.Color = Color.LightGray; } else if (cell.Type == CellTypes.Snake) { brush.Color = Color.Green; } else if (cell.Type == CellTypes.Food) { brush.Color = Color.Red; } int totalHeight = CELL_SIZE * _h; graphics.FillRectangle(brush, x * 20, totalHeight - y * 20, CELL_SIZE, CELL_SIZE ); } } } } }