Ich arbeite an einem Zufallsgenerator für eine Schildkröte. Der Benutzer gibt eine Zeile, eine Spalte und einen Wahrscheinlichkeitswert zwischen 0 und 1 ein. Innerhalb meiner Hauptfunktion dreht sich die Schildkröte, basierend auf dem Wert der generierten Zufallszahl, entweder einen Schritt nach vorne in die Richtung, in die sie zeigt.Wert in einer Funktion zur wiederholten Verwendung in derselben Funktion zurückgeben?
Mein Problem ist, ich muss diese Funktion immer wieder wiederholen (über eine Schleife), aber jedes Mal die Werte aus dem vorherigen Lauf der Funktion in die nächste einfügen. Jeder Versuch, den ich gemacht habe (durch Zurückgeben eines Tupels mit den Werten und Eingeben dieser Werte in jeden Lauf der Funktion, mit Ausnahme des ersten) hat dazu geführt, dass der gleiche Wert der Funktion immer wieder zurückgegeben wird.
#Random Walk Generator#
import random
import sys
def move_turtle(row, col, direct, turn_prob):
dir_list = ['right', 'down', 'left', 'up']
random.random()
if random.random()<=turn_prob:
p= dir_list.index(direct)
if p==0:
p2=1
elif p==1:
p2=2
elif p==2:
p2= 3
elif p==3:
p2 =0
d2= dir_list[p2]
direct= d2
else:
if direct == 'right':
col= col+1
if direct== 'down':
row=row+1
if direct =='left':
col= col-1
if direct== 'up':
row= row-1
rettup = (row,col,direct)
return rettup
N= input('Enter the integer number of rows => ')
print N
M= input('Enter the integer number of cols => ')
print M
p= input("Enter the turtle's turn probability (< 1.0) => ")
print p
seed_value = 10*M + N
random.seed(seed_value)
dir_list = ['right', 'down', 'left', 'up']
rand_index = random.randint(0,3)
d = dir_list[rand_index]
print 'Initial direction:',d
tup= move_turtle(M,N,d,p)
for c in range(249):
if c==0:
move_turtle(M,N,d,p)
else:
move_turtle(tup[0],tup[1],tup[2],p)
'''
if R>= M or R<= -1 or C>=N or C<=-1:
print 'After', c, 'time steps the turtle fell off the', D, 'in column',C
'''
if c==20 or c==40 or c==60 or c==80 or c==100 or c==120 or c==140 or c==180 or c==200 or c==220 or c==240 or c==250:
print 'Time step',c,': position (',N/2,',',M/2,')direction',d
Sie sind nie die Richtung zu ändern. – Signal