コード例 #1
0
 //Save HighScore in to DB
 public Task <int> SaveHighScoreAsync(UserScoresModel hs)
 {
     if (hs.ScoreID != 0)
     {
         return(_database.UpdateAsync(hs));
     }
     else
     {
         return(_database.InsertAsync(hs));
     }
 }
コード例 #2
0
        public async Task <UserScoresModel> GetUserScores(string userId)
        {
            var userScores = await _scoresRepo.WhereAsync(s => s.UserId == userId);

            var res = new UserScoresModel()
            {
                UserId = userId
            };

            foreach (var score in userScores)
            {
                res.Scores.Add(new NameScoreModel(score.Game, score.Value));
            }

            return(res);
        }
コード例 #3
0
        async void GetActiveUserInfo()
        {
            //Getting Active User
            UserModel MyUser = await App.Database.GetActiveUserAsync();

            UserNameEtry.Text = MyUser.UserName;

            //User Stats

            //User High Score If the User has Played a Game
            if (await App.Database.CheckUserHS(MyUser.UserID) == false)
            {
                BestScoreLbl.Text = "Best Score: 0";
            }
            else
            {
                UserScoresModel Hscore = await App.Database.GetBestHighScoreByUserAsync(MyUser.UserID);

                BestScoreLbl.Text = "Best Score: " + Hscore.Score;
            }

            FruitLbl.Text = "Total Fruit Eaten: " + MyUser.FruitEaten;
            ChiliLbl.Text = "Total Chilies Eaten: " + MyUser.ChiliesEaten;
        }
コード例 #4
0
ファイル: Logic.cs プロジェクト: MelissaWolf/Snake
        } //Moving2Plyrs ENDS

        //Snake Game Logic 1Plyr
        public async void GameOn1Plyr(string MapName, Label ScoreLbl, BoxView Box, Image GameOverImg, Button[] EndGameMenuBtns, Label[] EndGameMenuTitles, Label[] EndGameMenuResults)
        {
            //Length starts at 0
            int CurrLength = 0;

            //Chilie Cool Down
            int ChiliCoolDown = 0;

            //Placing Snake Head in Center of Grid
            int headY = gridY / 2;
            int headX = gridX / 2;

            //String to contain Direction tail follows
            string tailDir = "";

            //Tails Point
            int tailY = headY + 5;
            int tailX = headX;

            //Sets Up Snake with start length of 5
            for (int i = 0; i < 5; i++)
            {
                if (i == 0)
                { //Places Snake Head
                    TheGrid[((headY + i) * gridX) + headX].Img.Source = SnakeColor + "SnakeHead.png";
                }
                else if (i == 4) //Places Snake Tail
                {
                    TheGrid[((headY + i) * gridX) + headX].Img.Source = SnakeColor + "SnakeTail.png";
                }
                else //Places Snake Bodies
                {
                    TheGrid[((headY + i) * gridX) + headX].Img.Source = SnakeColor + "SnakeBody.png";
                }

                TheGrid[((headY + i) * gridX) + headX].SafeBlock = false;

                tailDir += "U";
            }


            //Gives Users a Chance to Get Ready
            await Task.Delay(3000);


            //Moving Snake while Alive
            while (SnakeAlive == true && GameActive == true)
            {
                //Moving Snake
                var Snake1Info = await MoveSnake(1, headY, headX, tailDir, tailY, tailX, CurrLength, ChiliCoolDown);

                //Updating data
                headY         = Snake1Info.Item1;
                headX         = Snake1Info.Item2;
                tailDir       = Snake1Info.Item3;
                tailY         = Snake1Info.Item4;
                tailX         = Snake1Info.Item5;
                CurrLength    = Snake1Info.Item6;
                ChiliCoolDown = Snake1Info.Item7;

                //Displaying new Score
                ScoreLbl.Text = "Score: " + (CurrLength * 5);
            }
            ScoreLbl.Text = "";
            //Moving Snake while Alive ENDS

            //Gives Users a Chance to See Result
            await Task.Delay(1000);

            //Showing GameOver Box
            Box.IsVisible              = true;
            GameOverImg.IsVisible      = true;
            EndGameMenuResults[0].Text = (CurrLength + 5) + "m";
            EndGameMenuResults[1].Text = Convert.ToString(CurrLength);
            EndGameMenuResults[2].Text = Convert.ToString(ChiliNum);
            EndGameMenuResults[3].Text = Convert.ToString(CurrLength * 5);

            //Making Visible
            for (int i = 0; i < EndGameMenuBtns.Length; i++)
            {
                EndGameMenuBtns[i].IsVisible = true;
            }

            for (int i = 0; i < EndGameMenuTitles.Length; i++)
            {
                EndGameMenuTitles[i].IsVisible = true;
            }

            for (int i = 0; i < EndGameMenuResults.Length - 1; i++)
            {
                EndGameMenuResults[i].IsVisible = true;
            }
            //Showing GameOver Box ENDS

            //Adds Stats to DB
            //Adds/Updates Map High Score

            int MapID = await GetMapID(MapName);

            UserModel MyUser = await App.Database.GetActiveUserAsync();

            if (await App.Database.CheckUserMapHS(MyUser.UserID, MapID) == true)
            {
                UserScoresModel MyCurrHScore = await App.Database.GetBestHighScoreByUserMapAsync(MyUser.UserID, MapID);

                //Only Updates Score if New Score is Better
                if (MyCurrHScore.Score < (CurrLength * 5))
                {
                    await App.Database.SaveHighScoreAsync(new UserScoresModel
                    {
                        ScoreID  = MyCurrHScore.ScoreID,
                        Score    = (CurrLength * 5),
                        MapID    = MapID,
                        UserID   = MyUser.UserID,
                        UserName = MyUser.UserName
                    });

                    EndGameMenuResults[4].IsVisible = true;
                }
            }
            //No Previous Score in DB
            else
            {
                await App.Database.SaveHighScoreAsync(new UserScoresModel
                {
                    ScoreID  = 0,
                    Score    = CurrLength * 5,
                    MapID    = MapID,
                    UserID   = MyUser.UserID,
                    UserName = MyUser.UserName
                });

                EndGameMenuResults[4].IsVisible = true;
            }

            //Updates User
            await App.Database.SaveUserAsync(new UserModel
            {
                UserID       = MyUser.UserID,
                UserName     = MyUser.UserName,
                FruitEaten   = (MyUser.FruitEaten + CurrLength),
                ChiliesEaten = (MyUser.ChiliesEaten + ChiliNum),
                Active       = 1,
                SnakeActive  = ""
            });
        }