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.

rooster

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 Robot1 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 Cell2 om de coördinaten van een cel voor te stellen.

Gebruik eventueel de testklasse SimpleTest3 om je oplossing lokaal te testen. Je kan hierin eenvoudig extra testgevallen toevoegen.