Bei dieser Herausforderung habe ich ein Avocadofeld, das ich so schnell und vollständig wie möglich entsaften möchte. Können Sie ein Programm oder eine Funktion schreiben, die mir dabei helfen, die Avocados perfekt zu entsaften?
Als Eingabe erhalten Sie die Avocados als mx- mQuadrat-Gitter, wobei meine ganze Zahl zwischen 3 und 6 liegt. Jedes Quadrat enthält genau eine Avocado. Avocados haben mehrere Stadien der Saftigkeit:
Stufe 1: Die Avocado wurde überhaupt nicht entsaftet.
Stufe 2: Die Avocado wurde teilweise entsaftet.
Stufe 3: Die Avocado wurde vollständig entsaftet.
Stufe 4: Die Avocado ist aufgrund von Überentsaftung explodiert.
Wenn Sie ein Entsaftungswerkzeug verwenden, gelangen die Avocados im Wirkungsbereich dieses Entsaftungswerkzeugs zur nächsten Stufe. Explodierende Avocados haben eine Menge Kraft und zerstören das gesamte Avocado-Feld. Stellen Sie also sicher, dass keine der Avocados explodiert!
Hier ist ein Beispiel für ein Gitter von Avocados. In diesen Beispielen habe ich die Koordinate 0,0für die linke untere Ecke und die Koordinate 2,2für die rechte obere Ecke verwendet, obwohl Sie das Koordinatensystem an Ihre Sprache anpassen können.
112
221
231
Das Ziel ist es, alle Avocados perfekt zu entsaften (dh Stufe 3). Um dies zu erreichen, haben Sie drei verschiedene Entsaftungswerkzeuge in Ihrem Besitz. Jedes Entsaftungswerkzeug hat einen anderen Wirkungsbereich, aber alle erhöhen die Saftigkeit der betroffenen Avocados um 1.
Hier finden Sie alle Werkzeuge, die Sie zur Verfügung haben. Sie verwenden die Entsafter, indem Sie den ersten Buchstaben des Werkzeugs und dann die Koordinaten angeben, die entsaftet werden sollen. Wenn Sie beispielsweise den Slicer auf Quadrat verwenden 5,2möchten, müssen Sie die Ausgabe ausführen S 5,2.
Slicer : Saftet die Zielkoordinate und die Avocado auf beiden Seiten.
112 112 112
221 --> XXX --> 332
231 231 231
Reibe : Saftet die Zielkoordinate und die Avocado oben und unten.
112 1X2 122
221 --> 2X1 --> 231 --> kaboom!
231 2X1 241
Raketenwerfer : Verseucht die Zielkoordinate und alle angrenzenden Avocados.
112 1X2 122
221 --> XXX --> 332
221 2X1 231
Beispieleingänge und -ausgänge
323
212
323
G 1,1
S 1,1
3312
3121
1213
2133
R 0,0
R 1,1
R 2,2
R 3,3
22322
22222
22222
33233
33333
G 0,3
G 1,3
G 2,2
G 3,3
G 4,3
222332
333221
222332
333222
222333
333222
S 1,5
S 1,3
S 1,1
S 4,5
S 4,3
S 4,1
G 5,4