示例#1
0
        private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
        {
            if (IfWorking == false && GameViewModel.IsGameOver == false)
            {
                IfWorking = true;
                var   ArenaCell = (SKCanvasView)sender;
                int[] index     = new int[2] {
                    int.Parse(ArenaCell.StyleId[0].ToString()), int.Parse(ArenaCell.StyleId[1].ToString())
                };
                if (GameViewModel.ArenaMatrix[index[0], index[1]] != ' ')
                {
                    IfWorking = false;
                    return;
                }
                ArenaCell.AnchorX   = 0;
                ArenaCell.RotationY = 0;
                ArenaCell.RotateYTo(360, 500, Easing.Linear);
                ArenaCell.AnchorX             = 0.5;
                TurnButtonLayout.TranslationY = 0;
                GameViewModel.UpdateGameArena(index);
                ArenaCell.InvalidateSurface();

                if (GameViewModel.IsGameOver)
                {
                    if (GameViewModel.GameResult == 'P')
                    {
                        GameViewModel.PlayerWins++;
                        GameViewModel.OpponentLoses++;
                        Application.Current.Properties["temp1"] = GameViewModel.PlayerWins.ToString();
                        DisplayAlert("Game Over", GameViewModel.PlayerName + " won!!", "Okay");
                    }
                    else if (GameViewModel.GameResult == 'O')
                    {
                        GameViewModel.PlayerLoses++;
                        GameViewModel.OpponentWins++;
                        Application.Current.Properties["temp2"] = GameViewModel.PlayerLoses.ToString();
                        DisplayAlert("Game Over", GameViewModel.OpponentName + " won!!", "Okay");
                    }
                    else
                    {
                        GameViewModel.PlayerTies++;
                        GameViewModel.OpponentTies++;
                        Application.Current.Properties["temp3"] = GameViewModel.PlayerTies.ToString();
                        DisplayAlert("Game Over", " It's a tie!!", "Okay");
                    }
                }

                IfWorking = false;
            }
        }
 private async Task PrintArenaAsync(SKCanvasView ArenaCell)
 {
     int[] index = new int[2] {
         int.Parse(ArenaCell.StyleId[0].ToString()), int.Parse(ArenaCell.StyleId[1].ToString())
     };
     if (GameViewModel.ArenaMatrix[index[0], index[1]] != ' ')
     {
         IfFailure = true;
         IfWorking = false;
         GameViewModel.Filled--;
         return;
     }
     ArenaCell.AnchorX   = 0;
     ArenaCell.RotationY = 0;
     ArenaCell.RotateYTo(360, 500, Easing.Linear);
     ArenaCell.AnchorX             = 0.5;
     TurnButtonLayout.TranslationY = 0;
     GameViewModel.UpdateGameArena(index);
     ArenaCell.InvalidateSurface();
     if (GameViewModel.IsGameOver)
     {
         if (GameViewModel.GameResult == 'P')
         {
             GameViewModel.PlayerWins++;
             GameViewModel.OpponentLoses++;
             Application.Current.Properties["SingleHardWinsCount"] = ((long.Parse(Application.Current.Properties["SingleHardWinsCount"] as string)) + 1).ToString();
             Application.Current.Properties["SingleHardWins"]      = ((long.Parse(Application.Current.Properties["SingleHardWins"] as string)) + 1).ToString();
             DisplayAlert("Game Over", GameViewModel.PlayerName + " won!!", "Okay");
         }
         else if (GameViewModel.GameResult == 'O')
         {
             GameViewModel.OpponentWins++;
             GameViewModel.PlayerLoses++;
             Application.Current.Properties["SingleHardLosesCount"] = ((long.Parse(Application.Current.Properties["SingleHardLosesCount"] as string)) + 1).ToString();
             Application.Current.Properties["SingleHardLoses"]      = ((long.Parse(Application.Current.Properties["SingleHardLoses"] as string)) + 1).ToString();
             DisplayAlert("Game Over", GameViewModel.OpponentName + " won!!", "Okay");
         }
         else
         {
             GameViewModel.PlayerTies++;
             GameViewModel.OpponentTies++;
             Application.Current.Properties["SingleHardTiesCount"] = ((long.Parse(Application.Current.Properties["SingleHardTiesCount"] as string)) + 1).ToString();
             Application.Current.Properties["SingleHardTies"]      = ((long.Parse(Application.Current.Properties["SingleHardTies"] as string)) + 1).ToString();
             DisplayAlert("Game Over", " It's a tie!!", "Okay");
         }
         await Task.Run(async() =>
         {
             string url     = "http://tictactoe.sudeshkumar.me/Android/UpdateStatsMob";
             HttpContent q1 = new FormUrlEncodedContent(new List <KeyValuePair <string, string> >()
             {
                 new KeyValuePair <string, string>("UserName", Application.Current.Properties["UserName"] as string), new KeyValuePair <string, string>("Password", Application.Current.Properties["Password"] as string), new KeyValuePair <string, string>("SingleEasyWinsCount", Application.Current.Properties["SingleEasyWinsCount"] as string), new KeyValuePair <string, string>("SingleEasyLosesCount", Application.Current.Properties["SingleEasyLosesCount"] as string), new KeyValuePair <string, string>("SingleEasyTiesCount", Application.Current.Properties["SingleEasyTiesCount"] as string), new KeyValuePair <string, string>("SingleHardWinsCount", Application.Current.Properties["SingleHardWinsCount"] as string), new KeyValuePair <string, string>("SingleHardLosesCount", Application.Current.Properties["SingleHardLosesCount"] as string), new KeyValuePair <string, string>("SingleHardTiesCount", Application.Current.Properties["SingleHardTiesCount"] as string), new KeyValuePair <string, string>("DoubleWinsCount", Application.Current.Properties["DoubleWinsCount"] as string), new KeyValuePair <string, string>("DoubleLosesCount", Application.Current.Properties["DoubleLosesCount"] as string), new KeyValuePair <string, string>("DoubleTiesCount", Application.Current.Properties["DoubleTiesCount"] as string)
             });
             using (var httpClient = new HttpClient())
             {
                 try
                 {
                     Task <HttpResponseMessage> getResponse = httpClient.PostAsync(url, q1);
                     HttpResponseMessage response           = await getResponse;
                     if (response.IsSuccessStatusCode)
                     {
                         Application.Current.Properties["SingleHardWinsCount"]  = "0";
                         Application.Current.Properties["SingleHardLosesCount"] = "0";
                         Application.Current.Properties["SingleHardTiesCount"]  = "0";
                     }
                 }
                 catch (Exception)
                 {
                 }
             }
         });
     }
 }