OurGamesForCourse
108 строк · 1.9 Кб
1namespace PauchiaUkladka;
2
3public class GameGrid
4{
5private readonly int[,] grid;
6
7public int Rows
8{
9get;
10}
11
12public int Colums
13{
14get;
15}
16
17public int this[int r, int c]
18{
19get
20{
21return grid[r, c];
22}
23set
24{
25grid[r, c] = value;
26}
27}
28
29public GameGrid(int rows, int colums)
30{
31Rows = rows;
32Colums = colums;
33grid = new int[rows, colums];
34}
35
36public bool IsInside(int r, int c)
37{
38if ((r >= 0) && (r < Rows) && (c >= 0) && (c < Colums))
39return true;
40else
41return false;
42}
43
44public bool IsEmpty(int r, int c)
45{
46if (IsInside(r, c) && (grid[r, c] == 0))
47return true;
48else
49return false;
50}
51
52public bool IsRowFull(int r)
53{
54for (int c = 0; c < Colums; c++)
55{
56if (grid[r, c] == 0)
57return false;
58}
59
60return true;
61}
62
63public bool IsRowEmpty(int r)
64{
65for (int c = 0; c < Colums; c++)
66{
67if (grid[r, c] != 0)
68return false;
69}
70
71return true;
72}
73
74private void ClearRow(int r)
75{
76for (int c = 0; c < Colums; c++)
77grid[r, c] = 0;
78}
79
80private void MoveRowDown(int r, int numRows)
81{
82for (int c = 0; c < Colums; c++)
83{
84grid[r + numRows, c] = grid[r, c];
85grid[r, c] = 0;
86}
87}
88
89public int ClearFullRows()
90{
91int cleard = 0;
92
93for (int r = Rows-1; r >= 0; r--)
94{
95if (IsRowFull(r))
96{
97ClearRow(r);
98cleard++;
99}
100else if (cleard > 0)
101{
102MoveRowDown(r, cleard);
103}
104}
105
106return cleard;
107}
108}