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...) //}