【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【圧倒的 低コスト】Oracle Cloud 構築・運用保守・監視サービス

【圧倒的 低コスト】Oracle Cloud 構築・運用保守・監視サービス

【WordPress専用】高速 クラウド / サーバー『WebSpeed』

【WordPress専用】高速 クラウド / サーバー『WebSpeed』

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【SNSアプリ開発】LINE カスタムアプリ開発サービス

【SNSアプリ開発】LINE カスタムアプリ開発サービス

【ECアプリ開発】Shopify カスタムアプリ開発サービス

【ECアプリ開発】Shopify カスタムアプリ開発サービス

【音声アプリ開発】Twilio カスタムアプリ開発サービス

【音声アプリ開発】Twilio カスタムアプリ開発サービス

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【取材記事】サーバーサイド・バックエンドエンジニアを募集中

【取材記事】サーバーサイド・バックエンドエンジニアを募集中

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【カメ】Pythonで激突カメレース

こんにちは。
年中410エラー
システムソリューション部のかわいです。

最近湿気と暑さと住民税で元気が出ないので、今回はPythonライブラリのturtleを使って
カメたちを競わせたいと思います。↑のGIF画像みたいにいろいろできちゃうので、ぜひ好きなカメを好きなだけ動かしてみてください。

動作環境とコード全文

それでは早速、

使用OS:Microsoft Windows 10 Pro
Pyhtonバージョン:3.10

from turtle import *
from random import randint
import time

#ライン引き
for step in range(11):
    write(step, align='center')
    speed(80)
    right(90)
    forward(10)
    pendown()
    forward(150)
    penup()
    backward(160)
    left(90)
    forward(20)

time.sleep(1)

#赤カメ
red = Turtle()
red.color('red')
red.shape('turtle')
red.penup()
red.goto(0, -10)

#青カメ
blue = Turtle()
blue.color('blue')
blue.shape('turtle')
blue.penup()
blue.goto(0, -30)

#黄カメ
yellow = Turtle()
yellow.color('orange')
yellow.shape('turtle')
yellow.penup()
yellow.goto(0, -60)

#緑カメ
green = Turtle()
green.color('green')
green.shape('turtle')
green.penup()
green.goto(0, -90)

#黒カメ
black = Turtle()
black.color('black')
black.shape('turtle')
black.penup()
black.goto(0, 60)

#ネズミ亀
gray = Turtle()
gray.color('gray')
gray.shape('turtle')
gray.penup()
gray.goto(0, -120)

#回転カメ
pink = Turtle()
pink.color('pink')
pink.shape('turtle')
pink.penup()
pink.goto(0, -150)

time.sleep(3)

#それぞれのカメを動かすx100
for kame in range(100):
    red.forward(randint(1, 2))
    blue.forward(randint(-1, 3))
    yellow.forward(randint(-3, 4))
    green.forward(randint(-4, 5))
    black.right(90)
    gray.forward(randint(-3, -2))
    pink.forward(randint(-10, 10))

コード解説

各ライブラリをインポートします。
カメをランダムに走らせるためにrandom
timeはカメを配置してからちょっと待機させるための演出用なのでなくてもok

from turtle import *
from random import randint
import time

正直気にする箇所はここだけ。
0を起点に、レース場として10本線が引かれるまでforで繰り返します。

for step in range(11):
    write(step, align='center')
    speed(80)
    right(90)
    forward(10)
    pendown()
    forward(150)
    penup()
    backward(160)
    left(90)
    forward(20)

color()を使ってカメの色を指定します。
fillcolor()でもう少し細かく色指定ができます。
shape()でカメの形、goto()で最初の配置座標を指定します。後続のカメはデバッグしながら少しずつズラしていけばok

#赤カメ
red = Turtle()
red.color('red')
red.shape('turtle')
red.penup()
red.goto(0, -10)

100回動くようにforで回します。
それぞれのカメごとに(数字, 数字)のどちらかの数字がrandom選択されるようになってます。
今回はめんどくさくて記述してませんが、ゴールした時に「ゴール!」みたいな表示を出せばたぶん雰囲気出ますね。

for kame in range(100):
    red.forward(randint(1, 2))
    blue.forward(randint(-1, 3))
    yellow.forward(randint(-3, 4))
    green.forward(randint(-4, 5))
    black.right(90)
    gray.forward(randint(-3, -2))
    pink.forward(randint(-10, 10))

もともとturtlrは描写ライブラリみたいですが、カメshapeを入れたばっかりにこんな使い方もできます。
(詳細な使い方は公式ドキュメント参照したれり)
Python入門にはうってつけだと思うので、ぜひクーラーのきいた涼しい部屋でカメカメしてみてください。
ではでは

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
12
読み込み中...
12 票, 平均: 1.00 / 112
241
facebook twitter はてなブックマーク
【大阪 / 横浜】インフラエンジニア / サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア / サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

かわ けん

システムソリューション部所属
好奇心旺盛ポケ○ン