tl 1 year ago
parent
commit
0788bff5b4
1 changed files with 32 additions and 5 deletions
  1. 32 5
      game/qznn/qznn.go

+ 32 - 5
game/qznn/qznn.go

@@ -1313,16 +1313,43 @@ func genIssue(roomID int32) string {
 	return fmt.Sprintf("%d-%d", roomID, time.Now().Unix())
 }
 
-var cardCache = cache.New(1*time.Minute, 2*time.Minute)
+var cardCache = cache.New(10*time.Minute, 20*time.Minute)
 
 func getOpenNumList(issue string, roomID, chairID int32) []Card {
-	cardCache.Get(issue)
+	currActiveCard, exists := cardCache.Get(issue)
+	var cardMap map[int]int
+
+	if !exists {
+		cardMap = map[int]int{}
+		for i := 1; i <= 52; i++ {
+			cardMap[i] = 1
+		}
+
+		cardCache.Set(issue, cardMap, cache.DefaultExpiration)
+	} else {
+		cardMap = currActiveCard.(map[int]int)
+	}
+
+	count := 0
 	cardList := make([]Card, 0)
-	for c := 0; c < 5; c++ {
+
+	for {
+		key := rand.Intn(52) + 1
+		if cardMap[key] == -1 {
+			continue
+		}
+
 		cardList = append(cardList, Card{
-			Suit: rand.Intn(4) + 1,
-			Num:  rand.Intn(13) + 1,
+			Suit: key%13 + 1,
+			Num:  key/13 + 1,
 		})
+
+		cardMap[key] = -1
+
+		count++
+		if count == 5 {
+			break
+		}
 	}
 
 	return cardList