public void GameScoreAddNewTurn(int[] pUnifCstmInfo = null)
    {  // 1 at MySocket.arrGameSend, MySocket.arrGameRcvd   each ...
        Ag.LogStartWithStr(7, "  NodeAction  ::  GameScoreAddNewTurn    ");
        bool isMyKick;

        Ag.LogString("         IsGameHost ...  " + MySocket.IsGameHost);

        isMyKick = ((TurnNum % 2 == 0) ^ (MySocket.IsGameHost.Value));
        Ag.LogString(MySocket.mName + " NodeActions :: GameScore . . . . . . . .  ________________________________ ");
        Ag.LogString(MySocket.mName + " NodeActions :: GameScore . . . . . . . .  " + TurnNum.LogWith("Turn") + MySocket.IsGameHost.LogWith("Host? ") + isMyKick.LogWith(" MyKick? "));

        Dlgt_Gen_Obj_Bool <NodeGameBase> dlgtTurnRslt = ( NodeGameBase pObj) => {
            return(pObj.msgType == "TURN_RSLT");
        };

        NodeGameTurnRslt kickNodeRslt, keepNodeRslt;
        NodeGameTurnRslt myRslt = (NodeGameTurnRslt)MySocket.arrGameSend.GetLastMemberWithCond(dlgtTurnRslt);
        NodeGameTurnRslt enRslt = (NodeGameTurnRslt)MySocket.arrGameRcvd.GetLastMemberWithCond(dlgtTurnRslt);

        Ag.LogString("         arrGameSend.count : " + MySocket.arrGameSend.Count + "      Rcvd : " + MySocket.arrGameRcvd.Count);

        bool kickerWin;

        if (isMyKick)
        {
            Ag.LogString("   >>>   I am Kicker   ");
            kickNodeRslt = myRslt;
            keepNodeRslt = enRslt;
        }
        else
        {
            Ag.LogString("   >>>   I am Keeper   ");
            kickNodeRslt = enRslt;
            keepNodeRslt = myRslt;
        }

        kickerWin = AgUtilGame.DidKickerWinThisTurn(kickNodeRslt.direction, kickNodeRslt.skill, keepNodeRslt.direction, keepNodeRslt.skill);   // 골/노골 결정

        Ag.LogString(isMyKick.ShowBool(" I am ", "Kicker", "Keeper") + kickerWin.ShowBool(" Turn : ", "GoalIn", "NoGoal") + "       My Dir/Skl " + myRslt.direction + " / " + myRslt.skill +
                     "       Enem  Dir/Skl " + enRslt.direction + " / " + enRslt.skill);
        Ag.LogString("  Direction in Ag..  Dir / Skl :  " + Ag.mgDirection + "  /  " + Ag.mgSkill);

        int[] myUnCm, enUnCm;

        if (pUnifCstmInfo == null)
        {
            myUnCm = new int[] { 1, 1, 1, 0 };
            enUnCm = new int[] { 1, 1, 1, 0 };
        }
        else
        {
            myUnCm = new int[] { pUnifCstmInfo [0], pUnifCstmInfo [1], pUnifCstmInfo [2], pUnifCstmInfo [3] };
            enUnCm = new int[] { pUnifCstmInfo [4], pUnifCstmInfo [5], pUnifCstmInfo [6], pUnifCstmInfo [7] };
        }

        myGameLogic.AddNewTurn(myRslt, enRslt, 0, myUnCm);
        enGameLogic.AddNewTurn(enRslt, myRslt, 0, enUnCm);

        GameFinish = myGameLogic.DidIFinalWin(enGameLogic);

        if (GameFinish.HasValue)
        {
            Ag.LogIntenseWord(" Game is Finished !!!!!   ");
            float mS, mE;
            GetTotalScore(out mS, out mE);
            Ag.LogString(MySocket.mName + " Total Score :: " + mS + "  /  " + mE);
        }

        int enemD, enemS;

        GetEnemyDirectSkill(out enemD, out enemS);

        Ag.LogString(MySocket.mName + "   Enemy Direct : " + enemD + "   Skill : " + enemS);
        Ag.LogString(MySocket.mName + "   " + MySocket.IsGameHost.ShowBool(" I am ", "Host", "Vstr") + "   Kicker Win ?  " + kickerWin);
        Ag.LogString(MySocket.mName + "   My Score : " + myGameLogic.CurScore + " Enemy Score : " + enGameLogic.CurScore);
        Ag.LogString(MySocket.mName + "   Me : Enemy Goals   << " + myGameLogic.GetGoalNumber() + "  :  " + enGameLogic.GetGoalNumber() + GameFinish.ShowBool(" GameFinish :", "Win", "Lose"));
        Ag.LogString(MySocket.mName + "   NodeActions :: GameScore . . . . . . . .  ________________________________    End   ________");
        Ag.LogIntense(7, false);
    }
Esempio n. 2
0
    public void GameLogic()
    {
        Ag.LogString("//  _////////////////////////////////////////////////_    _____  Test  _____    Score   _____");
        NodeGameTurnRslt my, en;


        int  kickDir = 0, kickSkl, defnDir, defnSkl;
        bool rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, 1, 2);

        rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, kickDir, 2);
        rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, 1, 2);
        rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, 1, 2);
        rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, 1, 2);
        rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, 1, 2);


        Ag.LogIntenseWord(" Test   :::   " + rsss);


        AmGameLogic myLogic = new AmGameLogic("League_3", "League_3");  // 5 - 3 => 2... 3 - 5 => 0 ....  !!!!
        AmGameLogic enLogic = new AmGameLogic("League_3", "League_3");

        Ag.LogStartWithStr(10, " Round 1");
        my = new NodeGameTurnRslt()
        {
            roll = "KICK", direction = 4, skill = 1, grade = "A", level = 2, enchant = 0
        };
        en = new NodeGameTurnRslt()
        {
            roll = "KEEP", direction = 0, skill = 0, grade = "C", level = 2, enchant = 0
        };
        myLogic.AddNewTurn(my, en, 0, new int[] { 1, 1, 1, 1, 0, 0, 0, 0 });  // My Kick, Goal..  Win
        enLogic.AddNewTurn(en, my, 0, new int[] { 0, 0, 0, 0, 1, 1, 1, 1 });
        myLogic.ShowMySelf();
        enLogic.ShowMySelf();

        myLogic.GetTotalScore().ToString().HtLog();
        enLogic.GetTotalScore().ToString().HtLog();

        my = new NodeGameTurnRslt()
        {
            roll = "KEEP", direction = 0, skill = 0, grade = "C", level = 2, enchant = 0
        };
        en = new NodeGameTurnRslt()
        {
            roll = "KICK", direction = 4, skill = 1, grade = "A", level = 2, enchant = 0
        };
        myLogic.AddNewTurn(my, en, 0, new int[] { 0, 0, 0, 0, 1, 1, 1, 1 });  // My Kick, Goal..  Win
        enLogic.AddNewTurn(en, my, 0, new int[] { 1, 1, 1, 1, 0, 0, 0, 0 });
        myLogic.ShowMySelf();
        enLogic.ShowMySelf();
        Ag.LogDouble(" TotalScore : " + myLogic.GetTotalScore() + " Cere : " + myLogic.CeremonyBonus + "  Round : " + myLogic.TotalRound + "   TurnBonus : " + myLogic.UiTurnBonus);

        myLogic.GetTotalScore().ToString().HtLog();
        enLogic.GetTotalScore().ToString().HtLog();



        Ag.LogNewLine(10);

        // N:N => 0:0
        Ag.LogStartWithStr(10, " Round 2");
        my = new NodeGameTurnRslt()
        {
            roll = "KICK", direction = 4, skill = 1, grade = "B", level = 7, enchant = 0
        };
        en = new NodeGameTurnRslt()
        {
            roll = "KEEP", direction = 1, skill = 1, grade = "B", level = 10, enchant = 0
        };
        myLogic.AddNewTurn(my, en, 3, new int[] { 1, 3, 1, 3, 1, 1, 1, 0 });  // My Kick, Goal..  Win
        enLogic.AddNewTurn(en, my, 3, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 });
        my = new NodeGameTurnRslt()
        {
            roll = "KEEP", direction = 2, skill = 1, grade = "D", level = 0, enchant = 0
        };
        en = new NodeGameTurnRslt()
        {
            roll = "KICK", direction = 2, skill = 1, grade = "C", level = 1, enchant = 0
        };
        myLogic.AddNewTurn(my, en, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 });  // My Kick, Goal..  Win
        enLogic.AddNewTurn(en, my, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 });
        myLogic.ShowMySelf();
        enLogic.ShowMySelf();
        Ag.LogDouble(" TotalScore : " + myLogic.GetTotalScore() + " Cere : " + myLogic.CeremonyBonus + "  Round : " + myLogic.TotalRound + "   TurnBonus : " + myLogic.UiTurnBonus);

        // G:G => 1:1
        Ag.LogStartWithStr(10, " Round 3");
        my = new NodeGameTurnRslt()
        {
            roll = "KICK", direction = 4, skill = 1, grade = "B", level = 7, enchant = 0
        };
        en = new NodeGameTurnRslt()
        {
            roll = "KEEP", direction = 1, skill = 1, grade = "B", level = 10, enchant = 0
        };
        myLogic.AddNewTurn(my, en, 2, new int[] { 1, 3, 1, 3, 1, 1, 1, 0 });  // My Kick, Goal..  Win
        enLogic.AddNewTurn(en, my, 2, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 });
        my = new NodeGameTurnRslt()
        {
            roll = "KEEP", direction = 0, skill = 2, grade = "D", level = 0, enchant = 0
        };
        en = new NodeGameTurnRslt()
        {
            roll = "KICK", direction = 1, skill = 1, grade = "C", level = 1, enchant = 0
        };
        myLogic.AddNewTurn(my, en, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 });  // My Kick, Goal..  Win
        enLogic.AddNewTurn(en, my, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 });
        myLogic.ShowMySelf();
        enLogic.ShowMySelf();
        Ag.LogDouble(" TotalScore : " + myLogic.GetTotalScore() + " Cere : " + myLogic.CeremonyBonus + "  Round : " + myLogic.TotalRound + "   TurnBonus : " + myLogic.UiTurnBonus);
        bool?finalWin = myLogic.DidIFinalWin(enLogic);

        if (finalWin.HasValue)
        {
            Ag.LogDouble("   >>>>>>>>>>         Game is Over     Did I Win ? >>  " + finalWin.Value);
        }

        // G:G => 1:1
        Ag.LogStartWithStr(10, " Round 4");
        my = new NodeGameTurnRslt()
        {
            roll = "KICK", direction = 4, skill = 1, grade = "B", level = 7, enchant = 0
        };
        en = new NodeGameTurnRslt()
        {
            roll = "KEEP", direction = 1, skill = 1, grade = "B", level = 10, enchant = 0
        };
        myLogic.AddNewTurn(my, en, 2, new int[] { 1, 3, 1, 3, 1, 1, 1, 0 });  // My Kick, Goal..  Win
        enLogic.AddNewTurn(en, my, 2, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 });
        myLogic.ShowMySelf();
        enLogic.ShowMySelf();
        Ag.LogDouble(" TotalScore : " + myLogic.GetTotalScore() + " Cere : " + myLogic.CeremonyBonus + "  Round : " + myLogic.TotalRound + "   TurnBonus : " + myLogic.UiTurnBonus);

        finalWin = myLogic.DidIFinalWin(enLogic);
        if (finalWin.HasValue)
        {
            Ag.LogDouble("   >>>>>>>>>>         Game is Over     Did I Win ? >>  " + finalWin.Value);
        }



        my = new NodeGameTurnRslt()
        {
            roll = "KEEP", direction = 1, skill = 2, grade = "D", level = 0, enchant = 0
        };
        en = new NodeGameTurnRslt()
        {
            roll = "KICK", direction = 0, skill = 1, grade = "C", level = 1, enchant = 0
        };
        myLogic.AddNewTurn(my, en, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 });  // My Kick, Goal..  Win
        enLogic.AddNewTurn(en, my, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 });
        myLogic.ShowMySelf();
        enLogic.ShowMySelf();
        Ag.LogDouble(" TotalScore : Me >> " + myLogic.GetTotalScore() + " Cere : " + myLogic.CeremonyBonus + "  Round : " + myLogic.TotalRound + "   TurnBonus : " + myLogic.UiTurnBonus);
        Ag.LogDouble(" TotalScore : En >> " + enLogic.GetTotalScore() + " Cere : " + enLogic.CeremonyBonus + "  Round : " + enLogic.TotalRound + "   TurnBonus : " + enLogic.UiTurnBonus);


//        bool? finalWin = myLogic.DidIFinalWin (enLogic);
//        if (finalWin.HasValue)
//            Ag.LogIntenseWord ("   >>>>>>>>>>         Game is Over     Did I Win ? >>  " + finalWin.Value);
//
//        (myLogic.GetTotalScore ().LogWith (" My Total Score ") + enLogic.GetTotalScore ().LogWith (" Enemy Score")).HtLog ();
//        (myLogic.SemiTotal.LogWith ("myLogic.SemiTotal") + "  UI Turn Bonus  " + myLogic.UiTurnBonus).HtLog ();
//        Ag.LogNewLine (2);
    }