Quinquagintus Tricartius had een groot probleem. Bij de heraanleg van zijn atrium bestelde hij per ongeluk in plaats van vierkante tegels alleen maar driekwartstegels. Deze zien er uit als een L en beslaan ¾ van een \(2 \times 2\) vierkant. Hoe kon hij nu alsnog zijn atrium betegelen zonder nieuwe tegels te moeten kopen? Gelukkig kwam zijn goede vriend, Julius Caesar, op bezoek. Deze aanschouwde de opengebroken vloer, het afvoerputje en de tegels, en zag onmiddelijk een oplossing. “Triviaal,” sprak Julius, “Divide et impera!” En inderdaad, met een verdeel-en-heers algoritme betegelde Quinquagintus zijn vloer perfect.

Het is namelijk mogelijk om ieder vierkant rooster met 1 gat (het afvoerputje), waarbij de dimensie een macht van twee is, op te vullen met driekwartstegels zodat het vakje van het afvoerputje het enige vakje is waar geen tegel op ligt. Zie hieronder een voorbeeld waar het afvoerputje op positie \((2, 2)\) ligt.

Voorbeeld driekwartsbetegeling

Implementeer de interface Betegeling1 in een klasse genaamd DriekwartsBetegeling. Hiertoe schrijf je volgende methoden:

Als cadeautje krijg je hieronder de skeletcode waarin zich reeds de headers van bovenstaande klasse en methoden bevinden, samen met een handige methode om een betegeling af te drukken in prachtige ASCII-art.

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