回答編集履歴
1
追記
answer
CHANGED
@@ -74,4 +74,50 @@
|
|
74
74
|
```
|
75
75
|
みたいな形にしたほうが安全かも知れません。あるいは...いや、改善案はキリがないので止めましょう。まずはちゃんと動かせてから。
|
76
76
|
|
77
|
-
あとは自力でできるかしら。
|
77
|
+
あとは自力でできるかしら。
|
78
|
+
|
79
|
+
---
|
80
|
+
> 改良点などあればお願い致します。
|
81
|
+
|
82
|
+
私はPythonは決して得意ではないのであまりどうこうは言えませんが、特に問題はないんじゃないでしょうか。
|
83
|
+
多少手を入れるとしたらこんなところでしょうか。
|
84
|
+
```
|
85
|
+
import utime
|
86
|
+
import random
|
87
|
+
|
88
|
+
led1 = machine.Pin(0,machine.Pin.OUT)
|
89
|
+
led2 = machine.Pin(1,machine.Pin.OUT)
|
90
|
+
led3 = machine.Pin(2,machine.Pin.OUT)
|
91
|
+
|
92
|
+
switch1 = machine.Pin(3,machine.Pin.IN,machine.Pin.PULL_UP)
|
93
|
+
switch2 = machine.Pin(4,machine.Pin.IN,machine.Pin.PULL_UP)
|
94
|
+
switch3 = machine.Pin(5,machine.Pin.IN,machine.Pin.PULL_UP)
|
95
|
+
|
96
|
+
pairList = [(led1,switch1),(led2,switch2),(led3,switch3)] #タプルでペアにする
|
97
|
+
|
98
|
+
score = 0
|
99
|
+
|
100
|
+
while True:
|
101
|
+
i = random.randint(0,2)
|
102
|
+
x = pairList[i]
|
103
|
+
|
104
|
+
x[0].value(1) #x[0]はledn
|
105
|
+
flag = False
|
106
|
+
for n in range(100):
|
107
|
+
utime.sleep(0.01)
|
108
|
+
|
109
|
+
if (x[1].value() == 0 ): #x[1]はswitchn。選択されているスイッチだけ監視する
|
110
|
+
flag = True
|
111
|
+
|
112
|
+
x[0].value(0)
|
113
|
+
utime.sleep(1)
|
114
|
+
if ( flag ): # flagが論理型の値なので==Trueはあっても害は無いが意味もない
|
115
|
+
score += 1
|
116
|
+
print(score)
|
117
|
+
|
118
|
+
if (score > 2): #==3でもいいけれど、扱いを間違えて値が大きくなっても終われるように
|
119
|
+
break
|
120
|
+
|
121
|
+
while True: #明示的にプログラム内に留める
|
122
|
+
pass
|
123
|
+
```
|