「Eclipse 上でPythonのプログラムを書くためのプラグインPyDev」から続く
辻真吾『Pythonスタートブック』(技術評論社, 2010)
を読みました。
この本は、最初に学ぶプログラミング言語がPythonだという人のために書かれた入門書ですが、全10章の最終章つまり第10章はかなりハードでした。とりあえず、初心者は飛ばしていいと思うのですが、私にとっては昔遊んだLOGOを思い出させる懐かしい内容だったので、途中まで自分なりに作ってみました。本文よりはずいぶん手を抜いたつもりですが、それでもまだこの章だけは初心者お断りかもしれません。
参照:24.4 turtle (Python Documentation)
#coding:utf-8
import turtle
import random
class Kame(turtle.Turtle):
def __init__(self):
super(Kame, self).__init__()
self.xmax = 200
self.ymax = 200
self.getscreen().setup(2 * self.xmax + 2, 2 * self.ymax + 2, 0, 0) #ウィンドウサイズ
self.getscreen().screensize(2 * self.xmax, 2 * self.ymax, 'gray') #キャンバスサイズ
self.pencolor('white')
self.width(10)
self.left(random.randint(1, 360))
def run(self):
while True:
self.forward(10)
if self.xcor() > self.xmax: #右の壁にぶつかった
self.rotate(90)
if self.ycor() > self.ymax: #上の壁にぶつかった
self.rotate(180)
if self.xcor() < -self.xmax: #左の壁にぶつかった
self.rotate(270)
if self.ycor() < -self.ymax: #下の壁にぶつかった
self.rotate(360)
def rotate(self, t): #tはheading()の基準を変換するためのパラメータ
self.undo()
self.left(t - self.heading() + random.randint(0, 180))
kame = Kame()
kame.run()
Related posts: