質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

6351閲覧

4つのタートルを同時に動かしたい

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/05/25 21:58

編集2019/05/25 22:02

#実現したいこと
4つのタートルが四角を描くプログラムを作っているのですが、実行するとまずタートル1が描き始めて、書き終わった直後にタートル2が描き始める、その次にタートル3、タートル4の順番に実行されますが、これを4つのタートルが同時に描き始めるようにしたいですが、できますか?もし可能ならその方法を教えてください。

#該当のソースコード

python

1from turtle import * 2 3t1=Turtle() 4setup(500,500) 5screensize(200,200) 6 7penup() 8setpos(100,100) 9pendown() 10 11for _ in range(4): 12 forward(100) 13 left(90) 14 15t2=Turtle() 16setup(500,500) 17screensize(200,200) 18 19penup() 20setpos(-100,100) 21pendown() 22 23for _ in range(4): 24 forward(100) 25 left(90) 26 27t3=Turtle() 28setup(500,500) 29screensize(200,200) 30 31penup() 32setpos(100,-100) 33pendown() 34 35for _ in range(4): 36 forward(100) 37 left(90) 38 39t4=Turtle() 40setup(500,500) 41screensize(200,200) 42 43penup() 44setpos(-100,-100) 45pendown() 46 47for _ in range(4): 48 forward(100) 49 left(90) 50

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1T2R3M4

2019/05/25 23:57

同時の定義は何でしょうか。
退会済みユーザー

退会済みユーザー

2019/05/26 00:29

実行直後に4つのタートルが一斉に動作を開始するということです。
1T2R3M4

2019/05/26 00:59

どのくらいまでの時間差を許容して同時としますか。 という質問です。
退会済みユーザー

退会済みユーザー

2019/05/26 01:03

目で見て同時と認識できる範囲を許容して同時とします。
1T2R3M4

2019/05/26 04:11 編集

screen関係のセットアップをする。 ↓ 各タートルの位置を指定する。 ↓ 各タートルを進ませる。 … A ↓ 各タートルを回転させる。… B A:Bを辺の数だけループ Aで一度に進む距離を小さくすると同時に描いてるっぽく見えるかも。
退会済みユーザー

退会済みユーザー

2019/05/26 05:17

追記・修正依頼ではなく回答ではないですか?
guest

回答1

0

ベストアンサー

ちょっとトリッキーですが、以下のようなコードでほぼ同時に動かせます。
詳細については以下回答の説明を参照ください。
How to move multiple turtles at the same time in python?
簡単に説明すると、generatorを使い、for文で少しずつ歩みを進めていくような動作になっています。

Python

1from turtle import Turtle, Screen 2 3scr = Screen() 4scr.setup(450,450) 5scr.screensize(200,200) 6 7# 亀を動かす 8def move(t): 9 for _ in range(4): 10 for _ in range(0,100,4): 11 t.forward(4) 12 yield(0) 13 t.left(90) 14 15# 亀の生成と初期位置の設定 16ts = [] 17for x,y in [(-100,100),(100,-100),(100,100),(-100,-100)]: 18 t = Turtle() 19 t.penup() 20 t.setpos(x, y) 21 t.pendown() 22 ts.append(t) 23 24# 亀を動かすgenerator 25gs = [move(t) for t in ts] 26while True: 27 if sum([next(g,1) for g in gs]) >= 4: 28 break

イメージ説明

投稿2019/05/26 05:18

can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/26 05:21

ご回答ありがとうございます。また時間のある時に試してみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問