132 lines
5.1 KiB
Go
132 lines
5.1 KiB
Go
package poker
|
|
|
|
import (
|
|
"sort"
|
|
"testing"
|
|
)
|
|
|
|
func TestPoker_String(t *testing.T) {
|
|
p := &Poker{
|
|
Color: 1,
|
|
Point: 2,
|
|
}
|
|
t.Log(p.ToInt())
|
|
t.Log(NewPoker(113).ToInt())
|
|
t.Log(NewPoker(208).ToInt())
|
|
t.Log(NewPoker(310).ToInt())
|
|
}
|
|
|
|
func TestPoker_Sort(t *testing.T) {
|
|
sortPks := []*Poker{NewPokerEx(Heart, Point2, Ext1), NewPokerEx(Heart, Point10, Ext1),
|
|
NewPokerEx(Heart, Point3, Ext1), NewPokerEx(Heart, Point6, Ext1),
|
|
NewPokerEx(Heart, Point4, Ext1), NewPokerEx(Heart, Point4, Ext1)}
|
|
|
|
sort.Slice(sortPks, func(i, j int) bool {
|
|
return sortPks[i].Point < sortPks[j].Point
|
|
})
|
|
t.Log(PokersToString(sortPks))
|
|
}
|
|
|
|
//func testKind(t *testing.T, wildPoker *Poker, pks ...*Poker) {
|
|
// cacheta := NewCachetaPokers()
|
|
// cacheta.pokers = pks
|
|
// cacheta.wildPoker = wildPoker
|
|
//
|
|
// if cacheta.isKind(cacheta.pokers...) {
|
|
// t.Log(fmt.Sprintf("%s %s. 万能牌:%s", PokersToString(cacheta.pokers), "is kind", wildPoker.ToString()))
|
|
// } else {
|
|
// t.Log(fmt.Sprintf("%s %s. 万能牌:%s", PokersToString(cacheta.pokers), "is not kind", wildPoker.ToString()))
|
|
// }
|
|
//}
|
|
|
|
func TestPoker_IsKind(t *testing.T) {
|
|
//var pks []*Poker
|
|
//var wildPoker *Poker
|
|
//
|
|
//// 三张花色各不同,点数相同
|
|
//pks = []*Poker{NewPoker(int(Heart), int(Point2)), NewPoker(int(Club), int(Point2)), NewPoker(int(Spade), int(Point2))}
|
|
//wildPoker = NewPoker(int(Heart), int(Point3))
|
|
//testKind(t, wildPoker, pks...)
|
|
//
|
|
//// 三张花色各不同,点数不相同
|
|
//pks = []*Poker{NewPoker(int(Heart), int(Point2)), NewPoker(int(Club), int(Point2)), NewPoker(int(Spade), int(Point3))}
|
|
//wildPoker = NewPoker(int(Heart), int(Point3))
|
|
//testKind(t, wildPoker, pks...)
|
|
//
|
|
//// 三张花色相同,点数相同
|
|
//pks = []*Poker{NewPoker(int(Heart), int(Point2)), NewPoker(int(Heart), int(Point2)), NewPoker(int(Spade), int(Point2))}
|
|
//wildPoker = NewPoker(int(Heart), int(Point3))
|
|
//testKind(t, wildPoker, pks...)
|
|
//
|
|
//// 三张花色相同,点数不同
|
|
//pks = []*Poker{NewPoker(int(Heart), int(Point2)), NewPoker(int(Heart), int(Point2)), NewPoker(int(Spade), int(Point3))}
|
|
//wildPoker = NewPoker(int(Heart), int(Point3))
|
|
//testKind(t, wildPoker, pks...)
|
|
//
|
|
//// 两张花色不同,搭配一张万能牌
|
|
//pks = []*Poker{NewPoker(int(Heart), int(Point2)), NewPoker(int(Spade), int(Point2)), NewPoker(int(Diamond), int(Point3))}
|
|
//wildPoker = NewPoker(int(Heart), int(Point3))
|
|
//testKind(t, wildPoker, pks...)
|
|
//
|
|
//// 搭配2张万能牌
|
|
//pks = []*Poker{NewPoker(int(Heart), int(Point2)), NewPoker(int(Heart), int(Point3)), NewPoker(int(Diamond), int(Point3))}
|
|
//wildPoker = NewPoker(int(Heart), int(Point3))
|
|
//testKind(t, wildPoker, pks...)
|
|
//
|
|
//// 4张两花色
|
|
//pks = []*Poker{NewPoker(int(Heart), int(Point2)), NewPoker(int(Heart), int(Point2)), NewPoker(int(Diamond), int(Point2)), NewPoker(int(Diamond), int(Point2))}
|
|
//wildPoker = NewPoker(int(Heart), int(Point3))
|
|
//testKind(t, wildPoker, pks...)
|
|
//
|
|
//// 4张3花色
|
|
//pks = []*Poker{NewPoker(int(Heart), int(Point2)), NewPoker(int(Heart), int(Point2)), NewPoker(int(Diamond), int(Point2)), NewPoker(int(Club), int(Point2))}
|
|
//wildPoker = NewPoker(int(Heart), int(Point3))
|
|
//testKind(t, wildPoker, pks...)
|
|
}
|
|
|
|
//func testFlush(t *testing.T, wildPoker *Poker, pks ...*Poker) {
|
|
// cacheta := NewCachetaPokers()
|
|
// cacheta.pokers = pks
|
|
// cacheta.wildPoker = wildPoker
|
|
//
|
|
// if cacheta.isFlush(cacheta.pokers...) {
|
|
// t.Log(fmt.Sprintf("%s %s. 万能牌:%s", PokersToString(cacheta.pokers), "is flush", wildPoker.ToString()))
|
|
// } else {
|
|
// t.Log(fmt.Sprintf("%s %s. 万能牌:%s", PokersToString(cacheta.pokers), "is not flush", wildPoker.ToString()))
|
|
// }
|
|
//}
|
|
//
|
|
//func TestPoker_IsFlush(t *testing.T) {
|
|
// //var pks []*Poker
|
|
// //var wildPoker *Poker
|
|
// //// 顺子,花色不同
|
|
// //pks = []*Poker{NewPoker(int(Heart), int(Point2)), NewPoker(int(Club), int(Point3)), NewPoker(int(Spade), int(Point4))}
|
|
// //wildPoker = NewPoker(int(Heart), int(Point3))
|
|
// //testFlush(t, wildPoker, pks...)
|
|
// //
|
|
// //// 顺子,花色相同
|
|
// //pks = []*Poker{NewPoker(int(Heart), int(Point2)), NewPoker(int(Heart), int(Point3)), NewPoker(int(Heart), int(Point4))}
|
|
// //wildPoker = NewPoker(int(Diamond), int(Point5))
|
|
// //testFlush(t, wildPoker, pks...)
|
|
// //
|
|
// //// AQK
|
|
// //pks = []*Poker{NewPoker(int(Heart), int(PointA)), NewPoker(int(Heart), int(PointQ)), NewPoker(int(Heart), int(PointK))}
|
|
// //wildPoker = NewPoker(int(Diamond), int(Point4))
|
|
// //testFlush(t, wildPoker, pks...)
|
|
// //
|
|
// //// A23
|
|
// //pks = []*Poker{NewPoker(int(Heart), int(PointA)), NewPoker(int(Heart), int(Point2)), NewPoker(int(Heart), int(Point3))}
|
|
// //wildPoker = NewPoker(int(Diamond), int(Point4))
|
|
// //testFlush(t, wildPoker, pks...)
|
|
// //
|
|
// //// A*K
|
|
// //pks = []*Poker{NewPoker(int(Heart), int(PointA)), NewPoker(int(Heart), int(Point3)), NewPoker(int(Heart), int(PointK))}
|
|
// //wildPoker = NewPoker(int(Diamond), int(Point3))
|
|
// //testFlush(t, wildPoker, pks...)
|
|
// //
|
|
// //// A2*K
|
|
// //pks = []*Poker{NewPoker(int(Heart), int(PointA)), NewPoker(int(Heart), int(Point2)), NewPoker(int(Heart), int(Point3)), NewPoker(int(Heart), int(PointK))}
|
|
// //wildPoker = NewPoker(int(Diamond), int(Point3))
|
|
// //testFlush(t, wildPoker, pks...)
|
|
//}
|