// Création d'une partie et ajout dans la liste des parties public static Tuple <Guid, Guid> CreateBattleShipGame(string playerOnePseudo) { // Le créateur de la partie est le premier joueur // il sera inscrit par défaut dans la liste A des joueurs alliés var gamerID = CreateGamer(playerOnePseudo); BattleShipField newBsF = new BattleShipField(1, gamerID); // ajout du joueur ennemi virtuel newBsF.JoinBattle(_cyberPlayer, true); // ajout de la partie à la liste des parties bSfList.Add(newBsF); // renvoie l'ID du créateur et l'ID de la partie return(new Tuple <Guid, Guid>(newBsF.GameID, gamerID)); }
// 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; } }