Python :: Aufgabe #339

3 Lösungen Lösungen öffentlich

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ß

Lösungen:

vote_ok
von eisheiliger (3750 Punkte) - 05.04.2021 um 17:25 Uhr
Quellcode ausblenden 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()


vote_ok
von AlexGroeg (2010 Punkte) - 06.04.2021 um 12:54 Uhr
Quellcode ausblenden 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)) ) 

vote_ok
von vMaex (540 Punkte) - 19.04.2021 um 15:52 Uhr
Quellcode ausblenden 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')

1991478

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.