public static void Restaurer(Joueur j, StreamReader fichierSauvegarde, string nomJoueurCourant) { j.Nom = fichierSauvegarde.ReadLine(); j.Position.colonne = Int32.Parse(fichierSauvegarde.ReadLine()); j.Position.rangee = Int32.Parse(fichierSauvegarde.ReadLine()); j.Argent = Int64.Parse(fichierSauvegarde.ReadLine()); j.PositionCarreau = Int32.Parse(fichierSauvegarde.ReadLine()); j.EstVivant = Boolean.Parse(fichierSauvegarde.ReadLine()); while ((char)fichierSauvegarde.Peek() != 'p') { int positionCarreau = Int32.Parse(fichierSauvegarde.ReadLine()); CarreauPropriete prop = (CarreauPropriete)Plateau.Instance.getCarreau(positionCarreau); prop.NombreBatiement = Int32.Parse(fichierSauvegarde.ReadLine()); prop.EstHypotheque = Boolean.Parse(fichierSauvegarde.ReadLine()); j.Proprietes.Add(prop); } fichierSauvegarde.ReadLine(); while ((char)fichierSauvegarde.Peek() != 't') { int positionCarreau = Int32.Parse(fichierSauvegarde.ReadLine()); CarreauTrain train = (CarreauTrain)Plateau.Instance.getCarreau(positionCarreau); train.EstHypotheque = Boolean.Parse(fichierSauvegarde.ReadLine()); j.Trains.Add(train); } fichierSauvegarde.ReadLine(); while ((char)fichierSauvegarde.Peek() != 's') { int positionCarreau = Int32.Parse(fichierSauvegarde.ReadLine()); CarreauService service = (CarreauService)Plateau.Instance.getCarreau(positionCarreau); service.EstHypotheque = Boolean.Parse(fichierSauvegarde.ReadLine()); j.Services.Add(service); } fichierSauvegarde.ReadLine(); if (j.Nom == nomJoueurCourant) { Plateau.Instance.JoueurCourant = j; } j.BougerLaPiece(j.PositionCarreau); }
/// <summary> /// Verifie s'il a l'argent pour acheter un terrain, et l'achete automatiquement s'il peut /// </summary> /// <returns>La propriete a bien ete achetee</returns> public bool acheterPropriete(CarreauPropriete carreau) { Joueur joueurCourant = Plateau.Instance.JoueurCourant; if (joueurCourant.PeutPayer(carreau.PrixAchat)) { DialogResult confirmResult = System.Windows.Forms.MessageBox.Show("Souhaitez-vous acheter cette propriété?", "Achat de propriété", MessageBoxButtons.YesNo); if (confirmResult == DialogResult.Yes) { joueurCourant.Payer(carreau.PrixAchat); // le jouer peut decider d'acheter la case. carreau.Proprietaire = joueurCourant; joueurCourant.Proprietes.Add(carreau); return(true); } else { System.Windows.MessageBox.Show("Le joueur " + joueurCourant.Nom + " n'a pas acheté la propriété", "Avertissement", MessageBoxButton.OK, MessageBoxImage.Information); } } else { foreach (CarreauAchetable prop in Plateau.Instance.JoueurCourant.Proprietes) { if (!prop.EstHypotheque) { Plateau.Instance.JoueurCourant.Hypothequer(prop); if (acheterPropriete(carreau)) { return(true); } else { //return false dans la vraie vie #Jo Plateau.Instance.JoueurCourant.FaitFaillite(); } } } } return(false); }
/// <summary> /// On vient lire le XML des propriété /// et on initalise les carreaux Propriétées /// </summary> private void lireXMLProprietes() { XDocument doc = XDocument.Parse(Properties.Resources.propriete); XElement proprietes = doc.Root.Element("Proprietes"); //MessageBox.Show(doc.Root.Elements("Titre").Count()+""); foreach (XElement titre in doc.Root.Elements("Titre")) { String indexDictionnaire = titre.Descendants("IndexDictionnaire").First().Value.ToString(); int position = Int32.Parse(titre.Descendants("Position").First().Value.ToString()); CarreauPropriete.Couleurs nouveauCarreauCouleur = (CarreauPropriete.Couleurs)Int32.Parse(titre.Descendants("Couleur").First().Value.ToString()); long prixAchat = Int32.Parse(titre.Descendants("Prix").First().Value.ToString()); long droitPassBase = Int32.Parse(titre.Element("Location").Descendants("base").First().Value.ToString()); long droitPass1Maison = Int32.Parse(titre.Element("Location").Descendants("uneMaison").First().Value.ToString()); long droitPass2Maisons = Int32.Parse(titre.Element("Location").Descendants("deuxMaisons").First().Value.ToString()); long droitPass3Maisons = Int32.Parse(titre.Element("Location").Descendants("troisMaisons").First().Value.ToString()); long droitPass4Maisons = Int32.Parse(titre.Element("Location").Descendants("quatreMaisons").First().Value.ToString()); long droitPassHotel = Int32.Parse(titre.Element("Location").Descendants("hotel").First().Value.ToString()); long[] droitPassage = { droitPassBase, droitPass1Maison, droitPass2Maisons, droitPass3Maisons, droitPass4Maisons, droitPassHotel }; Carreau nouveauCarreau = new CarreauPropriete(position, nouveauCarreauCouleur, prixAchat, droitPassage); //MessageBox.Show(titre.Descendants("Couleur").First().Value.ToString() + " "+ nouveauCarreauCouleur); dictionnaireCarreaux.Add(indexDictionnaire, nouveauCarreau); } }
public void execute(Carreau carreau) { if (carreau is CarreauPropriete) { CarreauPropriete carreauActuel = (CarreauPropriete)carreau; if (!carreauActuel.estPossede()) { acheterPropriete(carreauActuel); } } else if (carreau is CarreauTrain) { CarreauTrain carreauActuel = (CarreauTrain)carreau; if (!carreauActuel.estPossede()) { acheterTrain(carreauActuel); } } else { CarreauService carreauActuel = (CarreauService)carreau; //if (!carreauActuel.estPossede()) } }