예제 #1
0
        public HttpResponseMessage AddGame()
        {
            gameLogs = new GameLogs();

            try
            {
                frameList = gameLogs.AddNewGame();
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, e.Message));
            }

            var responseMessage = Request.CreateResponse(HttpStatusCode.Created, frameList);

            for (var i = 0; i < Request.RequestUri.Segments.Length - 1; i++)
            {
                request += Request.RequestUri.Segments[i];
            }

            response = Request.RequestUri.Scheme + "://" + Request.RequestUri.Authority + request + frameList.Id;

            responseMessage.Headers.Location = new Uri(response);
            return(responseMessage);
        }
예제 #2
0
        public HttpResponseMessage AddFrame(string id, [FromBody] Rolls frame)
        {
            gameLogic = new GameLogic();
            gameLogs  = new GameLogs();

            if (frame == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "No Input"));
            }
            frameList = gameLogs.GameId(id);
            if (frameList == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Please create a game first!"));
            }

            try
            {
                gameLogic.ControllInput(frame);
                frameList.RollsList.Add(frame);
                AddRollsFrame(frame);
            }

            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, e.Message));
            }
            gameLogs.SaveLogs();

            return(Request.CreateResponse(HttpStatusCode.Created, frameList));
        }
예제 #3
0
 void Start()
 {
     gamesLogs   = SaveManager.GetAllLogs(fileName);
     gameCurrent = gamesLogs.games[0];
     indexLogs   = 0;
     logCurrent  = gameCurrent.logs[indexLogs];
     state       = State.PLAYING;
 }
예제 #4
0
        public DraftKingsPlayerSelection(LineUpData player, List <PlayerGameLog> gameLogs)
        {
            Tier       = player.Tier;
            PlayerName = player.Name;
            HomeOrAway = player.HomeTeam == player.Team ? "Home" : "Away";
            GameLogs   = gameLogs.OrderByDescending(x => x.GameInfo.Date).ToList();

            AvgFPLast10 = Statistics.Mean(GameLogs.Select(x => CalculateFanPoints(x)));
            VarFPLast10 = Statistics.Variance(GameLogs.Select(x => CalculateFanPoints(x)));
        }
예제 #5
0
        public void Test_if_ID_Exist_not_exist()
        {
            GameLogs gameLogs = new GameLogs();

            try
            {
                gameLogs.GameId("c42b7522-3f3a-43bb-a572-xxxxxxxxx");
            }
            catch (Exception e)
            {
                Assert.AreEqual(e.Message, "no ID found");
            }
        }
예제 #6
0
        public void Test_if_ID_Exist()
        {
            GameLogs gameLogs = new GameLogs();

            try
            {
                gameLogs.GameId("c42b7522-3f3a-43bb-a572-bfd437da2817");
            }
            catch (Exception e)
            {
                Assert.AreEqual(e.Message, "ID OK");
            }
        }
        private void SaveGameLogs()
        {
            try
            {
                LogFileWriter writer = new LogFileWriter();
                Logger.Info(Language.Instance.GetMessageFromKey("SAVE_GAMELOGS"));
                List <GameLogEntry> tmp = GameLogs.GetAllItems();
                GameLogs.Clear();
                DateTime current = DateTime.UtcNow;

                string path = "gamelogs";
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                path = Path.Combine(path, current.Year.ToString());
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                path = Path.Combine(path, current.Month.ToString());
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                path = Path.Combine(path, current.Day.ToString());
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                writer.WriteLogFile(
                    Path.Combine(path,
                                 $"{(current.Hour < 10 ? $"0{current.Hour}" : $"{current.Hour}")}.{(current.Minute < 10 ? $"0{current.Minute}" : $"{current.Minute}")}.ong"),
예제 #8
0
 // Use this for initialization
 void Start()
 {
     currentGameLogs = new GameLogs();
 }
예제 #9
0
 public void AddGame(GameLogs game)
 {
     games.Add(game);
 }
예제 #10
0
        public void RecordLog(GameLogs log, Board board)
        {
            AppendRecordsLine($"[Round: {log.Round}] | [Player: {log.currentPlayer.Name} {log.currentPlayer.Id} : {log.currentPlayer.Gold}]");
            switch (log.Type)
            {
            case LogEventType.AddPlayer:
                AppendRecordsLine($"[{log.ID}] | 添加玩家:{log.PlayerName}, {log.Info}");
                break;

            case LogEventType.Move:
                Card card = board.BoardMap[log.EndPoint].PositionCard;
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 移动: from {log.StartPoint} to {log.EndPoint}");
                RecordCard(card);
                break;

            case LogEventType.IdolContract:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 签约艺人: {log.CardEvent.Id},花费 ${log.CardEvent.InitCost}");
                break;

            case LogEventType.RoundReward:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 获得初始点奖励 {log.GoldWin}");
                break;

            case LogEventType.GoldChange:
                if (log.CpLoss == 0)
                {
                    AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 回合支付结算,{log.PayFrom} 向 {log.PayTo} 支付 ${log.GoldLoss}");
                }
                else
                {
                    AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 回合支付结算,{log.PayFrom} 向 {log.PayTo} 支付 ${log.GoldLoss} + CP: ${log.CpLoss}");
                }
                break;

            case LogEventType.LevelUp:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 对艺人{log.LevelChangePositionNo}进行升级,lv{log.LevelUpFrom} - lv{log.LevelUpTo},花费${log.CardEvent.LevelUpCost}");
                break;

            case LogEventType.ChanceCardWin:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 获得机会卡 {log.ChanceCardWin}");
                break;

            case LogEventType.ChanceCardUse:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 使用机会卡 {log.ChanceCardUse}");
                break;

            case LogEventType.ChangeCardTrigger:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 触发命运卡 {log.ChangeCardTrigger}");
                break;

            case LogEventType.StartGame:
                AppendRecordsLine($"[{log.ID}] 游戏开始,欢迎来到 - 杨村大富翁");
                break;

            case LogEventType.PositionFix:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 位置修正 {log.Info}");
                break;

            case LogEventType.PlayerFix:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 信息修正 {log.Info}");
                break;

            case LogEventType.GoldFix:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} 金币修正 {log.Info}");
                break;

            case LogEventType.LevelFix:
                AppendRecordsLine($"[{log.ID}] |艺人 {log.LevelChangePositionNo} 等级修正 {log.Info}");
                break;

            case LogEventType.IdolOwnerFix:
                AppendRecordsLine($"[{log.ID}] |艺人 {log.LevelChangePositionNo} 所属经纪人修正 {log.Info}");
                break;

            case LogEventType.BackHome:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} :{log.Info}");
                break;

            case LogEventType.Holiday:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} :{log.Info}");
                break;

            case LogEventType.HolidayEnd:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} :{log.Info}");
                break;

            case LogEventType.Education:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} :{log.Info}");
                break;

            case LogEventType.Mortgage:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} :{log.Info}");
                break;

            case LogEventType.Redeem:
                AppendRecordsLine($"[{log.ID}] |玩家 {log.PlayerName} :{log.Info}");
                break;

            default:
                break;
            }
        }