このプログラムでは、Python を使用しています。
ロボットをランダムな位置に動かし、360 度回転させることになっています。3 つの光センサーすべてから 15 の読み取り値を 3 つの異なるリストに割り当てる必要があります。
次に、各センサーからの光の値の平均を計算し、各センサーの最大値と最小値を決定する必要があります。
次に、3 つのセンサーすべてからの光の値の平均を計算して表示し、周囲の光の平均値と、明るすぎるか暗すぎるかを通知する必要があります。
これをすべて実行したと思いますが、プログラムが機能しません。たとえば、私のロボットはランダムな位置に移動してから 360 度回転しますが、その後プログラムが停止するだけで、その理由がわかりません。
次のようなエラーが表示されます。
max() arg is an empty sequence
誰かが私が間違っていることを理解するのを手伝ってくれたら、それは素晴らしいことです! どうもありがとう!!!
これは私のプログラムです:
from myro import *
init("simulator")
def pressC():
entry = " "
while(entry != "c"):
entry = raw_input("Press c to continue: ")
def movement():
rightSensor = []
centerSensor = []
leftSensor = []
return rightSensor
return centerSensor
return leftSensor
for index in range(1,15):
rightSensor.append(getLight("right"))
centerSensor.append(getLight("center"))
leftSensor.append(getLight("left"))
def average():
rightSensor = []
centerSensor = []
leftSensor = []
sumRight = 0
sumCenter = 0
sumLeft = 0
for index in range(len(rightSensor)):
sumRight = sumRight + rightSensor[index]
averageRight = sumRight / 15
for index in range(len(centerSensor)):
sumCenter = sumCenter + centerSensor[index]
averageCenter = sumCenter / 15
while averageCenter > 100:
speak("Its too dark. I need light")
else:
speak("Its so bright")
for index in range(len(leftSensor)):
sumLeft = sumLeft + leftSensor[index]
averageLeft = sumLeft / 15
max(rightSensor)
min(rightSensor)
max(centerSensor)
min(centerSensor)
max(leftSensor)
min(leftSensor)
print "Left Avg: " + str(averageLeft), "Max: " + str(leftSensor), "Min: " + str(leftSensor)
print "Center Avg: " + str(averageCenter), "Max: " + str(centerSensor), "Min: " + str(centerSensor)
print "Right Avg: " + str(averageRight), "Max: " + str(rightSensor), "Min: " + str(rightSensor)
def main():
pressC()
forward(1,1)
rotate(1)
wait(7)
stop()
movement()
average()
main()