-
Notifications
You must be signed in to change notification settings - Fork 0
/
card21core.go
128 lines (117 loc) · 2.14 KB
/
card21core.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package card21
import (
"math/rand"
"strconv"
)
func rdnum(max int) int {
a := rand.Intn(max)
return a
}
func puid(player string) int64 {
playeruid, _ := strconv.ParseInt(player, 10, 64)
return playeruid
}
func judger21A(cards []string) int {
var s int
for k := 0; k <= len(cards)-1; k = k + 1 {
value := cards[k][6:]
switch {
case value == "A":
value = "1"
case value == "J" || value == "Q" || value == "K":
value = "10"
}
valuei, _ := strconv.Atoi(value)
s = s + valuei
}
score := s - 21
return score
}
func judger21B(cards []string) int {
var s int
for k := 0; k <= len(cards)-1; k = k + 1 {
value := cards[k][6:]
switch {
case value == "A":
value = "11"
case value == "J" || value == "Q" || value == "K":
value = "10"
}
valuei, _ := strconv.Atoi(value)
s = s + valuei
}
score := s - 21
return score
}
func judgerfin(result1, result2 int) int {
if result1 < 0 && result2 > 0 {
return result1
} else if result1 > 0 && result2 < 0 {
return result2
} else {
if result1 < result2 {
return result2
} else {
return result1
}
}
}
func judger17A(cards []string) int {
var s int
for k := 0; k <= len(cards)-1; k = k + 1 {
value := cards[k][6:]
switch {
case value == "A":
value = "1"
case value == "J" || value == "Q" || value == "K":
value = "10"
}
valuei, _ := strconv.Atoi(value)
s = s + valuei
}
point := s - 17
return point
}
func judger17B(cards []string) int {
var s int
for k := 0; k <= len(cards)-1; k = k + 1 {
value := cards[k][6:]
switch {
case value == "A":
value = "10"
case value == "J" || value == "Q" || value == "K":
value = "10"
}
valuei, _ := strconv.Atoi(value)
s = s + valuei
}
point := s - 17
return point
}
// Contains 数组是否包含某元素
func Contains(slice []string, s string) int {
for index, value := range slice {
if value == s {
return index
}
}
return -1
}
func or(s1, s2 bool) bool {
if s1 || s2 {
return true
} else {
return false
}
}
func winner(m map[string]int) string {
max := -10000
winnerr := ""
for num := range m {
if m[num] > max {
max = m[num]
winnerr = num
}
}
return winnerr
}