123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- package teen
- import (
- "encoding/json"
- "fmt"
- "log"
- "math/rand"
- "os"
- "server/game/room"
- "server/msg"
- "server/user"
- "github.com/name5566/leaf/gate"
- )
- type TeenPattiRoom struct {
- Boot string `json:"boot"`
- MinBuyin string `json:"minBuyin"`
- ChaalLimmit string `json:"chaalLimmit"`
- PotLimit string `json:"potLimit"`
- TotalPlayers string `json:"totalPlayers"`
- RoomLevel string `json:"roomLevel"`
- RoomId string `json:"roomId"`
- Type string `json:"type"`
- }
- var GameConfig struct {
- GameId string `json:"game_id"`
- Name string `json:"name"`
- Status int `json:"status"`
- RoomList []TeenPattiRoom `json:"room_list"`
- ThinkTime int `json:"think_time"`
- }
- func InitGame() {
- }
- func init() {
- data, err := os.ReadFile("../../bin/gamedata/teen_patti_conf.json")
- if err != nil {
- log.Fatal("%v", err)
- }
- err = json.Unmarshal(data, &GameConfig)
- if err != nil {
- log.Fatal("%v", err)
- }
- go handleEvents()
- }
- func createRoom(userId string, roomId string, agent gate.Agent) {
-
- userData := agent.UserData().(*user.UserData)
- random := rand.Intn(3) + 1
-
- userData.Teen_Patti_Room.RemoveAllRobot()
- sitPos := randomSitPos(userData.Teen_Patti_Room, random)
- for i := 0; i < random; i++ {
- userData.Teen_Patti_Room.Players = append(userData.Teen_Patti_Room.Players, &room.Player{
- Id: fmt.Sprintf("%d", i),
- Agent: nil,
- IsRobot: true,
- UserData: createRobotUserData(),
- SitPos: sitPos[i],
- })
- }
- randomDealer(userData.Teen_Patti_Room)
- }
- func createRobotUserData() *user.UserData {
- return &user.UserData{
- Id: "robot",
- Status: 1,
- Teen_Patti_Room: nil,
- Head_Image: randomIndianHeadImage(),
- Nickname: randomIndianName(),
- }
- }
- func startGame(userId string, roomId string, agent gate.Agent, teenPattiRoom *room.Room) {
-
- createRoom(userId, roomId, agent)
- agent.WriteMsg(&msg.ReqJoinRoom{
- UserId: userId,
- RoomId: roomId,
- GameId: "teen_patti",
- RoomInfo: buildRoom(teenPattiRoom),
- })
- }
- func initCardDeck(c_room *room.Room) {
-
- c_room.CardDeck = make([]room.Card, 52)
- for i := 0; i < 52; i++ {
- c_room.CardDeck[i] = room.Card{
- Color: i / 13,
- Point: i%13 + 1,
- }
- }
- }
- func shuffleCardDeck(deck []room.Card) {
- rand.Shuffle(len(deck), func(i, j int) {
- deck[i], deck[j] = deck[j], deck[i]
- })
- }
|