// Instanciation d'une nouvelle partie public void PlayTheGameAgain() { try { // si la partie est terminée ou a été abortée if (GamesManager.GameStatus == AppDef.GameStatus.Completed || GamesManager.GameStatus == AppDef.GameStatus.Terminated) { // on peut démarrer une nouvelle partie //currentGameStatus = AppDef.GameStatus.Idle; mySea.Repaint(); enemySea.Repaint(); (bSfId, myPlayerID) = GamesManager.CreateBattleShipGame("Name1", int.Parse(Level.Text)); bSF = GamesManager.GetBattleShipGame(bSfId); if (bSF != null) { var playerBoats = bSF.GetBoats(myPlayerID); DisplayPlayerBoats(playerBoats, false); //@TODO: debug affiche les bateaux ennemis var enemiesBoats = bSF.GetEnemiesBoats(myPlayerID); DisplayPlayerBoats(enemiesBoats, true); AppDef.readyPlayerOne = true; GamesManager.GameStatus = AppDef.GameStatus.Running; //@TODO100 EVENT : Gestion d'un évenement de riposte à un tir // STEP4 : inscription de la méthode de riposte qui va être activée par l'évenement bSF.riposteEvent += HandleRiposte; } StartButton.Content = "Stop"; } else { StartButton.Content = "Play"; TextBoxStatus.Text = ""; GamesManager.GameStatus = AppDef.GameStatus.Terminated; } } catch (Exception) { throw; } }
/// <summary> /// Gestion du choix du placement Automatique des bateaux /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void HandleAutoBoatLayout(object sender, RoutedEventArgs e) { CheckBox cbAutoLayout = sender as CheckBox; if (cbAutoLayout.IsChecked == true) { // obtenir un placement automatique des bateaux pour ce joueur var playerBoats = bSF.GetBoats(myPlayerID); DisplayPlayerBoats(playerBoats, false); //@TODO: debug affiche les bateaux ennemis var enemiesBoats = bSF.GetEnemiesBoats(myPlayerID); DisplayPlayerBoats(enemiesBoats, true); } if (cbAutoLayout.IsChecked == false) { // obtenir la liste des bateaux // mettre le jeu en attente de composition manuelle complète // publier la flotte du joueur local // } }