public UserService(UserData userData, DeskData deskData) { this.userData = userData; this.deskData = deskData; // this.reservationData = new ReservationData(); this.reservationData = reservationData; }
public static bool StartAIEngine(GameDV game, UserDV user, DeskData data) { if (InProgress.Keys.Any(x => x.GameId == game.GameId)) { return(false); } InProgress.TryAdd(game, 0); Task.Run(new Action(() => { try { Solver solver = new Solver(); PointData pd = solver.GetNextMove(data); JsonPlayRequest request = new JsonPlayRequest(); request.gameToken = game.GameToken; request.userToken = user.Token; request.positionX = pd.X; request.positionY = pd.Y; JsonCommunication.Play(request); // ignore response int outval; InProgress.TryRemove(game, out outval); } catch (Exception ex) { int outval; InProgress.TryRemove(game, out outval); } })); return(true); }
public void SetDataForMark(int desk_idx, int mark) { this.desk_id = desk_idx; for (int i = 0; i < chairs.Length; i++) { int bit = 1 << i; chairs[i].SetPlayerShow((mark & bit) == bit, desk_idx, i); } typ = (mark & (1 << chairs.Length)) > 0 ? 1 : 0; string des = ""; int desk_level = desk_idx / 10; switch (PlayerData.self.bet_typ) { case 0: des = $"每次需要{DeskData.GetRoomNeedResource(PlayerData.self.bet_id, PlayerData.self.bet_id, desk_level)}{DateFile.instance.resourceDate[PlayerData.self.bet_id][1]}!"; break; case 1: des = $"物品价值至少{DeskData.GetRoomNeedResource(7, PlayerData.self.bet_id, desk_level)}!"; break; case 2: des = $"人物身价至少{DeskData.GetRoomNeedResource(8, PlayerData.self.bet_id, desk_level)}!"; break; default: des = $"物品价值至少{DeskData.GetRoomNeedResource(7, PlayerData.self.bet_id, desk_level)}!"; break; } this.des.text = $"{GetDeskLevelName(desk_level)}{desk_idx % 10 + 1}号桌\n<size=22><color=red>{typ_name[typ]}\n{des}</color></size>"; }
private void ShowSelectedGame() { try { if (DataContext is Data data) { UserListDV ul = data.UsersPanelDV.UserListDV; if (ul.SelectedUser != null) { if (ul.SelectedUser.Games.Count > 0) { UserDV selectedUser = ul.SelectedUser; GameDV game = ul.SelectedUser.SelectedGame; if (game == null) { return; } JsonCheckStatusRequest checkStatusRequest = new JsonCheckStatusRequest(); checkStatusRequest.userToken = selectedUser.Token; checkStatusRequest.gameToken = game.GameToken; JsonCheckStatusResponse response = JsonCommunication.CheckStatus(checkStatusRequest); if (response.winnerId != null) { ul.SelectedUser.SelectedGame = null; ul.SelectedUser.Games.Remove(game); } else { DeskData dd = new DeskData(); bool isMyTurn = selectedUser.Id == response.actualPlayerId; ESymbol mySymbol; if (isMyTurn) { mySymbol = response.actualPlayerId == response.playerCircleId ? ESymbol.Circle : ESymbol.Cross; } else { mySymbol = response.actualPlayerId == response.playerCircleId ? ESymbol.Cross : ESymbol.Circle; } dd.Fill(response, mySymbol, isMyTurn); data.DeskData = dd; if (isMyTurn && data.AutomaticMode) { AIEngine.StartAIEngine(game, selectedUser, dd); } } } } } } catch (Exception ex) { } }
public void AssignTask(DeskData assignedDesk, GroupData assignedGroup) { AssignedDesk = assignedDesk; AssignedGroup = assignedGroup; Game.Player.Charge(m_Price); m_UI = Game.Player.TaskManagementUI.AddTask(this); }
void OnDeskData(string error, long time_stamp, DeskData deskData, string battle_flag) { next_auto_send_time = Time.time + auto_send_interval; if (null == error) { tPeopleNum.text = ""; self.time_stamp = time_stamp; if (all.activeSelf && self.desk_idx != -1) { if (!desk.gameObject.activeSelf) { this.hall.SetActive(false); this.room.SetActive(false); this.desk.SetActive(true); this.chat.SetActive(true); this.people.SetActive(false); int desk_level = self.desk_idx / 10; tTitle.text = $"{self.player_name} 大厅>{RoomObj.GetRoomLevelName(self.level)}蛐蛐房>{RoomDeskObj.GetDeskLevelName(desk_level)}{(self.desk_idx % 10 + 1)}号桌"; go_close.name = "1556454954,1556454954"; } // 聊天 ChatData[] chatDatas = deskData.chat_data.ToArray(); ququChat.SetData(chatDatas); // 对战桌 ququDesk.SetData(deskData); } else if (!all.activeSelf) { tPeopleNum.text = "返回赌桌 " + PlayerData.online_count + "人在线"; } UpdateBetAndQuqu(); if (!int.TryParse(battle_flag, out int tmp)) // 触发战斗 { // // // Main.Logger.Log("触发战斗"+ battle_flag); self.ready = 0; // 准备战斗恢复为未准备 if (self.observer > 1) { self.observer = 1; // 押注观战恢复为普通观战 } PlayBattle(battle_flag); } else { // // // Main.Logger.Log("不触发战斗"+ battle_flag); } //OnLose(); } else { self.desk_idx = -1; //YesOrNoWindow.instance.SetYesOrNoWindow(-1, "出错!", error, false, true); // // Main.Logger.Log("error" + error); GetData(); } }
/// <summary> /// 请求所有走势信息 /// </summary> /// <param name="deskData"></param> /// <param name="callBack"></param> public void SendGetGameRecord(DeskData deskData, TwCallBack callBack) { var dict = new Dictionary <string, object>(); dict["gameKey"] = deskData.GameKey; if (deskData.RoomType != null) { dict["groupId"] = GetGroupId(deskData.GameKey, deskData.RoomType);//; } Facade.Instance <TwManager>().SendAction("room.getGameRecord", dict, callBack); }
public void OpenSelection(DeskData deskData, GroupData groupData) { Game.Player.Pause(); m_DeskData = deskData; m_GroupData = groupData; m_SelectionObject.SetActive(true); m_CloseTaskSelectionButton.gameObject.SetActive(true); foreach (TaskData taskData in Game.Player.TaskPoolDatas) { NewTaskInfoUI newTask = Instantiate(m_NewTaskInfoUIPrefab, m_SelectionObject.transform); newTask.SetTask(taskData, this); m_Tasks.Add(newTask); } }
/// <summary> /// 打开桌面窗口 /// </summary> public bool ShowDeskListPanel(string gameKey) { var panelMgr = Facade.Instance <YxPanelManager>(); var panel = panelMgr.GetPanel <HallPanel>("GameHallPanel"); if (panel == null) { return(false); } var deskData = new DeskData { GameKey = gameKey, RoomType = null }; var deskListPanel = panel.ShowChildPanel("DeskListPanel", deskData); return(deskListPanel == null); }
public PointData GetNextMove(DeskData deskData) { DeskData = deskData; Initialize(); EvaluateFields(EType.Circle); EvaluateFields(EType.Cross); EvaluateFieldsValues(EType.Circle); //PrintValues(); SolverField sfBest = GetBestField(EType.Circle); return(ConvertSolverField(sfBest)); //SolverField sf = GetRandomField(); //PointData pd = ConvertSolverField(sf); //return pd; }
public DeskService(DeskData deskData) { this.deskData = deskData; }
public void SetData(DeskData data) { this.data = data; loves = new string[] { "", "" }; // 玩家 PlayerData[] playerDats = data.player_data; for (int i = 0; i < playerDats.Length; i++) { if (i < players.Length) { PlayerData player = playerDats[i]; players[i].SetData(player, i); if (player.ip == self.ip) { my_idx = i; } if (i < 2) { string bet = player.bet; player.SetBetIdAndTyp(i + 1); int bet_typ = player.bet_typ; int bet_id = player.bet_id; QuquHall.instance.SetBetUI(i, bet_typ, bet_id); if (player.ip != "0") { loves[i] = player.GetLoveQuquName(); } if (player.ip != "0") { int[] callTime = i == 0 ? leftQuquCallTime : rightQuquCallTime; callTime = new int[3] { Random.Range(0, 300), Random.Range(0, 300), Random.Range(0, 300) }; int[] ququId = i == 0 ? leftQuquId : rightQuquId; for (int k = 0; k < 3; k++) { ququId[k] = player.GetBattleQuquId(k, -10, 1); } } else { int[] ququId = i == 0 ? leftQuquId : rightQuquId; for (int k = 0; k < 3; k++) { ququId[k] = 0; } } } } } if (self.observer == 0) // 参赛选手 { GameObject showBtn; GameObject hideBtn; Image tImg; if (my_idx == 0) // 在左边 { showBtn = leftBtn; hideBtn = rightBtn; tImg = tLeftImage; } else // 在右边 { showBtn = rightBtn; hideBtn = leftBtn; tImg = tRightImage; } hideBtn.SetActive(false); showBtn.SetActive(true); tImg.sprite = self.ready == 2 ? QuquHall.instance.sprite_x : QuquHall.instance.sprite_o; tImg.transform.localScale = self.ready == 0 ? new Vector3(.5f, .5f, .5f) : Vector3.one; //tBtn.text = ready_state_str[self.ready]; } else // 观众 { if (self.observer == 2) // 押1号选手 { leftBtn.SetActive(true); //tLeftBtn.text = "取消押注"; tLeftImage.sprite = QuquHall.instance.sprite_x; } else { leftBtn.SetActive(true); PlayerData sel = GetPlayer(0); //string bet_player_name = "押他"; //tLeftBtn.text = bet_player_name; tLeftImage.sprite = QuquHall.instance.sprite_o; } if (self.observer == 3) // 押1号选手 { rightBtn.SetActive(true); //tRightBtn.text = "取消押注"; tRightImage.sprite = QuquHall.instance.sprite_x; } else { rightBtn.SetActive(true); PlayerData sel = GetPlayer(1); //string bet_player_name = "押他"; //tRightBtn.text = bet_player_name; tRightImage.sprite = QuquHall.instance.sprite_o; } tLeftImage.transform.localScale = Vector3.one; tRightImage.transform.localScale = Vector3.one; } UpdateDeskDes(true); }
public void AssignTask(DeskData deskData, GroupData groupData, TaskData taskData) { taskData.AssignTask(deskData, groupData); TaskDatas.Add(taskData); TaskPoolDatas.Remove(taskData); }
private void ShowSelectedGame() { try { if (DataContext is Data data) { foreach (var bsdi in data.BulkSolveData.Data) { Task.Run(() => { UserDV user = bsdi.User; GameDV game = bsdi.Game; if (game == null) { return; } JsonCheckStatusRequest checkStatusRequest = new JsonCheckStatusRequest(); checkStatusRequest.userToken = user.Token; checkStatusRequest.gameToken = game.GameToken; JsonCheckStatusResponse response = JsonCommunication.CheckStatus(checkStatusRequest); if (response.winnerId != null) { DeskData dd = bsdi.DeskData.Copy(); if (response.winnerId == user.Id) { dd.Winner = user.Nickname; } else { dd.Winner = "Opponent"; } bsdi.DeskData = dd; } else { DeskData dd = new DeskData(); bool isMyTurn = user.Id == response.actualPlayerId; ESymbol mySymbol; if (isMyTurn) { mySymbol = response.actualPlayerId == response.playerCircleId ? ESymbol.Circle : ESymbol.Cross; } else { mySymbol = response.actualPlayerId == response.playerCircleId ? ESymbol.Cross : ESymbol.Circle; } dd.SquareSize = 5; dd.Fill(response, mySymbol, isMyTurn); bsdi.DeskData = dd; if (isMyTurn) { AIEngine.StartAIEngine(game, user, dd); } } }); } } } catch (Exception ex) { } }
private void Play() { try { if (DataContext is Data data) { foreach (var d in data.BulkSolveData.Data) { if (d.DeskData.Winner != null) { if (RemoveCounter.ContainsKey(d)) { RemoveCounter[d]++; } else { RemoveCounter.Add(d, 0); } if (RemoveCounter[d] >= 5) { data.BulkSolveData.Data.Remove(d); RemoveCounter.Remove(d); } } } if (!stop) { while (data.BulkSolveData.Data.Count < 24) { BulkSolveDataItem bsdi = CreateGame(); data.BulkSolveData.Data.Add(bsdi); } } foreach (var item in data.BulkSolveData.Data) { Task.Run(() => { try { UserDV user = item.User; GameDV game = item.Game; if (game == null) { return; } JsonCheckStatusRequest checkStatusRequest = new JsonCheckStatusRequest(); checkStatusRequest.userToken = user.Token; checkStatusRequest.gameToken = game.GameToken; JsonCheckStatusResponse response = JsonCommunication.CheckStatus(checkStatusRequest); if (response.winnerId != null) { DeskData dd = item.DeskData.Copy(); if (response.winnerId == user.Id) { dd.Winner = user.Nickname; } else { dd.Winner = "Opponent"; } item.DeskData = dd; } else { DeskData dd = new DeskData(); bool isMyTurn = user.Id == response.actualPlayerId; ESymbol mySymbol; if (isMyTurn) { mySymbol = response.actualPlayerId == response.playerCircleId ? ESymbol.Circle : ESymbol.Cross; } else { mySymbol = response.actualPlayerId == response.playerCircleId ? ESymbol.Cross : ESymbol.Circle; } dd.SquareSize = 5; dd.Fill(response, mySymbol, isMyTurn); item.DeskData = dd; if (isMyTurn) { AIEngine.StartAIEngine(game, user, dd); } } } catch (Exception ex) { } }); } } } catch (Exception ex) { } }