Пример #1
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     var bw = new BackgroundWorker();
     bw.DoWork += (s, args) =>
     {
         response = new NetworkTask().getGameState();
         if (response == null || response.game_in_progress == false)
         {
             response = new NetworkTask().createGame();
             isNewGame = true;
         }
     };
     bw.RunWorkerCompleted += (s, args) =>
     {
         if (response.game_in_progress == true && !isNewGame)
         {
             StartButton.Content = "Continue Game";
         }
         else
         {
             StartButton.Content = "Start Game";
         }
     };
     bw.RunWorkerAsync();
 }
Пример #2
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            var bw = new BackgroundWorker();

            bw.DoWork += (s, args) =>
            {
                response = new NetworkTask().getGameState();
                if (response == null || response.game_in_progress == false)
                {
                    response  = new NetworkTask().createGame();
                    isNewGame = true;
                }
            };
            bw.RunWorkerCompleted += (s, args) =>
            {
                if (response.game_in_progress == true && !isNewGame)
                {
                    StartButton.Content = "Continue Game";
                }
                else
                {
                    StartButton.Content = "Start Game";
                }
            };
            bw.RunWorkerAsync();
        }
Пример #3
0
        public GameResponse createGame()
        {
            string response = makeHttpRequest("POST", "{}");

            GameResponse state = null;

            DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(GameResponse));
            MemoryStream stream           = new MemoryStream(Encoding.UTF8.GetBytes(response));

            state = (GameResponse)js.ReadObject(stream);

            return(state);
        }
Пример #4
0
        private void waitForOpponent()
        {
            TeardownPage();
            var bw = new BackgroundWorker();

            bw.DoWork += (s, args) =>
            {
                response = new NetworkTask().getGameState();
                while (response.is_game_over == false && response.is_current_players_turn == false)
                {
                    Thread.Sleep(10000);
                    response = new NetworkTask().getGameState();
                }
            };
            bw.RunWorkerCompleted += (s, args) =>
            {
                alreadyCalledWait = false;

                if (response.is_game_over == false)
                {
                    GameStateManager.getInstance().setShouldWait(false);
                    GameStateManager.getInstance().setGameState(response.game_state);
                    stateHasBeenLoaded = false;
                    SetupPage();
                    hidePopup();
                }
                else
                {
                    string myColor = GameState.getInstance().getMyColor() == ChessPiece.Color.BLACK ?
                                     "black" : "white";

                    if (response.winner == myColor)
                    {
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            NavigationService.Navigate(new Uri("/WonPage.xaml", UriKind.Relative));
                        });
                    }
                    else
                    {
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            NavigationService.Navigate(new Uri("/LostPage.xaml", UriKind.Relative));
                        });
                    }
                }
            };
            bw.RunWorkerAsync();
            showPopup("Waiting");
        }
Пример #5
0
        private void waitForOpponent()
        {
            TeardownPage();
            var bw = new BackgroundWorker();
            bw.DoWork += (s, args) =>
            {
                response = new NetworkTask().getGameState();
                while (response.is_game_over == false && response.is_current_players_turn == false)
                {
                    Thread.Sleep(10000);
                    response = new NetworkTask().getGameState();
                }
            };
            bw.RunWorkerCompleted += (s, args) =>
            {
                alreadyCalledWait = false;

                if (response.is_game_over == false)
                {
                    GameStateManager.getInstance().setShouldWait(false);
                    GameStateManager.getInstance().setGameState(response.game_state);
                    stateHasBeenLoaded = false;
                    SetupPage();
                    hidePopup();
                }
                else
                {
                    string myColor = GameState.getInstance().getMyColor() == ChessPiece.Color.BLACK ?
                        "black" : "white";

                    if (response.winner == myColor)
                    {
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            NavigationService.Navigate(new Uri("/WonPage.xaml", UriKind.Relative));
                        });
                    }
                    else
                    {
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            NavigationService.Navigate(new Uri("/LostPage.xaml", UriKind.Relative));
                        });
                    }
                }
            };
            bw.RunWorkerAsync();
            showPopup("Waiting");
        }