Een aantal munten liggen verspreid over de cellen van een \(n\times m\)-rooster, waarbij elke cel hoogstens 1 munt bevat, zoals getoond in bijgaande figuur.
Een robot start in de cel links boven van het rooster en verplaatst zich naar de cel rechts onder van het rooster. In elke stap kan de robot zich ofwel naar de cel rechts van zijn huidige locatie verplaatsen, ofwel naar de cel onder zijn huidige locatie. Wanneer de robot een cel met een munt bezoekt, dan neemt hij die munt mee. Het is de bedoeling dat de robot zoveel mogelijk munten verzamelt.
Ontwerp en implementeer een algoritme dat zoveel mogelijk munten verzamelt.
Implementeer de interface Robot
1 in een klasse genaamd DynamicRobot
. Schrijf een methode List<Cell> collectCoins(boolean[][] grid)
die een lijst van cellen teruggeeft waar de robot een munt meeneemt.
Gebruik de gegeven klasse Cell
2 om de coördinaten van een cel voor te stellen.
Gebruik eventueel de testklasse SimpleTest
3 om je oplossing lokaal te testen. Je kan hierin eenvoudig extra testgevallen toevoegen.