Add project files.
This commit is contained in:
85
Snake/Map.cs
Normal file
85
Snake/Map.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
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
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user