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:
Python-Code
""" #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()
Python-Code
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)) )
Python-Code
# 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')