回答編集履歴

6

 

2022/11/20 10:11

投稿

退会済みユーザー
test CHANGED
@@ -17,7 +17,7 @@
17
17
  if self.speed == ds:
18
18
  self.color = rgb(0,0,0) #通常速度の時は黒
19
19
  ```
20
- このコードですと、x が 40以上場合、必ず self.speed -= 0.05 となるため、その後
20
+ このコードですと、x が 40以上で速度が最小値より大きい場合、必ず self.speed -= 0.05 が処理されるため、その後
21
21
  if self.y >=25
22
22
  かどうかを判定して speed を加速しても、次の stepでまた-0.05されてしまいます。
23
23
 

5

 

2022/11/20 09:58

投稿

退会済みユーザー
test CHANGED
@@ -28,9 +28,9 @@
28
28
  if self.y < 25: // 上り坂である。
29
29
  self.direction = 45
30
30
  if self.speed > mn:
31
- self.speed -= 0.05 #teratail_tih5dwr7irfje59
31
+ self.speed -= 0.05 #teratail_tih5dwr7irfje59
32
32
  self.color = rgb(255, 100, 200) # 減速時は赤
33
- else: // 上り坂を過ぎて平坦なになった。
33
+ else: // 上り坂を過ぎて平坦なになった。
34
34
  self.direction = 0
35
35
  self.y = 25
36
36
  if self.speed <= ds:

4

 

2022/11/20 09:57

投稿

退会済みユーザー
test CHANGED
@@ -17,7 +17,7 @@
17
17
  if self.speed == ds:
18
18
  self.color = rgb(0,0,0) #通常速度の時は黒
19
19
  ```
20
- このコードでスト、x が 40以上の場合、必ず self.speed -= 0.05 となるため、その後
20
+ このコードですと、x が 40以上の場合、必ず self.speed -= 0.05 となるため、その後
21
21
  if self.y >=25
22
22
  かどうかを判定して speed を加速しても、次の stepでまた-0.05されてしまいます。
23
23
 
@@ -28,7 +28,7 @@
28
28
  if self.y < 25: // 上り坂である。
29
29
  self.direction = 45
30
30
  if self.speed > mn:
31
- self.speed -= 0.05
31
+ self.speed -= 0.05 #teratail_tih5dwr7irfje59
32
32
  self.color = rgb(255, 100, 200) # 減速時は赤
33
33
  else: // 上り坂を過ぎて平坦な右になった。
34
34
  self.direction = 0

3

 

2022/11/20 09:54

投稿

退会済みユーザー
test CHANGED
@@ -30,7 +30,7 @@
30
30
  if self.speed > mn:
31
31
  self.speed -= 0.05
32
32
  self.color = rgb(255, 100, 200) # 減速時は赤
33
- else: // y >= 25、すなわち上り坂を過ぎた。
33
+ else: // 上り坂を過ぎて平坦な右になった。
34
34
  self.direction = 0
35
35
  self.y = 25
36
36
  if self.speed <= ds:

2

 

2022/11/20 09:53

投稿

退会済みユーザー
test CHANGED
@@ -1,17 +1,28 @@
1
1
  > 0.05が1度だけ加速するだけで通常速度まで加速しない
2
2
  原因は、上り坂での条件判定です。
3
+
4
+ **修正前(質問記載の後半と同じコードの引用)**
3
5
  ```python
4
6
  if self.x >= 40:
5
7
  self.direction = 45
6
8
  if self.speed == mx or self.speed >mn:
7
9
  self.speed -= 0.05
8
10
  self.color = rgb(255, 100, 200) # 減速時は赤
11
+ if self.y >=25:
12
+ self.direction = 0
13
+ self.y = 25
14
+ if self.speed <= ds:
15
+ self.speed += 0.05
16
+ self.color = rgb(100, 100, 200) #加速時は青
17
+ if self.speed == ds:
18
+ self.color = rgb(0,0,0) #通常速度の時は黒
9
19
  ```
10
20
  このコードでスト、x が 40以上の場合、必ず self.speed -= 0.05 となるため、その後
11
21
  if self.y >=25
12
22
  かどうかを判定して speed を加速しても、次の stepでまた-0.05されてしまいます。
13
23
 
14
- ここは、
24
+ ここは、下記のようにでもするべきでしょう。
25
+ **修正後(後半のみ)**
15
26
  ```python
16
27
  if self.x >= 40:
17
28
  if self.y < 25: // 上り坂である。
@@ -29,4 +40,4 @@
29
40
  self.color = rgb(0,0,0) #通常速度の時は黒
30
41
  ```
31
42
 
32
- とでもするべきでしょう。
43
+

1

 

2022/11/20 09:52

投稿

退会済みユーザー
test CHANGED
@@ -7,9 +7,9 @@
7
7
  self.speed -= 0.05
8
8
  self.color = rgb(255, 100, 200) # 減速時は赤
9
9
  ```
10
- xが40以上の場合、必ず self.speed -= 0.05 となるため、その後
10
+ このコードでスト、x 40以上の場合、必ず self.speed -= 0.05 となるため、その後
11
11
  if self.y >=25
12
- を判定して speed を加速しても、次の stepでまた-0.05されてしまいます。
12
+ かどうかを判定して speed を加速しても、次の stepでまた-0.05されてしまいます。
13
13
 
14
14
  ここは、
15
15
  ```python