質問編集履歴

3

戻り値、役を修正。

2019/05/04 14:02

投稿

eien_beginner
eien_beginner

スコア29

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  三つのサイコロの値に応じて役を決めます。
16
16
 
17
- 役は以下の通りです。[※参考](https://ja.wikipedia.org/wiki/%E3%83%81%E3%83%B3%E3%83%81%E3%83%AD%E3%83%AA%E3%83%B3#%E9%85%8D%E5%BD%93%E3%81%AE%E3%81%BE%E3%81%A8%E3%82%81)
17
+ 役は以下の通りです。
18
18
 
19
19
 
20
20
 
@@ -24,7 +24,17 @@
24
24
 
25
25
  シゴロ : サイコロの目が(4, 5, 6)
26
26
 
27
- 出目有 : 3つのサイコロのうち、2つがゾロ目だった場合残り1つの目のこと(:5,4,5のときの目は4)
27
+ ロッポウ : 3つ中2つのサイコロがゾロ目、ゾロ目でないサイコロが6の目5, 5, 6)
28
+
29
+ ゴケ : 3つ中2つのサイコロがゾロ目、ゾロ目でないサイコロが5の目
30
+
31
+ ヨツヤ : 3つ中2つのサイコロがゾロ目、ゾロ目でないサイコロが4の目
32
+
33
+ サンタ : 3つ中2つのサイコロがゾロ目、ゾロ目でないサイコロが3の目
34
+
35
+ ニゾウ : 3つ中2つのサイコロがゾロ目、ゾロ目でないサイコロが2の目
36
+
37
+ ピン : 3つ中2つのサイコロがゾロ目、ゾロ目でないサイコロが1の目
28
38
 
29
39
  目なし : 3つの目それぞれ値が違ったとき
30
40
 
@@ -32,11 +42,11 @@
32
42
 
33
43
  (弱)
34
44
 
45
+ [※参考](https://ja.wikipedia.org/wiki/%E3%83%81%E3%83%B3%E3%83%81%E3%83%AD%E3%83%AA%E3%83%B3#%E9%85%8D%E5%BD%93%E3%81%AE%E3%81%BE%E3%81%A8%E3%82%81)
46
+
35
47
 
36
48
 
37
49
  ```C#
38
-
39
-
40
50
 
41
51
  enum hand
42
52
 
@@ -46,7 +56,17 @@
46
56
 
47
57
  MENASHI,
48
58
 
49
- // (略)
59
+ PIN = 1,
60
+
61
+ NIZO,
62
+
63
+ SANTA,
64
+
65
+ YOTSUYA,
66
+
67
+ GOKE,
68
+
69
+ ROPPOU,
50
70
 
51
71
  SHIGORO,
52
72
 
@@ -72,11 +92,11 @@
72
92
 
73
93
 
74
94
 
75
- static private int Check(List<int> dice)
95
+ static private hand Check(List<int> dice)
76
96
 
77
97
  {
78
98
 
79
- int ret;
99
+ hand ret;
80
100
 
81
101
 
82
102
 
@@ -86,13 +106,13 @@
86
106
 
87
107
  case 1:
88
108
 
89
- ret = (int) hand.ARASHI;
109
+ ret = hand.ARASHI;
90
110
 
91
111
  break;
92
112
 
93
113
  case 2:
94
114
 
95
- ret = 2 * dice.Distinct().Sum() - dice.Sum();
115
+ ret = (hand) (2 * dice.Distinct().Sum() - dice.Sum());
96
116
 
97
117
  break;
98
118
 
@@ -102,7 +122,7 @@
102
122
 
103
123
  {
104
124
 
105
- ret = (int) hand.HIFUMI;
125
+ ret = hand.HIFUMI;
106
126
 
107
127
  }
108
128
 
@@ -110,7 +130,7 @@
110
130
 
111
131
  {
112
132
 
113
- ret = (int) hand.SHIGORO;
133
+ ret = hand.SHIGORO;
114
134
 
115
135
  }
116
136
 
@@ -118,7 +138,7 @@
118
138
 
119
139
  {
120
140
 
121
- ret = (int) hand.MENASHI;
141
+ ret = hand.MENASHI;
122
142
 
123
143
  }
124
144
 
@@ -126,7 +146,7 @@
126
146
 
127
147
  default:
128
148
 
129
- ret = (int) hand.MENASHI;
149
+ ret = hand.MENASHI;
130
150
 
131
151
  break;
132
152
 

2

タイトルの修正

2019/05/04 14:02

投稿

eien_beginner
eien_beginner

スコア29

test CHANGED
@@ -1 +1 @@
1
- すごろくの役を判定するプログラム
1
+ チンチロリンの役を判定するプログラム
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  シゴロ : サイコロの目が(4, 5, 6)
26
26
 
27
- 2~6 : 3つのサイコロのうち、2つがゾロ目だった場合、残り1つの目のこと(例:5,4,5のときの目は4)
27
+ 出目有 : 3つのサイコロのうち、2つがゾロ目だった場合、残り1つの目のこと(例:5,4,5のときの目は4)
28
28
 
29
29
  目なし : 3つの目それぞれ値が違ったとき
30
30
 
@@ -33,120 +33,6 @@
33
33
  (弱)
34
34
 
35
35
 
36
-
37
- C# or C++ で作成する予定です
38
-
39
- ```C++
40
-
41
- #include <iostream>
42
-
43
- #include <algorithm>
44
-
45
- #include <vector>
46
-
47
-
48
-
49
- typedef enum
50
-
51
- {
52
-
53
- HIFUMI = -1,
54
-
55
- MENASHI,
56
-
57
- // (略)
58
-
59
- SHIGORO,
60
-
61
- ARASHI
62
-
63
- } hand;
64
-
65
-
66
-
67
- int Check(std::vector<int> dice)
68
-
69
- {
70
-
71
- std::sort(dice.begin(), dice.end());
72
-
73
-
74
-
75
- if (dice[0] == dice[1])
76
-
77
- {
78
-
79
- if (dice[1] == dice[2])
80
-
81
- {
82
-
83
- return ARASHI;
84
-
85
- }
86
-
87
- else
88
-
89
- {
90
-
91
- return dice[2];
92
-
93
- }
94
-
95
- }
96
-
97
- else if (dice[1] == dice[2])
98
-
99
- {
100
-
101
- return dice[0];
102
-
103
- }
104
-
105
- else
106
-
107
- {
108
-
109
- if (dice[0] == 1 && dice[1] == 2 && dice[2] == 3)
110
-
111
- {
112
-
113
- return HIFUMI;
114
-
115
- }
116
-
117
- else if (dice[0] == 4 && dice[1] == 5 && dice[2] == 6)
118
-
119
- {
120
-
121
- return SHIGORO;
122
-
123
- }
124
-
125
- else
126
-
127
- {
128
-
129
- return MENASHI;
130
-
131
- }
132
-
133
- }
134
-
135
- }
136
-
137
-
138
-
139
- int main()
140
-
141
- {
142
-
143
- std::vector<int> dice = { 3, 3, 3 };
144
-
145
- std::cout << Check(dice) << std::endl;
146
-
147
- }
148
-
149
- ```
150
36
 
151
37
  ```C#
152
38
 

1

アルゴリズム中の計算式を簡略化

2019/05/04 13:51

投稿

eien_beginner
eien_beginner

スコア29

test CHANGED
File without changes
test CHANGED
@@ -206,7 +206,7 @@
206
206
 
207
207
  case 2:
208
208
 
209
- ret = dice.Sum() - (dice.Sum() - dice.Distinct().Sum()) * 2;
209
+ ret = 2 * dice.Distinct().Sum() - dice.Sum();
210
210
 
211
211
  break;
212
212