質問するログイン新規登録

回答編集履歴

1

追記

2018/10/08 08:11

投稿

katoy
katoy

スコア22328

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 で書いてあると変更が大変です。