public override void Initialize() { //EstPremierSaut = true; //Tps = 0; //Vector3 positionTmp = new Vector3(0, 0, 0); //ListePositionsRandom = new List<Vector3>(); //ListePositionsRandom.Add(positionTmp); générateurAléatoire = new Random(); Vector3 positionObjet = new Vector3(96, 16.37255f, -96); //Vector3 positionObjet = new Vector3(100, 20, -100); ÉtatJeu = ÉtatsJeu.JEU3D; ÉtatJeuTexte = new TexteFixe(Game, new Vector2(5, 5), "GameState : " + ÉtatJeu.ToString()); //LoadSauvegarde(); Game.Components.Add(new ArrièrePlan(Game, "BackGroundNuage")); Game.Components.Add(new Afficheur3D(Game)); TerrainDeJeu = new TerrainAvecBase(Game, 1f, Vector3.Zero, Vector3.Zero, new Vector3(256, 17, 256), "TerrainPokemon", "DétailsTerrain", 5, INTERVALLE_MAJ_STANDARD); Game.Components.Add(TerrainDeJeu); Game.Services.AddService(typeof(TerrainAvecBase), TerrainDeJeu); //Game.Services.AddService(typeof(Pokeball), Projectile); Game.Components.Add(LeJoueur); Game.Services.AddService(typeof(Player), LeJoueur); GestionInput = Game.Services.GetService(typeof(InputManager)) as InputManager; CaméraJeu = Game.Services.GetService(typeof(Caméra)) as CaméraSubjective; (CaméraJeu as CaméraSubjective).Cible = new Vector3(LeJoueur.Position.X, LeJoueur.Position.Y + 5, LeJoueur.Position.Z); PositionBoxMessage = new Vector2(0, Game.Window.ClientBounds.Height - Cadre.TAILLE_TILE * 6); HauteurBoxMessage = Cadre.HAUTEUR_BOX_STANDARD; LargeurBoxMessage = Game.Window.ClientBounds.Width / Cadre.TAILLE_TILE; Game.Components.Add(ÉtatJeuTexte); }
public override void Update(GameTime gameTime) { ÉtatJeuTexte.RemplacerMessage("GameState : " + ÉtatJeu.ToString()); GérerClavier(); Vector3 positionPokéball = new Vector3(LeJoueur.Position.X + 1.2f, LeJoueur.Position.Y + 0.6f, LeJoueur.Position.Z); Vector3 rotationObjet = new Vector3(0, MathHelper.PiOver2, 0); AjouterProjectile(positionPokéball, rotationObjet); GérerÉtat(); if (Game.Components.Count < POKEMON_SUR_LE_TERRAIN) { if (Game.Components.Count(p => p is Afficheur3D) == 2) { Game.Components.Add(new Afficheur3D(Game)); } AjoutPokemonsRandom(); } if (GestionInput.EstNouvelleTouche(Keys.N) || GestionInput.EstNouveauX_newpokemon()) { AjoutPokemonsRandom(); } EnleverProjectile(); //float TempsÉcoulé = (float)gameTime.ElapsedGameTime.TotalSeconds; //TempsÉcouléDepuisMAJ += TempsÉcoulé; //if (TempsÉcouléDepuisMAJ >= 5) //{ // EffectuerMiseÀJour(); // //TempsÉcouléDepuisMAJ -= IntervalleMAJ; // TempsÉcouléDepuisMAJ = 0; //} base.Update(gameTime); }
static ÉtatJeu AnalyserGrille(char[,] tabGrille) { ÉtatJeu résultat = ÉtatJeu.EnCours; for (int ligne = 0; ligne < tabGrille.GetLength(0) && résultat == ÉtatJeu.EnCours; ++ligne) { if (LigneGagnante(tabGrille, ligne)) { résultat = DéterminerGagnantSelon(tabGrille[ligne, 0]); } } if (résultat == ÉtatJeu.EnCours) { for (int colonne = 0; colonne < tabGrille.GetLength(1) && résultat == ÉtatJeu.EnCours; ++colonne) { if (ColonneGagnante(tabGrille, colonne)) { résultat = DéterminerGagnantSelon(tabGrille[0, colonne]); } } } if (résultat == ÉtatJeu.EnCours) { if (DiagonaleGagnante(tabGrille)) { résultat = DéterminerGagnantSelon(tabGrille[1, 1]); } } if (résultat == ÉtatJeu.EnCours && CasePleine(tabGrille)) { résultat = ÉtatJeu.Nulle; } return(résultat); }
static void Main(string[] args) { const int nbe = 3; Random rnd = new Random(); char[,] tabGrille = new char[nbe, nbe]; char[] Case = { 'X', 'O' }; int tour = 0; Case maCase; ÉtatJeu partie = ÉtatJeu.EnCours; int choix = 0; AfficherMenu(); InitialiserGrille(tabGrille); while (partie == ÉtatJeu.EnCours) { AfficherGrille(tabGrille); choix = Convert.ToInt32(Console.ReadLine()); if (choix == 2) { maCase = ChoisirCaseLibre(tabGrille, rnd); } else { maCase = LireCaseLibre(tabGrille); } Console.WriteLine("{0} a choisi ({1},{2})", choix, maCase.X, maCase.Y); tabGrille[maCase.X, maCase.Y] = Case[tour % 2]; partie = AnalyserGrille(tabGrille); ++tour; } Console.WriteLine("La partie s'est terminée en {0} tours", tour); AfficherGrille(tabGrille); switch (partie) { case ÉtatJeu.Nulle: Console.WriteLine("Partie nulle"); break; case ÉtatJeu.OGagne: Console.WriteLine("Les 'O' ont gagné"); break; case ÉtatJeu.XGagne: Console.WriteLine("Les 'X' ont gagné"); break; } Console.WriteLine(" quelle option voulez vous?"); Console.WriteLine(" 1- rejouer une nouvelle partie"); Console.WriteLine(" 2- quitter le programme "); choix = Convert.ToInt32(Console.ReadLine()); if (choix == 1) { do { while (partie == ÉtatJeu.EnCours) { AfficherGrille(tabGrille); choix = Convert.ToInt32(Console.ReadLine()); if (choix == 2) { maCase = ChoisirCaseLibre(tabGrille, rnd); } else { maCase = LireCaseLibre(tabGrille); } Console.WriteLine("{0} a choisi ({1},{2})", choix, maCase.X, maCase.Y); tabGrille[maCase.Y, maCase.X] = Case[tour % 2]; partie = AnalyserGrille(tabGrille); ++tour; } Console.WriteLine("La partie s'est terminée en {0} tours", tour); AfficherGrille(tabGrille); switch (partie) { case ÉtatJeu.Nulle: Console.WriteLine("Partie nulle"); break; case ÉtatJeu.OGagne: Console.WriteLine("Les 'O' ont gagné"); break; case ÉtatJeu.XGagne: Console.WriteLine("Les 'X' ont gagné"); break; } Console.WriteLine(" quelle option voulez vous?"); Console.WriteLine(" 1- rejouer une nouvelle partie"); Console.WriteLine(" 2- quitter le programme "); } while (choix != 1); } if (choix == 2) { Console.WriteLine("merci! a la prochaine"); } }