回答編集履歴
1
追記
answer
CHANGED
@@ -32,4 +32,23 @@
|
|
32
32
|
90
|
33
33
|
...
|
34
34
|
```
|
35
|
-
のようにするとよいかもしれません。(16通りをすべて列挙する必要があります)
|
35
|
+
のようにするとよいかもしれません。(16通りをすべて列挙する必要があります)
|
36
|
+
|
37
|
+
追記:
|
38
|
+
実際に case 文をかいてみました。 (d1, d2 をソートすることで、 16 通りでなく 10 ,通りにまでは減らせます)
|
39
|
+
```ruby
|
40
|
+
def s_to_i_c(d1, d2)
|
41
|
+
d = [d1, d2].sort
|
42
|
+
case d
|
43
|
+
when ['E', 'E'], ['N', 'N'], ['S', 'S'], ['W', 'W'], ['E', 'W'], ['N', 'S']
|
44
|
+
return 0
|
45
|
+
when ['E', 'N'], ['E', 'S'], ['S', 'W'], ['N', 'W']
|
46
|
+
return 90
|
47
|
+
else
|
48
|
+
return -1 # エラー (d1, d1 の値が不正)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
```
|
52
|
+
|
53
|
+
でも E,N,S,W の4 方向から NE などを加えた 8 方向やもっと多くの方向をあつかえるようにしようとした際に
|
54
|
+
case で書いてあると変更が大変です。
|