回答編集履歴
6
あ
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
tacsheaven様の回答に補足という感じですが。
|
2
2
|
|
3
|
-
rubyはポーカー判定に向いているかもと思い概略を描いてみました。
|
3
|
+
rubyはポーカー判定に向いているかもと思いrubyっぽい記述で概略を描いてみました。
|
4
4
|
|
5
5
|
※強さ判定が必要になったら
|
6
6
|
|
5
逆やった
test
CHANGED
@@ -58,23 +58,23 @@
|
|
58
58
|
|
59
59
|
case when.group_by(&:itself).map{|k,v|v.size}.sort#重複ありの場合group_byを使って、それぞれの要素の数を数える。
|
60
60
|
|
61
|
-
when [
|
61
|
+
when [1,1,1,2]
|
62
62
|
|
63
63
|
'ワンペア'
|
64
64
|
|
65
|
-
when [2,2
|
65
|
+
when [1,2,2]
|
66
66
|
|
67
67
|
'ツーペア'
|
68
68
|
|
69
|
-
when [
|
69
|
+
when [1,1,3]
|
70
70
|
|
71
71
|
'スリーカード'
|
72
72
|
|
73
|
-
when [3
|
73
|
+
when [2,3]
|
74
74
|
|
75
75
|
'フルハウス'
|
76
76
|
|
77
|
-
when [4
|
77
|
+
when [1,4]
|
78
78
|
|
79
79
|
'フォーカード'
|
80
80
|
|
4
あ
test
CHANGED
@@ -12,15 +12,15 @@
|
|
12
12
|
|
13
13
|
[J,Q,K,A]=[11,12,13,14]
|
14
14
|
|
15
|
-
[S,H,D,C]=[
|
15
|
+
[S,H,D,C]=[4,3,2,1]
|
16
16
|
|
17
|
-
とおきます。
|
17
|
+
とおきます。数字の大きさが強さ順になります。
|
18
18
|
|
19
19
|
tacsheaven様の式はRubyっぽく書くと
|
20
20
|
|
21
21
|
```ruby
|
22
22
|
|
23
|
-
arr=[[
|
23
|
+
arr=[[4,8] [4,7] [3,6],[3,5],[4,4]]
|
24
24
|
|
25
25
|
tarr=arr.transpose
|
26
26
|
|
3
あ
test
CHANGED
File without changes
|
2
あ
test
CHANGED
File without changes
|
1
あ
test
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
tacsheaven様の回答に補足という感じですが。
|
2
2
|
|
3
|
-
rubyはポーカー判定に向いているかもと思いました。
|
3
|
+
rubyはポーカー判定に向いているかもと思い概略を描いてみました。
|
4
4
|
|
5
|
+
※強さ判定が必要になったら
|
6
|
+
|
5
|
-
強さ
|
7
|
+
強さを数値で置き換えて判定すればいいとして(1が強くスペードが強い)
|
8
|
+
|
9
|
+
[役,数字,マーク]にして<=>で辞書式順序で比較してください
|
6
10
|
|
7
11
|
まず簡単のため
|
8
12
|
|
@@ -12,7 +16,7 @@
|
|
12
16
|
|
13
17
|
とおきます。
|
14
18
|
|
15
|
-
|
19
|
+
tacsheaven様の式はRubyっぽく書くと
|
16
20
|
|
17
21
|
```ruby
|
18
22
|
|
@@ -26,6 +30,10 @@
|
|
26
30
|
|
27
31
|
```
|
28
32
|
|
33
|
+
と書けます。
|
34
|
+
|
35
|
+
|
36
|
+
|
29
37
|
で、まずnumbersの重複を調べます。
|
30
38
|
|
31
39
|
|
@@ -38,7 +46,7 @@
|
|
38
46
|
|
39
47
|
```ruby
|
40
48
|
|
41
|
-
if numbers.uniq.size==5
|
49
|
+
if numbers.uniq.size==5#重複なし
|
42
50
|
|
43
51
|
'フラッシュ' if suits.uniq.size==1#マークが1種類
|
44
52
|
|
@@ -46,7 +54,7 @@
|
|
46
54
|
|
47
55
|
'ロイヤル' if numbers.sort==[10,11,12,13,14]
|
48
56
|
|
49
|
-
else
|
57
|
+
else#重複あり
|
50
58
|
|
51
59
|
case when.group_by(&:itself).map{|k,v|v.size}.sort#重複ありの場合group_byを使って、それぞれの要素の数を数える。
|
52
60
|
|