VBA別館・Python別館
Python Turtleグラフィックス - Tak
2018/12/28 (Fri) 09:50:19
面白いGUIを見つけました。 Python+tkinterの上で動作します。
x-y 平面の (0, 0) から動き出すロボット亀を想像してみて下さい。 turtle.forward(15) という命令を出すと、その亀が (スクリーン上で!) 15 ピクセル分顔を向けている方向に動き、動きに沿って線を引きます。 turtle.left(25) という命令を出すと、今度はその場で25度反時計回りに回ります。
これらの命令と他の同様な命令を組み合わせることで、複雑な形や絵が簡単に描けます。
これから小学校でも、AI志向のプログラムの教育が始まろううとしております。 面白そうなのでやってみます。
Turtleとは亀さんの意味ですので、ゆっくり進みましょう。
少し調べたところでは、ここまでやってきたPythonとtkinterの知識で対応できそうです。
Why don't you try with me!
① 亀が丸く動きます
-----------------
import turtle
t=turtle.Turtle()
#turtleをtと省略して効率化を図ります。
t.circle(100) # 半径100の円を描け
-------------------
tkinterでやるよりメッチャ早いです。 これなら子供でも痴呆人でも出来そう。
Re: Python Turtleグラフィックス - Tak
2018/12/28 (Fri) 09:55:31
② 亀輝く
余り簡単で馬鹿にされると困るので、ちょっと難しい図形を描きます。
----------------------------
#亀輝く1.py 12/28/2018
from turtle import *
color('red', 'yellow')
begin_fill()
while True:
forward(200)
left(170)
if abs(pos()) < 1:
break
end_fill()
done()
Re: Python Turtleグラフィックス - Tak
2018/12/28 (Fri) 22:26:55
③ 亀に命令を出す
どのように亀を動かすか、基本的なコマンド(命令)を見てみましょう。
------------------
import turtle
t=turtle.Turtle()
input() #命令用スイッチです。 キーボードのエンターを押せば指令が出ます。
t.forward(100) ㋑100歩進め
t.left(45) ㋺ 90度左向け
input()
t.color('red') ㋩ 赤ペンを持て
input()
t.forward(100) ㊁ # 100歩進め
input()
t.circle(100) ㋭ 半径100の円を描け
------------------------
上のcodeをrunしたのが図です。
このほかTurtleの動きなら、移動および描画として
forward() | fd()
backward() | bk() | back()
right() | rt()
left() | lt()
goto() | setpos() | setposition()
setx()
sety()
setheading() | seth()
home()
circle()
dot()
stamp()
clearstamp()
clearstamps()
undo()
speed()
などがあります。
Python、tkinterのコマンドと比べてなんと簡単、明瞭なことでしょう。
こんなコマンドを並べるだけで、インベーダーみたいなゲームなら割と簡単にできそうですね。
でも僕のやりたいのは、AIプログラミングなのでTurtleグラフィックスとは一寸違うようです。