static void BeforeTest() { //DBInfomationHandler testDB = new DBInfomationHandler(ConfigurationManager.AppSettings.Get("ConectionDBString")); //testDB.GetHandGameList(0, 100); DBLoginInfo info = FBAPI.GetUserData("EAACEdEose0cBAOVYZANbS25LytZBtVhG0Gs6dhYkXN3rpXpkxNZAiYhZByg8ocHCBRJqJjmZA66x7BZC3A7M4Fmr1eg5RtGrOJz1GFM7x6O5a4bw8iRlOa7iwVOR6HOoKYD6UvjvuWyLduJuM77MQDLL7N7ZABdWaU2Qp25bpyruwZDZD"); int ibreak = 999; string left = ""; string right = ""; GameReferee.GetWinner_IndianHoldem("4:18:3", "6", ref left, ref right); int[] commcard = { 29, 45, 27, 21, 50, 30, 44 }; int[] usercard = { 30, 44 }; Array.Sort(commcard, delegate(int left1, int right1) { int leftScore = GameReferee.GetPokerCardInfo(left1)[0]; int rightScore = GameReferee.GetPokerCardInfo(right1)[0]; return(leftScore.CompareTo(rightScore)); }); GameHandInfo gamehInfo = GameReferee.GetPokerCardScore(commcard, usercard); ibreak = 9; }
public void PlayerAtack(Player enemy, int x, int y) { if (!GameReferee.PlayerTurn(this) && GameReferee.NextAttacking != null) { throw new Exception("Now not YOU PIDR..."); } if (enemy.map.PlayedIntMap[x, y] == 1) { enemy.map.PlayedIntMap[x, y] = 2; } else { enemy.map.PlayedIntMap[x, y] = 9; } GameReferee.NextAttacking = enemy; }
/* Вернёт true если туда МОЖНО установить корабль * false если нельзя*/ private bool ShipCheck(int x, int y, int len) { if ( GameReferee.PlayerReadyCheck() == true || ShipsSetCounter[len - 1] <= 0 || PlayedIntMap[x + 1, y] != 0 || PlayedIntMap[x - 1, y] != 0 || PlayedIntMap[x - 1, y - 1] != 0 || PlayedIntMap[x - 1, y + 1] != 0 || PlayedIntMap[x, y - 1] != 0 || PlayedIntMap[x, y + 1] != 0 || PlayedIntMap[x + 1, y + 1] != 0 || PlayedIntMap[x + 1, y - 1] != 0 || PlayedIntMap[x, y] != 0) { return(false); } return(true); }
public void Awake() { Instance = this; }
public GameController() { parentSpace = "/api/game"; dbhandler = new DBGameHandler(ConfigurationManager.AppSettings.Get("ConectionDBString")); Post[parentSpace + "/tabbonus", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); string playerAuthToken = (string)payload["playerAuthToken"]; BonusOK info = null; Task t = Task.Run(() => { info = dbhandler.sp_tabbonus(playerAuthToken); }); await t; if (info == null) { return(new WebException("rungame failed", 401)); } if (info.statusCode != 200) { return(new WebException("rungame failed", info.statusCode)); } return(info); }; Post[parentSpace + "/daybonus", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); string playerAuthToken = (string)payload["playerAuthToken"]; BonusOK info = null; Task t = Task.Run(() => { info = dbhandler.sp_daybonus(playerAuthToken); }); await t; if (info == null) { return(new WebException("rungame failed", 401)); } if (info.statusCode != 200) { return(new WebException("rungame failed", info.statusCode)); } return(info); }; //가위바위보게임 Post[parentSpace + "/creategame", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int mainType = (int)payload["mainType"]; int gameType = (int)payload["gameType"]; string gameTitle = (string)payload["gameTitle"]; string gameMemo_left = (string)payload["gameMemo_left"]; int gameCount = (int)payload["gameCount"]; int gameMoneyAmount = (int)payload["gameMoneyAmount"]; string gameFlag_left1 = (string)payload["gameFlag_left1"]; int appendtime = (int)payload["appendtime"]; string creatorAuthToken = (string)payload["creatorAuthToken"]; if (mainType == 0) { if (gameCount > 5 || gameCount < 1) { return(new WebException("gameCount Limit", 10)); } if (gameMoneyAmount > 1000 || gameMoneyAmount < 1) { return(new WebException("gameMoneyAmount Limit", 11)); } } else { if (gameCount > 20 || gameCount < 1) { return(new WebException("gameCount Limit", 20)); } if (gameMoneyAmount > 1000000000 || gameMoneyAmount < 1) { return(new WebException("gameMoneyAmount Limit", 11)); } } WebOK info = null; Task t = Task.Run(() => { info = dbhandler.sp_creategame(mainType, gameType, gameTitle, gameMemo_left, gameCount, gameMoneyAmount, gameFlag_left1, appendtime, creatorAuthToken); }); await t; if (info == null) { return(new WebException("creategame failed", 401)); } return(info.ToString()); }; Post[parentSpace + "/rungame", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int gameID = (int)payload["gameID"]; string gameFlag_right1 = (string)payload["gameFlag_right1"]; string playerAuthToken = (string)payload["playerAuthToken"]; string gameMemo_right = (string)payload["gameMemo_right"]; GameInfo gameInfo = dbhandler.getGameInfo(0, gameID); string result1 = "", result2 = ""; int whoWinner = GameReferee.GetWinner(gameInfo.gameType, gameInfo.gameData, gameFlag_right1, ref result1, ref result2); WebOK info = null; string userIp = Request.UserHostAddress; Task t = Task.Run(() => { info = dbhandler.sp_rungame(gameID, gameFlag_right1, playerAuthToken, gameMemo_right, whoWinner, userIp); }); await t; if (info == null) { return(new WebException("rungame failed", 401)); } if (info.statusCode != 200) { return(new WebException("rungame failed", info.statusCode)); } GameResult gameResult = new GameResult(); gameResult.whoWinner = whoWinner; gameResult.gameFlag_left1 = gameInfo.gameData; gameResult.gameFlag_right1 = gameFlag_right1; gameResult.gameMoneyAmount = gameInfo.gameMoneyAmount; return(gameResult); }; Post[parentSpace + "/runpublichandgame", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int gameID = (int)payload["gameID"]; string gameFlag_right1 = (string)payload["gameFlag_right1"]; string memberNick_right = (string)payload["memberNick_right"]; string gameMemo_right = (string)payload["gameMemo_right"]; GameInfo gameInfo = null; Task t = Task.Run(() => { gameInfo = dbhandler.getGameInfo(0, gameID); }); await t; if (gameInfo == null) { return(new WebException("rungame failed", 401)); } string result1 = "", result2 = ""; int whoWinner = GameReferee.GetWinner(gameInfo.gameType, gameInfo.gameData, gameFlag_right1, ref result1, ref result2); WebOK info = null; Task t2 = Task.Run(() => { info = dbhandler.sp_runPublicHandGame(gameID, gameFlag_right1, memberNick_right, gameMemo_right, whoWinner); }); await t2; if (info == null) { return(new WebException("rungame failed", 401)); } if (info.statusCode != 200) { return(new WebException("rungame failed", info.statusCode)); } GameResult gameResult = new GameResult(); gameResult.whoWinner = whoWinner; gameResult.gameFlag_left1 = gameInfo.gameData; gameResult.gameFlag_right1 = gameFlag_right1; gameResult.gameMoneyAmount = gameInfo.gameMoneyAmount; return(gameResult); }; //인디언홀덤 Post[parentSpace + "/createIndianHoldem", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int mainType = (int)payload["mainType"]; string gameTitle = (string)payload["gameTitle"]; //string gameData = (string)payload["gameData"]; int gameCount = (int)payload["gameCount"]; int gameMoneyAmount = (int)payload["gameMoneyAmount"]; string creatorAuthToken = (string)payload["creatorAuthToken"]; //Get Card string gameData = GameReferee.GetIndianGameCard(null); if (mainType == 0) { if (gameCount > 5 || gameCount < 1) { return(new WebException("gameCount Limit", 10)); } if (gameMoneyAmount > 1000 || gameMoneyAmount < 1) { return(new WebException("gameMoneyAmount Limit", 11)); } } else { if (gameCount > 20 || gameCount < 1) { return(new WebException("gameCount Limit", 10)); } if (gameMoneyAmount > 1000000 || gameMoneyAmount < 1) { return(new WebException("gameMoneyAmount Limit", 11)); } } GameInfo info = null; Task t = Task.Run(() => { info = dbhandler.sp_CreateIndianHoldem(mainType, gameTitle, gameData, gameCount, gameMoneyAmount, creatorAuthToken); }); await t; if (info == null) { return(new WebException("creategame failed", 401)); } return(info); }; Post[parentSpace + "/editIndianHoldem", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int gameAction = (int)payload["gameAction"]; // 0:half 1:call 2:double string creatorAuthToken = (string)payload["creatorAuthToken"]; int gameID = (int)payload["gameID"]; WebOK info = null; Task t = Task.Run(() => { info = dbhandler.sp_EdtIndianHoldem(gameID, gameAction, creatorAuthToken); }); await t; if (info == null) { return(new WebException("rungame failed", 401)); } if (info.statusCode != 200) { return(new WebException("rungame failed", info.statusCode)); } return(info); }; Post[parentSpace + "/runIndianHoldem", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int gameID = (int)payload["gameID"]; //string joinerGameData = (string)payload["joinerGameData"]; string joinerMemo = (string)payload["joinerMemo"]; string joinerAuthToken = (string)payload["joinerAuthToken"]; int gameAction = (int)payload["gameAction"]; GameInfo gameInfo = dbhandler.getGameInfo(1, gameID); string joinerGameData = GameReferee.GetIndianGameCard(gameInfo.gameData); string joinerHandStr = ""; string cratorHandStr = ""; int whoWinner = GameReferee.GetWinner(gameInfo.gameType, gameInfo.gameData, joinerGameData, ref cratorHandStr, ref joinerHandStr); //Super Fold if (gameAction == 2) { if (whoWinner == 1) { whoWinner = 2; } else if (whoWinner == 2) { whoWinner = 1; } } string userIp = Request.UserHostAddress; WebOK info = null; Task t = Task.Run(() => { info = dbhandler.sp_RunIndianHoldem(gameID, joinerGameData, joinerMemo, joinerAuthToken, whoWinner, gameAction, cratorHandStr, joinerHandStr, userIp); }); await t; if (info == null) { return(new WebException("rungame failed", 401)); } if (info.statusCode != 200) { return(new WebException("rungame failed", info.statusCode)); } GameResult gameResult = new GameResult(); gameResult.whoWinner = whoWinner; gameResult.gameFlag_left1 = gameInfo.gameData; gameResult.gameFlag_right1 = joinerGameData; int fixGameMoneyAmount = gameInfo.gameMoneyAmount; if (gameAction == 0) { fixGameMoneyAmount = fixGameMoneyAmount / 2; } gameResult.gameMoneyAmount = fixGameMoneyAmount; gameResult.result_left = cratorHandStr; gameResult.result_right = joinerHandStr; return(gameResult); }; //Todo:Remove(네이밍 잘못함) Post[parentSpace + "/runIndpublicianHoldem", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int gameID = (int)payload["gameID"]; //string joinerGameData = (string)payload["joinerGameData"]; string joinerMemo = (string)payload["joinerMemo"]; int gameAction = (int)payload["gameAction"]; string joinerNick = (string)payload["joinerNick"]; string joinerAvatar = (string)payload["joinerAvatar"]; GameInfo gameInfo = dbhandler.getGameInfo(1, gameID); string joinerGameData = GameReferee.GetIndianGameCard(gameInfo.gameData); string joinerHandStr = ""; string cratorHandStr = ""; int whoWinner = GameReferee.GetWinner(gameInfo.gameType, gameInfo.gameData, joinerGameData, ref cratorHandStr, ref joinerHandStr); //Super Fold if (gameAction == 2) { if (whoWinner == 1) { whoWinner = 2; } else if (whoWinner == 2) { whoWinner = 1; } } WebOK info = null; Task t = Task.Run(() => { //sp_RunPublicIndianHoldem info = dbhandler.sp_RunPublicIndianHoldem(gameID, joinerGameData, joinerMemo, whoWinner, gameAction, cratorHandStr, joinerHandStr, joinerNick, joinerAvatar); }); await t; if (info == null) { return(new WebException("rungame failed", 401)); } if (info.statusCode != 200) { return(new WebException("rungame failed", info.statusCode)); } GameResult gameResult = new GameResult(); gameResult.whoWinner = whoWinner; gameResult.gameFlag_left1 = gameInfo.gameData; gameResult.gameFlag_right1 = joinerGameData; int fixGameMoneyAmount = gameInfo.gameMoneyAmount; if (gameAction == 0) { fixGameMoneyAmount = fixGameMoneyAmount / 2; } gameResult.gameMoneyAmount = fixGameMoneyAmount; gameResult.result_left = cratorHandStr; gameResult.result_right = joinerHandStr; return(gameResult); }; Post[parentSpace + "/runPublicIndianHoldem", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int gameID = (int)payload["gameID"]; //string joinerGameData = (string)payload["joinerGameData"]; string joinerMemo = (string)payload["joinerMemo"]; int gameAction = (int)payload["gameAction"]; string joinerNick = (string)payload["joinerNick"]; string joinerAvatar = (string)payload["joinerAvatar"]; GameInfo gameInfo = dbhandler.getGameInfo(1, gameID); string joinerGameData = GameReferee.GetIndianGameCard(gameInfo.gameData); string joinerHandStr = ""; string cratorHandStr = ""; int whoWinner = GameReferee.GetWinner(gameInfo.gameType, gameInfo.gameData, joinerGameData, ref cratorHandStr, ref joinerHandStr); //Super Fold if (gameAction == 2) { if (whoWinner == 1) { whoWinner = 2; } else if (whoWinner == 2) { whoWinner = 1; } } WebOK info = null; Task t = Task.Run(() => { //sp_RunPublicIndianHoldem info = dbhandler.sp_RunPublicIndianHoldem(gameID, joinerGameData, joinerMemo, whoWinner, gameAction, cratorHandStr, joinerHandStr, joinerNick, joinerAvatar); }); await t; if (info == null) { return(new WebException("rungame failed", 401)); } if (info.statusCode != 200) { return(new WebException("rungame failed", info.statusCode)); } GameResult gameResult = new GameResult(); gameResult.whoWinner = whoWinner; gameResult.gameFlag_left1 = gameInfo.gameData; gameResult.gameFlag_right1 = joinerGameData; int fixGameMoneyAmount = gameInfo.gameMoneyAmount; if (gameAction == 0) { fixGameMoneyAmount = fixGameMoneyAmount / 2; } gameResult.gameMoneyAmount = fixGameMoneyAmount; gameResult.result_left = cratorHandStr; gameResult.result_right = joinerHandStr; return(gameResult); }; //QHoldem Post[parentSpace + "/getPokerCards", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int cardCnt = (int)payload["cardCnt"]; string result = GameReferee.GetPokerCard(cardCnt, null); return(result); }; Post[parentSpace + "/createQHoldem", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int mainType = (int)payload["mainType"]; string gameTitle = (string)payload["gameTitle"]; string gameData = (string)payload["gameData"]; int gameCount = (int)payload["gameCount"]; int gameMoneyAmount = (int)payload["gameMoneyAmount"]; string creatorAuthToken = (string)payload["creatorAuthToken"]; //Get Card //string gameData = GameReferee.GetIndianGameCard(null); if (mainType == 0) { if (gameCount > 5 || gameCount < 1) { return(new WebException("gameCount Limit", 10)); } if (gameMoneyAmount > 1000 || gameMoneyAmount < 1) { return(new WebException("gameMoneyAmount Limit", 11)); } } else { if (gameCount > 20 || gameCount < 1) { return(new WebException("gameCount Limit", 10)); } if (gameMoneyAmount > 1000000 || gameMoneyAmount < 1) { return(new WebException("gameMoneyAmount Limit", 11)); } } GameInfo info = null; Task t = Task.Run(() => { info = dbhandler.sp_CreateQHoldem(mainType, gameTitle, gameData, gameCount, gameMoneyAmount, creatorAuthToken); }); await t; if (info == null) { return(new WebException("creategame failed", 401)); } return(info); }; Post[parentSpace + "/runQHoldem", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int gameID = (int)payload["gameID"]; int joinerGameData = (int)payload["joinerGameData"]; string joinerMemo = (string)payload["joinerMemo"]; string joinerAuthToken = (string)payload["joinerAuthToken"]; GameInfo gameInfo = dbhandler.getGameInfo((int)eGameType.QHoldem, gameID); int delPos = gameInfo.gameData.IndexOf('-'); string commCardData = GameReferee.GetPokerCard(5, gameInfo.gameData.Remove(delPos, 1)); string[] userCardInfo = gameInfo.gameData.Split('-'); //"1:2-3:4" string pulishCards = ""; string myCards = ""; pulishCards = commCardData + ":" + userCardInfo[0] + "-" + userCardInfo[0]; myCards = commCardData + ":" + userCardInfo[1] + "-" + userCardInfo[1]; string cratorHandStr = ""; string joinerHandStr = ""; int whoWinner = GameReferee.GetWinner(gameInfo.gameType, pulishCards, myCards, ref cratorHandStr, ref joinerHandStr); if (joinerGameData == 0) { if (whoWinner == 1) { whoWinner = 2; } else if (whoWinner == 2) { whoWinner = 1; } } WebOK info = null; Task t = Task.Run(() => { info = dbhandler.sp_RunQHoldem(gameID, joinerGameData, commCardData, joinerMemo, joinerAuthToken, whoWinner, cratorHandStr, joinerHandStr); }); await t; if (info == null) { return(new WebException("rungame failed", 401)); } if (info.statusCode != 200) { return(new WebException("rungame failed", info.statusCode)); } GameResult gameResult = new GameResult(); gameResult.whoWinner = whoWinner; gameResult.gameFlag_left1 = pulishCards; gameResult.gameFlag_right1 = myCards; gameResult.gameMoneyAmount = gameInfo.gameMoneyAmount; gameResult.result_left = cratorHandStr; gameResult.result_right = joinerHandStr; return(gameResult); }; Post[parentSpace + "/runPublicQHoldem", true] = async(parameters, ct) => { IDictionary <string, object> payload = GetPayLoad(); int gameID = (int)payload["gameID"]; int joinerGameData = (int)payload["joinerGameData"]; string joinerMemo = (string)payload["joinerMemo"]; string joinerNick = (string)payload["joinerNick"]; string joinerAvatar = (string)payload["joinerAvatar"]; GameInfo gameInfo = dbhandler.getGameInfo((int)eGameType.QHoldem, gameID); int delPos = gameInfo.gameData.IndexOf('-'); string commCardData = GameReferee.GetPokerCard(5, gameInfo.gameData.Remove(delPos, 1)); string[] userCardInfo = gameInfo.gameData.Split('-'); //"1:2-3:4" string pulishCards = ""; string myCards = ""; pulishCards = commCardData + ":" + userCardInfo[0] + "-" + userCardInfo[0]; myCards = commCardData + ":" + userCardInfo[1] + "-" + userCardInfo[1]; string cratorHandStr = ""; string joinerHandStr = ""; int whoWinner = GameReferee.GetWinner(gameInfo.gameType, pulishCards, myCards, ref cratorHandStr, ref joinerHandStr); if (joinerGameData == 0) { if (whoWinner == 1) { whoWinner = 2; } else if (whoWinner == 2) { whoWinner = 1; } } WebOK info = null; Task t = Task.Run(() => { info = dbhandler.sp_RunPublicQHoldem(gameID, joinerGameData, commCardData, joinerMemo, whoWinner, cratorHandStr, joinerHandStr, joinerNick, joinerAvatar); }); await t; if (info == null) { return(new WebException("rungame failed", 401)); } if (info.statusCode != 200) { return(new WebException("rungame failed", info.statusCode)); } GameResult gameResult = new GameResult(); gameResult.whoWinner = whoWinner; gameResult.gameFlag_left1 = pulishCards; gameResult.gameFlag_right1 = myCards; gameResult.gameMoneyAmount = gameInfo.gameMoneyAmount; gameResult.result_left = cratorHandStr; gameResult.result_right = joinerHandStr; return(gameResult); }; }
public Board(GameReferee gameReferee) { GameReferee = gameReferee; PhysicBoard = GameObject.Find("PhysicBoard"); var onBoardOccupied = new OnBoardOccupied(this); Destructables = new OnBoardDestructible[Height, Width]; for (int y = 0; y < Height; y++) { for (int x = 0; x < Width; x++) { if (y == 0 || y == Height - 1 || x == 0 || x == Width - 1) { Destructables[y, x] = onBoardOccupied; } else { Destructables[y, x] = null; } } } var playerOneNest = new OnBoardNest(1, this); var playerTwoNest = new OnBoardNest(2, this); var playerOneMageTower = new OnBoardMageTower(1, this); var playerTwoMageTower = new OnBoardMageTower(2, this); var playerOneBarrack = new OnBoardBarrack(1, this); var playerTwoBarrack = new OnBoardBarrack(2, this); Destructables[0, 3] = playerTwoNest; Destructables[0, 4] = playerTwoNest; Destructables[Height - 1, 3] = playerOneNest; Destructables[Height - 1, 4] = playerOneNest; Destructables[1, 0] = playerTwoMageTower; Destructables[2, 0] = playerTwoMageTower; Destructables[Height - 2, Width - 1] = playerOneMageTower; Destructables[Height - 3, Width - 1] = playerOneMageTower; Destructables[1, Width - 1] = playerTwoBarrack; Destructables[2, Width - 1] = playerTwoBarrack; Destructables[Height - 2, 0] = playerOneBarrack; Destructables[Height - 3, 0] = playerOneBarrack; Buildings = new OnBoardBuilding[6]; Buildings[0] = playerOneNest; Buildings[1] = playerOneBarrack; Buildings[2] = playerOneMageTower; Buildings[3] = playerTwoNest; Buildings[4] = playerTwoBarrack; Buildings[5] = playerTwoMageTower; }