今日の資料
https://drive.google.com/file/d/13ynNgUTHNo8wUxXqltdtYlH8MSD7uF_p/view?usp=sharing
タートルのマニュアル
https://docs.python.org/ja/3/library/turtle.html
マウスやキーボードで操作する
from turtle import *
reset()
def turn(x, y):
left(90)
def red():
color('red')
def black():
color('black')
onscreenclick(turn) #左クリックで90度回転
onkey(red, 'r') #rを押すと赤になる
onkey(black, 'b') #bを押すと黒になる
listen()
while True:
forward(1)
① g を押したら線が緑になるようにしましょう
② 2 を押したら線が太くなるように、1 を押したら線が細くなるようにしましょう
② 2 を押したら線が太くなるように、1 を押したら線が細くなるようにしましょう
お絵描きをする
from turtle import *
def jump(x, y):
penup()
speed(0)
goto(x, y)
pendown()
def red():
color('red')
def black():
color('black')
reset()
listen()
shape('circle')
pensize(5)
onscreenclick(jump)
ondrag(goto)
onkey(red, 'r')
onkey(black, 'b')
mainloop()
☆ cを押したら画面をリセットするようにしましょう
複数の亀が動く
import turtle
import random
screen = turtle.Screen()
screen.clearscreen()
turtle.speed(0)
turtle.listen()
def newturtle(): #新しい亀を作る
t = turtle.Turtle()
t.left(random.randrange(0,360))
t.shape('turtle')
turtle.shape('turtle')
turtle.onkey(newturtle, 't') #tが押されたら新しい亀を作る
while True: #亀はそれぞれランダムな動きをする
for t in screen.turtles():
t.forward(1)
t.left(random.randrange(-10,10))
mainloop()
アニメーション
from turtle import *
import random
reset()
shape('circle') #タートルの形を丸にする
shapesize(3,3,1) #タートルを大きい丸にする
speed(0) #一瞬で角度を変えるようにする
takasa = window_height() #画面の高さ
haba = window_width() #画面の幅
penup() #線は描かない
left(random.randrange(0, 360)) #ランダムな角度でスタート
while True: #永遠に繰り返す
forward(3)
if abs(xcor()) >= haba / 2: #左右の壁にぶつかったとき
left((90 - heading()) * 2)
forward(10)
elif abs(ycor()) >= takasa / 2: #上下にぶつかったとき
left(heading() * -2)
forward(10)
木を描く(再帰)
from turtle import *
reset()
def tree(length):
if length > 5:
forward(length)
right(20)
tree(length - 15)
left(40)
tree(length - 15)
right(20)
backward(length)
pensize(3)
color("green")
left(90)
backward(150)
tree(100)
コメント
最新を表示する
NG表示方式
NGID一覧