turtle random walk

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nolschen
User
Beiträge: 2
Registriert: Montag 5. Juli 2010, 15:29

schönen guten tag

ich soll ein programm schreiben(randomwalk)

ich werfe eine münze und bei kopf gehe ich rechts und oben

und bei zahl links und unten... diesen gang soll man mit der turtlegrafik zeigen

leider zeigt mir turtle jeden gang einzeln und auch immer vom start aus...

code:

import random

n=input("wie oft moechten sie die muenze werfen?")

mw = 0


while mw < n:
mw = mw+1

rand = random.randrange(2)

if rand == 1:
from turtle import reset,forward,right,done
reset()
forward(100)
right(90)
done()

else:
from turtle import reset,left,done,backward
reset()
backward(100)
left(90)
done()

hoffe ihr könnt mir eine hilfestellung geben
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Hallo und Willkommen im Forum,

zunächst mal ein paar allgemeine Dinge:
- Das Forum hat Code-Tags (Python-Button) für Syntax-Highlighting.
- Importe gehören alle den Anfang der Datei.
- Benutze ''raw_input'' anstelle von ''input''.
- Verwende eine for-Schleife, wenn du die Anzahl der Iterationen kennst.

Zu deinem Problem: Schau dir mal die Dokumentation zu reset() an. In der Python-Konsole folgendes eingeben:

Code: Alles auswählen

>>> import turtle
>>> help(turtle.reset)
Grüße
Gerrit
Nolschen
User
Beiträge: 2
Registriert: Montag 5. Juli 2010, 15:29

danke erstma für deine hilfe ;)

kein wunder,dass das immer von vorne anfängt,wenn reset löscht :D

aber welche position muss ich denn angeben,damit der immer weiter läuft?
ist durch random ja immer verschieden
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Mein Tipp wäre sich die einzelnen Funktionen von Turtle in der Online-Dokumentation anzuschauen und sie gleichzeitig in der interaktiven Python-Konsole auszuprobieren. Wenn du dann alles verstanden hast, musst du die richtigen Befehlen nur noch in deinen Quelltext packen.
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

such mal im Forum nach random-walk.
Da findest du auch eine turtle-Darstellung.



so hier ist das Thema: http://www.python-forum.de/viewtopic.ph ... lk#p138898

Damit soll nicht deine Arbeit getan sein, aber es sollte dein Fragen klären.
BlackJack

Ich habe mich mal an dem Quelltext im ersten Beitrag orientiert und das hier gebastelt:

Code: Alles auswählen

from random import choice
from xturtle import backward, forward, left, mainloop as done, right


def main():
    step_count = int(raw_input('Wie oft moechten sie die Muenze werfen? '))
    step_length = 100
    
    def make_move_func(turn_func, advance_func):
        def move_func():
            turn_func(90)
            advance_func(step_length)
        return move_func
    
    move_functions = [make_move_func(f, g)
                      for f, g in [(right, forward), (left, backward)]]
    
    for dummy in xrange(step_count):
        choice(move_functions)()
    done()


if __name__ == '__main__':
    main()
Antworten