我正在尋找一種方式,以便每次在某個地方龜會產生一個點時,計數器變量將會增加一個,但只有該變量在該確切位置響應一個點,所以有效地記錄了一隻烏龜在特定位置製作點的次數。例如:確定一隻海龜在某個地點點了多少次
x=0
if (turtle.dot()):
x+1
但很明顯在這種情況下,計數將增加任何位置的點。提前致謝! C
我正在尋找一種方式,以便每次在某個地方龜會產生一個點時,計數器變量將會增加一個,但只有該變量在該確切位置響應一個點,所以有效地記錄了一隻烏龜在特定位置製作點的次數。例如:確定一隻海龜在某個地點點了多少次
x=0
if (turtle.dot()):
x+1
但很明顯在這種情況下,計數將增加任何位置的點。提前致謝! C
你可以使用一個collections.defaultdict
保持計數點,並得出自己的Turtle
子類來幫助跟蹤,其中dot{}
方法被調用。當調用dot()
時,defaultdict
的鍵將是烏龜的x和y座標。
這裏我的意思的例子:
from collections import defaultdict
from turtle import *
class MyTurtle(Turtle):
def __init__(self, *args, **kwds):
super(MyTurtle, self).__init__(*args, **kwds) # initialize base
self.dots = defaultdict(int)
def dot(self, *args, **kwds):
super(MyTurtle, self).dot(*args, **kwds)
self.dots[self.position()] += 1
def print_count(self):
""" print number of dots drawn, if any, at current position """
print self.dots.get(self.position(), 0) # avoid creating counts of zero
def main(turtle):
turtle.forward(100)
turtle.dot("blue")
turtle.left(90)
turtle.forward(50)
turtle.dot("green")
# go back to the start point
turtle.right(180) # turn completely around
turtle.forward(50)
turtle.dot("red") # put second one in same spot
turtle.right(90)
turtle.forward(100)
if __name__ == '__main__':
turtle1 = MyTurtle()
main(turtle1)
mainloop()
for posn, count in turtle1.dots.iteritems():
print('({x:5.2f}, {y:5.2f}): '
'{cnt:n}'.format(x=posn[0], y=posn[1], cnt=count))
輸出:
(100.00, 50.00): 1
(100.00, 0.00): 2
沒有,只是在尋找一種方式來監測的次數一隻烏龜已經取得了一定的點一個點我正在寫一個程序。 – Randoms
你知道現場的位置嗎? – martineau
沒有它應該是一般的任何地方,任何或所有需要的地方。 – Randoms