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); }
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); }