public override void Payer(Joueur joueur) { if (proprietaire == joueur) { Console.WriteLine("\n" + nom + " est à vous! Vous n'avez rien à payer! Appuyez sur une touche pour continuer."); } else { if (proprietaire == null) { Acheter(joueur); } else { Console.WriteLine("\nBrassez les dés pour connaître le loyer à payer"); int deUn = Dice.Brasser(); int deDeux = Dice.Brasser(); Console.WriteLine("\nVous avez obtenu {0} et {1}", deUn, deDeux); int loyerService = (deUn + deDeux) * 10; Console.WriteLine("\nVous devez payer " + loyerService + " à " + proprietaire.Nom + "!"); if (joueur.Argent > loyerService) { joueur.Argent = joueur.Argent - loyerService; } else { do { bool faill = true; foreach (Case el in Planche.monopoly) { if (proprietaire.Equals(joueur)) { Hypothequer(joueur, ref faill); } } if (faill == true) { joueur.Faillite = true; } else { joueur.Faillite = false; } }while(joueur.Argent < loyerService); Console.WriteLine("\nVous avez maintenant assez d'argent pour payer!"); joueur.Argent = joueur.Argent - loyerService; } } Console.ReadKey(); } }
public Jeu() { Joueurs joueur = new Joueurs(); //Planche cases = new Planche(); Dice des = new Dice(); Console.WriteLine("MONOPOLY"); int nombreJoueurs = joueur.Ajouter(); Planche.Initialiser(); int doubles = 0; bool game = true; do { for (int i = 0; i <= nombreJoueurs - 1; i++) { Joueur joueurActuel = joueur.Liste(i); if (joueurActuel.Faillite == true) { Console.WriteLine("\n{0} est en faillite. Le tour est au joueur suivant.", joueurActuel.Nom); } else if (joueurActuel.Prison == true) { Console.WriteLine("\n---------------------------------------"); Console.WriteLine("\nAu tour de {0}, mais vous êtes en prison.", joueurActuel.Nom); if (joueurActuel.NbrCartePrison >= 1) { Console.WriteLine("\nVoulez-vous utiliser votre carte pour sortir de prison et jouer au prochain tour? O/N"); string input1 = Console.ReadLine(); if (input1.Equals("O") || input1.Equals("o")) { joueurActuel.NbrCartePrison--; joueurActuel.Prison = false; joueurActuel.Position = 10; } else if (input1.Equals("N") || input1.Equals("N")) { AllerPrison.Sortir(joueurActuel); } } else { Console.WriteLine("\nEst-ce qu'un joueur veux vous vendre une carte chance ou caisse commune pour sortir de prison O/N"); string input1 = Console.ReadLine(); if (input1.Equals("O") || input1.Equals("o")) { Console.WriteLine("\nQuel est le nom du joueur qui veut vous vendre la carte vous permettant de sortir de prison ?"); string nomPrison = Console.ReadLine(); foreach (Joueur joueurPrison in Joueurs.joueurs) { if (nomPrison.Equals(joueurPrison.Nom)) { if (joueurPrison.NbrCartePrison >= 1) { Console.WriteLine("\nPour quel montant?"); int montantPrison = Int32.Parse(Console.ReadLine()); if (montantPrison <= joueurActuel.Argent) { Case.Transaction(joueurActuel, montantPrison, joueurPrison); joueurPrison.NbrCartePrison--; AllerPrison.Sortir(joueurActuel); } else { Console.WriteLine("\nVous n'avez pas assez d'argent pour lui payer la carte vous permetteant de sortir de prison."); } } else { Console.WriteLine("\nCe joueur ne possède pas de carte vous permettant de sortir de prison. Surveillez le pour le reste de la partie!"); AllerPrison.Sortir(joueurActuel); } } } } else { AllerPrison.Sortir(joueurActuel); } } } else { Console.WriteLine("\n---------------------------------------"); Console.WriteLine("\nAu tour de {0} de brasser les dés.", joueurActuel.Nom); Console.WriteLine("\nAppuyer sur une touche pour brasser les dés."); Console.ReadKey(); int deUn = Dice.Brasser(); int deDeux = Dice.Brasser(); Console.WriteLine("\nVous avez obtenu {0} et {1}", deUn, deDeux); if (deUn == deDeux) { if (doubles == 2) { Console.WriteLine("\nVous avez brasse 3 doubles de suite. Vous allez directement en prison sans passer par GO."); System.Threading.Thread.Sleep(500); Console.WriteLine("\nVous êtes maintenant en prison."); joueurActuel.Prison = true; joueurActuel.Position = 10; doubles = 0; continue; } else { i--; doubles++; Console.WriteLine("\nVous avez brassé un double, vous devez jouer à nouveau après ce tour."); } } else { doubles = 0; } //Console.ReadKey(); if (joueurActuel.Position + deUn + deDeux >= 39) { int actuel = joueurActuel.Position; joueurActuel.Position = (deUn + deDeux + actuel) - 39; //Console.ReadKey(); } else { joueurActuel.Position = deUn + deDeux + joueurActuel.Position; } Planche.Interaction(joueurActuel); } } if (joueur.Faillites == nombreJoueurs - 1) { game = false; } } while (game == true); }