public static void Send_Chat(int id) { OnGame_chat xmsg = new OnGame_chat(); xmsg.m_iChatID = id; byte[] msgBytes; using (MemoryStream stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, xmsg); msgBytes = stream.ToArray(); } OnGame ongame = new OnGame(); ongame.gameData = msgBytes; ongame.m_iRoomID = Network.Myplayer.m_iRoomID; ongame.m_iTableID = Network.gameInfo_sitdown.m_iTableID; ongame.m_icmd = (int)GameID.Chat; ongame.gameDataLength = msgBytes.Length; byte[] res; using (MemoryStream stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, ongame); res = stream.ToArray(); } ClientHeader header = new ClientHeader(); header = GetHeader(MessageID.CMD_PLAYGAME, res.Length); connector.SendMsg(header, res); }
public void UpdateGame() { try { string jsonReviced = request.GetRequest(@"/matches"); beforeGame = JsonConvert.DeserializeObject <List <BeforeGame> >(jsonReviced)[0]; jsonReviced = request.GetRequest(@"/matches/" + request.GetMatchID()); onGame = JsonConvert.DeserializeObject <OnGame>(jsonReviced); brain.InitBRAIN(beforeGame, onGame); } catch (Exception) { Console.WriteLine("Tu meny riquet"); } }
public void InitBRAIN(BeforeGame beforeGame, OnGame onGame) { size = int.Parse(onGame.Height); isObs = new Map2D <bool>(size); scores = new Map2D <int>(size); owns = new Map2D <int>(size); myAgents = new List <MyAgent>(); enemyAgents = new List <MyAgent>(); foreach (var obs in onGame.Obstacles) { isObs[obs.Y, obs.X] = true; } foreach (var tre in onGame.Treasure) { if (tre.Status == 0) { scores[tre.Y, tre.X] = tre.Point; } } for (int i = 1; i <= size; i++) { for (int j = 1; j <= size; j++) { scores[i, j] += onGame.Points[i - 1][j - 1]; owns[i, j] = onGame.Tiled[i - 1][j - 1]; } } foreach (var tea in onGame.Teams) { if (tea.TeamID == beforeGame.TeamID) { foreach (var age in tea.Agents) { myAgents.Add(new MyAgent(age.Y, age.X, age.AgentID)); } } else { foreach (var age in tea.Agents) { enemyAgents.Add(new MyAgent(age.Y, age.X, age.AgentID)); } } } }
public static void Send_GameChoose(int num) //服务器 -x:选择x 客户端 100+x 选择x { OnGameChoose xmsg = new OnGameChoose(); //xmsg.m_iTankID = UnityEngine.Random.Range(1, 5); //xmsg.m_iTankID = xmsg.m_iTankID * 100000 + 1; if (num > 100) { num = -(num - 100); } xmsg.m_iTankID = num; xmsg.m_iSkill1 = Network.skill1; xmsg.m_iSkill2 = Network.skill2; byte[] msgBytes; using (MemoryStream stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, xmsg); msgBytes = stream.ToArray(); } OnGame ongame = new OnGame(); ongame.gameData = msgBytes; ongame.m_iRoomID = Network.Myplayer.m_iRoomID; ongame.m_iTableID = Network.gameInfo_sitdown.m_iTableID; ongame.m_icmd = (int)GameID.Choose; ongame.gameDataLength = msgBytes.Length; byte[] res; using (MemoryStream stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, ongame); res = stream.ToArray(); } ClientHeader header = new ClientHeader(); header = GetHeader(MessageID.CMD_PLAYGAME, res.Length); connector.SendMsg(header, res); }
public static void Send_Quit() { OnGame ongame = new OnGame(); ongame.gameData = Encoding.ASCII.GetBytes("x"); ongame.m_iRoomID = Network.Myplayer.m_iRoomID; ongame.m_iTableID = Network.gameInfo_sitdown.m_iTableID; ongame.m_icmd = (int)GameID.Quit; ongame.gameDataLength = 1; byte[] res; using (MemoryStream stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, ongame); res = stream.ToArray(); } ClientHeader header = new ClientHeader(); header = GetHeader(MessageID.CMD_PLAYGAME, res.Length); connector.SendMsg(header, res); }
public static void Send_Move(bool keydown, int direction, float time, float x, float y) { OnGameMove xmsg = new OnGameMove(); xmsg.m_iKeyDown = keydown; xmsg.m_iDirection = direction; xmsg.m_iIntervalTime = time; xmsg.m_iPosX = x; xmsg.m_iPosY = y; xmsg.m_iOptID = Network.playerid; byte[] msgBytes; using (MemoryStream stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, xmsg); msgBytes = stream.ToArray(); } OnGame ongame = new OnGame(); ongame.gameData = msgBytes; ongame.m_iRoomID = Network.Myplayer.m_iRoomID; ongame.m_iTableID = Network.gameInfo_sitdown.m_iTableID; ongame.m_icmd = (int)GameID.Move; ongame.gameDataLength = msgBytes.Length; byte[] res; using (MemoryStream stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, ongame); res = stream.ToArray(); } ClientHeader header = new ClientHeader(); header = GetHeader(MessageID.CMD_PLAYGAME, res.Length); connector.SendMsg(header, res); }
public static void Send_BOOM(bool boom, float x, float y, int boomid) { OnGameBoom xmsg = new OnGameBoom(); xmsg.m_ix = x; xmsg.m_iy = y; xmsg.Kind = boom; xmsg.BombID = boomid; byte[] msgBytes; using (MemoryStream stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, xmsg); msgBytes = stream.ToArray(); } OnGame ongame = new OnGame(); ongame.gameData = msgBytes; ongame.m_iRoomID = Network.Myplayer.m_iRoomID; ongame.m_iTableID = Network.gameInfo_sitdown.m_iTableID; ongame.m_icmd = (int)GameID.Boom; ongame.gameDataLength = msgBytes.Length; byte[] res; using (MemoryStream stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, ongame); res = stream.ToArray(); } ClientHeader header = new ClientHeader(); header = GetHeader(MessageID.CMD_PLAYGAME, res.Length); connector.SendMsg(header, res); }
public static void Send_Attach(bool boom) { OnGameAttack xmsg = new OnGameAttack(); if (boom == false) { xmsg.m_iPower = GameGOW.Get().BattleMgr.m_pCurrentPlayer.m_pInfo.m_iBombSpeed; xmsg.m_iAngle = GameGOW.Get().BattleMgr.m_pCurrentPlayer.m_pInfo.m_iFireAngle; } else { xmsg.m_iPower = 0; xmsg.m_iAngle = 0; } xmsg.m_iHasBlast = boom; xmsg.m_iBombType = SkillManager.CurrentSkillId; if (xmsg.m_iBombType == (int)SkillManager.SkillType.DoubleBomb) { xmsg.m_iBombCnt = 2; } else if (xmsg.m_iBombType == (int)SkillManager.SkillType.TripleBomb) { xmsg.m_iBombCnt = 3; } else if (xmsg.m_iBombType == (int)SkillManager.SkillType.ThunderBomb) { xmsg.m_iBombCnt = 5; } else { xmsg.m_iBombCnt = 1; } byte[] msgBytes; using (MemoryStream stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, xmsg); msgBytes = stream.ToArray(); } OnGame ongame = new OnGame(); ongame.gameData = msgBytes; ongame.m_iRoomID = Network.Myplayer.m_iRoomID; ongame.m_iTableID = Network.gameInfo_sitdown.m_iTableID; ongame.m_icmd = (int)GameID.Attach; ongame.gameDataLength = msgBytes.Length; byte[] res; using (MemoryStream stream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(stream, ongame); res = stream.ToArray(); } ClientHeader header = new ClientHeader(); header = GetHeader(MessageID.CMD_PLAYGAME, res.Length); connector.SendMsg(header, res); }
public void Play() { string decision; do { Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("Кто начнёт игру? (Ping/Pong)\n"); Console.ResetColor(); decision = Console.ReadLine(); Console.WriteLine(); if (decision != "Ping" && decision != "ping" && decision != "Pong" && decision != "pong") { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Не понятно! Попробуем еще раз...\n"); Console.ResetColor(); } } while (decision != "Ping" && decision != "ping" && decision != "Pong" && decision != "pong"); bool turn; if (decision == "Pong" || decision == "pong") { turn = true; } else { turn = false; } Random rnd = new Random(); int probability; bool ball; do { // вероятность, что текущий игрок отобъет подачу 4:5 probability = rnd.Next(1, 11); // определение отбита подача или нет if (probability > 2) { ball = true; } else { ball = false; } OnGame?.Invoke(turn, ball); // смена хода if (turn) { turn = false; } else { turn = true; } } while (probability > 2); }