Python :: Aufgabe #339
3 Lösungen
Figur zurück zum Ausgangspunkt
Anfänger - Python
von JKooP
- 02.04.2021 um 08:45 Uhr
Eine Figur bewegt sich auf einer 2D- Spielfläche (Koordinatensysteme). Dabei startet sie an der Position (0, 0).
Die Figur kann folgende Bewegungen im Einzelschritt durchführen: Right (R), Left (L), Up (U) und Down (D).
Anhand einer bestimmten Sequenz soll geprüft werden, ob sich die Figur am Ende wieder an der Ausgangsposition befindet.
Beispielsequenzen:
s = „UD“: Wahr
s = „LURD“: Wahr
s = „LLDD“: Falsch
s = „LLUUURDDRD“: Wahr
s = „LDRRLRUULR“: Falsch
Schreibe eine Methode/Funktion, die obige Aufgabenstellung realisieren kann.
Viel Spaß
Die Figur kann folgende Bewegungen im Einzelschritt durchführen: Right (R), Left (L), Up (U) und Down (D).
Anhand einer bestimmten Sequenz soll geprüft werden, ob sich die Figur am Ende wieder an der Ausgangsposition befindet.
Beispielsequenzen:
s = „UD“: Wahr
s = „LURD“: Wahr
s = „LLDD“: Falsch
s = „LLUUURDDRD“: Wahr
s = „LDRRLRUULR“: Falsch
Schreibe eine Methode/Funktion, die obige Aufgabenstellung realisieren kann.
Viel Spaß
Lösungen:
"""
#339: Figur zurück zum Ausgangspunkt
Eine Figur bewegt sich auf einer 2D- Spielfläche (Koordinatensysteme). Dabei startet sie an der
Position (0, 0). Anhand einer bestimmten Sequenz soll geprüft werden, ob sich die Figur am Ende
wieder an der Ausgangsposition befindet.
"""
def prf_ausgang(steuerung):
richtung = [["L", 1, 0], ["R", -1, 0], ["U", 0, 1], ["D", 0, -1]]
ausgang = [0, 0]
for alle in steuerung:
for i in range(0, len(richtung)):
if alle == richtung[i][0]:
ausgang[0] += richtung[i][1]
ausgang[1] += richtung[i][2]
if ausgang == [0, 0]:
print(steuerung, "Zurueck zum Ausgang")
else:
print(steuerung, "Nicht im Ausgang")
def main():
prf_ausgang(["U", "D"])
prf_ausgang(["L", "U", "R", "D"])
prf_ausgang(["L", "L", "D", "D"])
prf_ausgang(["L", "L", "U", "U", "U", "R", "D", "D", "R", "D"])
prf_ausgang(["L", "D", "R", "R", "L", "R", "U", "U", "L", "R"])
if __name__ == '__main__':
main()
def prüefe_schritt(s):
pos = [0,0]
for i in s:
if i == 'U':
pos[1] += 1
if i == 'D':
pos[1] -= 1
if i == 'R':
pos[0] += 1
if i == 'L':
pos[0] -= 1
if pos == [0,0]:
return 'wahr'
else:
return 'falsch'
schritte = ['UD', 'LURD', 'LLDD', 'LLUUURDDRD', 'LDRRLRUULR']
for s in schritte:
print( 's = "{}": {}'.format(s, prüefe_schritt(s)) )
# koordinatenberechnung
def finalCoordinates(sequence):
sequence = sequence.lower()
if sequence.count('u') == sequence.count('d') and sequence.count('l') == sequence.count('r'):
print('Wahr')
else:
print('Falsch')
finalCoordinates('UD')
finalCoordinates('LlUddDrlL')
