-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathSimFarmModel.cs
256 lines (232 loc) · 7.38 KB
/
SimFarmModel.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SimFarm
{
class SimFarmModel
{
//stores DanielModel
DanielModel model1;
//stores AngelaModel
AngelaModel model2;
//stores Shared Variables
SharedVariables variables;
/// <summary>
/// SimFarmModel Constructor
/// </summary>
/// <param name="rows">num of rows</param>
/// <param name="cols">num of cols</param>
public SimFarmModel(int rows, int cols)
{
variables = new SharedVariables(rows, cols);
model1 = new DanielModel(variables);
model2 = new AngelaModel(variables);
}
/// <summary>
/// get the age of the farm
/// </summary>
public int AgeOfFarm
{
get
{
return variables.AgeOfFarm;
}
}
/// <summary>
/// get money of the farm
/// </summary>
public double GetMoney
{
get
{
return variables.Money;
}
}
/// <summary>
/// updates the game
/// </summary>
public void UpdateGame()
{
model1.UpdateGame();
}
/// <summary>
/// subtract upkeep cost of products
/// </summary>
public void SubtractUpkeepCost()
{
model1.SubtractUpkeepCost();
}
/// <summary>
/// checks whether location piece is being placed at is empty
/// </summary>
/// <param name="row">row piece is being placed at</param>
/// <param name="col">col piece is being placed at</param>
/// <returns>whether the square is empty</returns>
public bool EmptySquare(int row, int col)
{
return model2.EmptySquare(row, col);
}
/// <summary>
/// builds a new corn
/// </summary>
/// <param name="col">row being placed at</param>
/// <param name="row">col being is placed at</param>
/// <returns>whether it was placed</returns>
public bool BuildCorn(int row, int col)
{
return model2.BuildCorn(row, col);
}
/// <summary>
/// builds a new tomato
/// </summary>
/// <param name="col">row being placed at</param>
/// <param name="row">col being is placed at</param>
/// <returns>whether it was placed</returns>
public bool BuildTomato(int row, int col)
{
return model2.BuildTomato(row, col);
}
/// <summary>
/// builds a new potato
/// </summary>
/// <param name="col">row being placed at</param>
/// <param name="row">col being is placed at</param>
/// <returns>whether it was placed</returns>
public bool BuildPotato(int row, int col)
{
return model2.BuildPotato(row, col);
}
/// <summary>
/// builds a new sweet potato
/// </summary>
/// <param name="col">row being placed at</param>
/// <param name="row">col being is placed at</param>
/// <returns>whether it was placed</returns>
public bool BuildSweetPotato(int row, int col)
{
return model2.BuildSweetPotato(row, col);
}
/// <summary>
/// builds a new broccoli
/// </summary>
/// <param name="col">row being placed at</param>
/// <param name="row">col being is placed at</param>
/// <returns>whether it was placed</returns>
public bool BuildBroccoli(int row, int col)
{
return model2.BuildBroccoli(row, col);
}
/// <summary>
/// builds a new asparagus
/// </summary>
/// <param name="col">row being placed at</param>
/// <param name="row">col being is placed at</param>
/// <returns>whether it was placed</returns>
public bool BuildAsparagus(int row, int col)
{
return model2.BuildAsparagus(row, col);
}
/// <summary>
/// builds a new pork
/// </summary>
/// <param name="col">row being placed at</param>
/// <param name="row">col being is placed at</param>
/// <returns>whether it was placed</returns>
public bool BuildPork(int row, int col)
{
return model2.BuildPork(row, col);
}
/// <summary>
/// builds a new beef
/// </summary>
/// <param name="col">row being placed at</param>
/// <param name="row">col being is placed at</param>
/// <returns>whether it was placed</returns>
public bool BuildBeef(int row, int col)
{
return model2.BuildBeef(row, col);
}
/// <summary>
/// builds a new chicken
/// </summary>
/// <param name="col">row being placed at</param>
/// <param name="row">col being is placed at</param>
/// <returns>whether it was placed</returns>
public bool BuildChicken(int row, int col)
{
return model2.BuildChicken(row, col);
}
/// <summary>
/// builds a new cow
/// </summary>
/// <param name="col">row being placed at</param>
/// <param name="row">col being is placed at</param>
/// <returns>whether it was placed</returns>
public bool BuildCow(int row, int col)
{
return model2.BuildCow(row, col);
}
/// <summary>
/// builds a new hen
/// </summary>
/// <param name="col">row being placed at</param>
/// <param name="row">col being is placed at</param>
/// <returns>whether it was placed</returns>
public bool BuildHen(int row, int col)
{
return model2.BuildHen(row, col);
}
/// <summary>
/// checks if game is over
/// </summary>
/// <returns>whether game is over</returns>
public bool GameIsOver()
{
return model1.GameIsOver();
}
/// <summary>
/// checks for disasters
/// </summary>
public void Disaster()
{
model1.Disaster();
}
/// <summary>
/// harvests the crop
/// </summary>
/// <param name="row">row crop is at</param>
/// <param name="col">col crop is at</param>
public void HarvestCrop(int row, int col)
{
model1.HarvestCrop(row, col);
}
/// <summary>
/// checks if crop can be harvested
/// </summary>
/// <param name="row">row crop is at</param>
/// <param name="col">col crop is at</param>
/// <returns>whether crop can be harvested</returns>
public bool CheckForHarvest(int row, int col)
{
return model1.CheckForHarvest(row, col);
}
/// <summary>
/// kills off the product
/// </summary>
/// <param name="row">row product is in</param>
/// <param name="col">col product is in</param>
public void ProductDies(int row, int col)
{
model1.ProductDies(row, col);
}
//get the grid of thee products
public Product[,] Grid
{
get
{
return variables.Grid;
}
}
}
}