回答編集履歴

6

2017/04/14 16:42

投稿

moke
moke

スコア2241

test CHANGED
@@ -1,6 +1,6 @@
1
1
  tacsheaven様の回答に補足という感じですが。
2
2
 
3
- rubyはポーカー判定に向いているかもと思い概略を描いてみました。
3
+ rubyはポーカー判定に向いているかもと思いrubyっぽい記述で概略を描いてみました。
4
4
 
5
5
  ※強さ判定が必要になったら
6
6
 

5

逆やった

2017/04/14 16:42

投稿

moke
moke

スコア2241

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 [2,1,1,1]
61
+ when [1,1,1,2]
62
62
 
63
63
  'ワンペア'
64
64
 
65
- when [2,2,1]
65
+ when [1,2,2]
66
66
 
67
67
  'ツーペア'
68
68
 
69
- when [3,1,1]
69
+ when [1,1,3]
70
70
 
71
71
  'スリーカード'
72
72
 
73
- when [3,2]
73
+ when [2,3]
74
74
 
75
75
  'フルハウス'
76
76
 
77
- when [4,1]
77
+ when [1,4]
78
78
 
79
79
  'フォーカード'
80
80
 

4

2017/04/14 07:19

投稿

moke
moke

スコア2241

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]=[1,2,3,4]
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=[[1,8] [1,7] [2,6],[2,5],[1,4]]
23
+ arr=[[4,8] [4,7] [3,6],[3,5],[4,4]]
24
24
 
25
25
  tarr=arr.transpose
26
26
 

3

2017/04/14 05:11

投稿

moke
moke

スコア2241

test CHANGED
File without changes

2

2017/04/14 05:11

投稿

moke
moke

スコア2241

test CHANGED
File without changes

1

2017/04/14 05:05

投稿

moke
moke

スコア2241

test CHANGED
@@ -1,8 +1,12 @@
1
1
  tacsheaven様の回答に補足という感じですが。
2
2
 
3
- rubyはポーカー判定に向いているかもと思いました。
3
+ rubyはポーカー判定に向いているかもと思い概略を描いてみました。
4
4
 
5
+ ※強さ判定が必要になったら
6
+
5
- 強さ判定については強さを数値で置き換えて判定すればいいとして(1が強くスペードが強い)
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