samba/server/cacheta/poker/poker_test.go

132 lines
5.1 KiB
Go
Raw Permalink Normal View History

2025-06-04 09:51:39 +08:00
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...)
//}