背景
昨日のスクリプトは同じブロックの塊が繰り返しているような部分がありましたので、繰り返し処理をしてみました。
Scratch
ループのブロックはコントロールのところにありました。
回数指定のループを使い昨日のScratchを書き直しました。
昨日のScratchを右に並べてましたが、下のほうにある2回繰り返している部分をループにしています。
spheroV2
ループ変数をiとしてfor文にしました。
import time
from spherov2 import scanner
from spherov2.sphero_edu import EventType, SpheroEduAPI
from spherov2.types import Color
print("Testing Starting...")
print("Connecting to Bolt...")
toy = scanner.find_BOLT()
if toy is not None:
print("Connected.")
with SpheroEduAPI(toy) as droid:
print("Testing Start...")
droid.reset_aim()
droid.set_stabilization(False)
droid.calibrate_compass()
time.sleep(1)
a = 0
droid.set_compass_direction(a)
time.sleep(1)
print(a)
for i in range(2):
a += 90
droid.set_compass_direction(a)
time.sleep(1)
print(a)
# for a in range(3):
# droid.set_compass_direction(a * 90)
# time.sleep(1)
# print(a)
print("Testing End...")
実行結果はこちらのようになりました。
git\spherov2.py\spherov2\test>python BoltTest_compass3.py
Testing Starting...
Connecting to Bolt...
Connected.
Testing Start...
0
90
180
Testing End...
a=0のときの部分もfor文にまとめる場合はコメントアウト部分のように直すこともできます。
まとめ
Scratchの繰り返し作業を作成してみました。
条件付きループで書き直してみると暗黙として使っている部分に気づくことができて面白そうです。