示例#1
0
        }         //End_Method

        /// <summary>
        /// 作戦ターン中,定期的にサーバに現在のエージェント情報を送信する
        /// </summary>
        private static void ProcessOfActionSend()
        {
            //情報送信
            var json = JsonToMyFormat.AgentBehaviorsToJsonForSendToServer(GameMaster.Table.MyTeam.Agents);

            Console.WriteLine("jsondata");
            Console.WriteLine(json);
            bool flag;

            Task.Run(() => ComuSaba.SendActionInformationAsync(json, out flag));
        }         //End_Method
示例#2
0
        }         //End_Method

        /// <summary>
        /// 試合事前情報を取得する
        /// </summary>
        private static bool GetAdvancedGameInfo()
        {
            bool flag;
            var  json = ComuSaba.GetAdvanceInformation(out flag);

            //正常に取得できればGameMasterに反映
            if (flag && json != "")
            {
                JsonToMyFormat.AdvancedGameInfoToVariableOfMyGameMaster(json);
                GameMaster.IsAlreadyGotGameInfo = true;
            }             //ガバ
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("試合事前情報取得失敗");
                Console.ForegroundColor = ConsoleColor.White;
            }     //End_IfElse
            return(flag);
        }         //End_Method
示例#3
0
        }         //End_Method

        /// <summary>
        /// 現在の盤面情報を取得する
        /// </summary>
        /// <returns></returns>
        private static bool GetFieldInfo()
        {
            //すでに取得してたらなにもしない
            if (GameMaster.IsAlreadyGotFiledInfo)
            {
                Console.WriteLine("このターンはすでにフィールド情報を取得していますよ");
                return(false);
            }             //End_If
            bool flag;
            var  json = ComuSaba.GetFieldInformationEachTurn(out flag);

            //正常に取得できればフィールドを更新
            if (flag && json != "")
            {
                GameMaster.Table = JsonToMyFormat.FieldInfoToMyGameTable(json);
            }             //ガバ
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("フィールド情報取得失敗");
                Console.ForegroundColor = ConsoleColor.White;
            }     //End_IfElse
            return(flag);
        }         //End_Method
示例#4
0
        }         //End_Method

        /// <summary>
        /// 送受信,表示等のコマンドを受け付ける
        /// </summary>
        /// <returns></returns>
        public static bool CommandRequest()
        {
            Console.WriteLine("コマンド入力受付開始____");
            while (true)
            {
                var input = Console.ReadLine();

                //終了コマンド
                if (input == "kill")
                {
                    return(true);
                }                                                     //End_If

                //試合事前情報取得
                else if (input == "gameinfo" || input == "game" || input == "g")
                {
                    GameMaster.GetAdvancedGameInfo();
                }                 //End_ElseIf

                //フィールド情報取得
                else if (input == "fieldinfo" || input == "field" || input == "f")
                {
                    GameMaster.GetFieldInfo();
                    GameMaster.IsAlreadyGotFiledInfo = true;
                }                 //End_ElseIf

                //現在のエージェントの行動情報を送信
                else if (input == "sendaction" || input == "send" || input == "s")
                {
                    //正常動作(オブジェクトが作られている(gameinfo,fieldinfoが実行されている)
                    if (GameMaster.Table != null && GameMaster.Table.MyTeam != null && GameMaster.Table.MyTeam.Agents != null)
                    {
                        var  json = JsonToMyFormat.AgentBehaviorsToJsonForSendToServer(GameMaster.Table.MyTeam.Agents);
                        bool flag;
                        var  task = Task.Run(() => {
                            ComuSaba.SendActionInformationAsync(json, out flag);
                            Console.WriteLine("Send Action JSON");
                            Console.WriteLine(json);
                        });
                    }                     //だめです
                    else
                    {
                        Console.WriteLine("GameMaster.Table.MyTeam.Agents がnullです");
                        Console.WriteLine("gameinfo, fieldinfoがすでに実行されているか確認してください");
                    }             //End_IfElse
                }                 //End_ElseIf

                //接続確認
                else if (input == "ping" || input == "p")
                {
                    bool flag;
                    var  json = ComuSaba.SendPing(out flag);
                    Console.WriteLine("Ping : " + json);
                }                 //End_ElseIf

                //試合開始
                else if (input == "gamestart")
                {
                    if (GameMaster.IsAlreadyStartedGame)
                    {
                        Console.WriteLine("すでに試合開始コマンドは受理されてますよ");
                        continue;
                    }                     //End_If

                    GameMaster.GameStart();
                    GameMaster.IsAlreadyStartedGame = true;
                }                 //End_ElseIf

                //ガバ入力
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Unexpected Input");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("試合開始 :gamestart");
                    Console.WriteLine("試合事前情報取得 : gameinfo  or  game  or  g");
                    Console.WriteLine("試合状態取得 : fieldinfo  or  field  or  f");
                    Console.WriteLine("行動情報送信 : sendaction  or  send  or  s");
                    Console.WriteLine("接続確認 : ping  or  p");
                }                 //End_IfElse

                //整形
                Console.WriteLine();
            }     //End_Whille
        }         //End_Method