50 lines
982 B
Dart
50 lines
982 B
Dart
import 'plant.dart';
|
|
|
|
class Beet {
|
|
List<BeetRow> beetrows= [BeetRow()];
|
|
|
|
void Add(BeetRow beetrow){
|
|
beetrows.add(beetrow);
|
|
}
|
|
}
|
|
|
|
class BeetRow {
|
|
List<Plant> plants= [];
|
|
|
|
double get verticalSpace {
|
|
return getMaxVerticalSpace(this);
|
|
}
|
|
|
|
double get horizontalSpace {
|
|
return plants.map((plant) => plant.horizontalSpace)
|
|
.reduce((value, element) => value+=element);
|
|
}
|
|
|
|
void Add(Plant plant){
|
|
plants.add(plant);
|
|
}
|
|
}
|
|
|
|
double getMaxVerticalSpace(BeetRow beetrow) {
|
|
double maxVerticalSpace = 0;
|
|
|
|
for (var plant in beetrow.plants) {
|
|
if (plant.verticalSpace > maxVerticalSpace) {
|
|
maxVerticalSpace = plant.verticalSpace;
|
|
}
|
|
}
|
|
|
|
return maxVerticalSpace;
|
|
}
|
|
|
|
double getMaxHorizontalSpace(Beet beet) {
|
|
double maxHorizontalSpace = 0;
|
|
|
|
for (var beetrow in beet.beetrows) {
|
|
if (beetrow.horizontalSpace > maxHorizontalSpace) {
|
|
maxHorizontalSpace = beetrow.horizontalSpace;
|
|
}
|
|
}
|
|
|
|
return maxHorizontalSpace;
|
|
} |