In der ASCII-Kunstwelt gibt es Wasser, Hash-Wände und Briefmechanismen.
Sie befinden sich in einem Raum, der aus Hash-Wänden ( #
Schildern) besteht:
#######
# #
# #
# #
# ### #
# #
#######
Sie installieren eine S-Wasserquelle ( S
Schild) und einen E-Wassertank ( E
Schild), der Wasser aus jeder Richtung aufnehmen kann, aber Sie haben nur eine S-Wasserquelle und einen E-Tank.
#######
# S #
# #
# #
# ### #
# E #
#######
Sie müssen also mit Bedacht auswählen, wo die Quelle platziert werden soll. Hier können Sie Ihre Code-Golf- Fähigkeiten unter Beweis stellen.
Die Aufgabe
Sie erhalten eine Eingabe, die aus einer Zeichenfolge besteht, die einen Raum mit der Quelle und dem Tank darstellt:
#######
# S #
# #
# #
# ### #
# E #
#######
Sie müssen herausfinden, ob das Wasser letztendlich den Tank erreicht. Das Wasser fließt wenn möglich nach unten, wenn möglich nach links und rechts. Das Wasser sammelt sich nicht an, weil es nicht steigt.
Für die obige Eingabe lautet das Ergebnis also:
#######
# * #
# * #
#*****#
#*###*#
#**O**#
#######
Das Wasser gelangt glücklich in den Tank, daher müssen Sie einen Wahrheitswert ausgeben.
Aber wenn das Wasser den Tank nicht erreicht:
#######
#S #
# #
# E #
# ### #
# #
#######
#######
#* #
#* #
#* X #
#*### #
#*****#
#######
Dann müssen Sie einen falschen Wert ausgeben.
Schreiben Sie ein Programm, um zu entscheiden, ob das Wasser letztendlich den Tank erreicht. Ihr Code sollte so kurz wie möglich sein.
Annahmen
Angenommen, die Eingabe ist immer gültig (der gesamte Raum ist ein umschlossener rechteckiger Bereich mit S und E).
Angenommen, es wird nur ein Raum als Eingabe bereitgestellt.
Testfälle
Ihr Programm sollte für die folgenden Testfälle einen Wahrheitswert zurückgeben:
#######
# S #
# #
# #
# ### #
# E #
#######
#######
# S #
# #
# E #
# #
# #
#######
#######
# #
# #
# SE #
# ### #
# #
#######
###############################################
# S #
# #
# #
# #
# ############### #
# #
# ################## ################## #
# #
# #
# ##### #
# E #
###############################################
#######
# S #
# #
# #
# ### #
# # #
### ###
## E ##
# #
#######
Aber ein falscher Wert für folgende Testfälle:
#######
#S #
# #
# E #
# ### #
# #
#######
#######
# #
# SE #
# #
# #
# #
#######
#######
# #
# E #
# #
# S #
# #
#######
####################################
# #
# #
# #
#S # E#
####################################
Die zweite bis letzte Zimmer in der wahren Kategorie und das letzte Zimmer in der False Kategorie wurden schamlos gestohlen aus geliehenen Jump and Run: Koth von Manu (der die Sandbox - Beitrag gelöscht).
Der letzte Raum in der Kategorie True stammt von Martin Buttners Antwort in Retina .
from
/ to
/ wirklich Bits (das macht es einfacher für die Teilnehmer alle Tests zu verarbeiten Fälle auf einmal).