feat: 添加21点游戏
This commit is contained in:
52
handler/blackjack/view/viewer.go
Normal file
52
handler/blackjack/view/viewer.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package view
|
||||
|
||||
import (
|
||||
"git.lxtend.com/qqbot/handler/blackjack/controller"
|
||||
"git.lxtend.com/qqbot/handler/blackjack/model"
|
||||
)
|
||||
|
||||
func getEmojiOfColor(color string) string {
|
||||
switch color {
|
||||
case "Spade":
|
||||
return "♠"
|
||||
case "Heart":
|
||||
return "♥️"
|
||||
case "Diamond":
|
||||
return "♦"
|
||||
case "Club":
|
||||
return "♣"
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
type LiteralViewer struct {
|
||||
response string
|
||||
simulator *controller.BackJackSimulator
|
||||
}
|
||||
|
||||
func NewLiteralViewer(simulator *controller.BackJackSimulator) *LiteralViewer {
|
||||
return &LiteralViewer{
|
||||
simulator: simulator,
|
||||
response: "",
|
||||
}
|
||||
}
|
||||
|
||||
func generateCardSeries(deck *model.Deck) string {
|
||||
cards := ""
|
||||
for _, card := range deck.Cards() {
|
||||
if card.Visible {
|
||||
cards += getEmojiOfColor(card.Color) + card.Name + " "
|
||||
} else {
|
||||
cards += "🂠 "
|
||||
}
|
||||
}
|
||||
return cards
|
||||
}
|
||||
|
||||
func (viewer *LiteralViewer) GetResponse() string {
|
||||
viewer.response = ""
|
||||
viewer.response += "[🃏] Dealer: " + generateCardSeries(viewer.simulator.GetDealerCards()) + "\n"
|
||||
viewer.response += "[🎴] Player: " + generateCardSeries(viewer.simulator.GetPlayerCards()) + "\n"
|
||||
return viewer.response
|
||||
}
|
||||
Reference in New Issue
Block a user