Exemple #1
0
    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");
            }
        }
Exemple #3
0
        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));
                    }
                }
            }
        }
Exemple #4
0
    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);
    }
Exemple #5
0
    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);
    }
Exemple #6
0
    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);
    }
Exemple #7
0
    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);
    }
Exemple #8
0
    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);
    }
Exemple #9
0
        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);
        }