public Game() { //Création des dés Des = new List <Die>(); Des.Add(new Die()); Des.Add(new Die()); Joueurs = new List <Player>() { new Player(new IAStrategy(), new List <Card>(Globals.cartesDeBase)), new Player(new IAStrategy(), new List <Card>(Globals.cartesDeBase)) }; //Initialisation de la pile de cartes CartesDisponibles = new Pile(); foreach (CARD_ID id in Globals.CardInfo.Keys) { CartesDisponibles.ajouterCarte(id, 6); } //On enleve les cartes de bases selon le nombre de joueurs a la pile for (int i = 0; i < Joueurs.Count; i++) { foreach (Card c in Globals.cartesDeBase) { CartesDisponibles.PrendreCarte(c.ID); } } }
public void ChoisirCarte(Player p1, Player p2, Pile p) { if (p1.argent == 0 || p1.argent > 12) { return; } Random rnd = new Random(); //Liste de cartes que l'IA peut acheter List <Card> canBuy = new List <Card>(); foreach (CARD_ID c in p._cartes.Keys) { //S'il reste un exemplaire de la carte if (p._cartes[c] > 0 && p1.argent >= Globals.CardInfo[c].cout) { canBuy.Add(new Card(Globals.CardInfo[c])); } } //Choisit aléatoirement une carte parmi la liste de cartes int index = rnd.Next(0, canBuy.Count); if (canBuy.Count > 0) { p1.AcheterCarte(canBuy[index], p); Console.WriteLine("Votre adversaire a acheté {0}\n", canBuy[index].nom); } }
public void AcheterCarte(Card c, Pile p) { if (argent >= c.cout) { cartesEnJeu.ajouterCarte(c.ID, 1); argent -= c.cout; p.PrendreCarte(c.ID); } }
public Player(Strategy uneStrat, List <Card> carteDeBase) { argent = 3; strategy = uneStrat; cartesEnJeu = new Pile(); foreach (var i in carteDeBase) { cartesEnJeu.ajouterCarte(i.ID, 1); } }
public void ChoisirCarte(Player p1, Player p2, Pile p) { //A Faire selon l'interface }
public void ChoisirCarte(Player p1, Player p2, Pile p) { Console.WriteLine("Les cartes de votre adversaire : "); foreach (var c in p2.cartesEnJeu._cartes) { if (c.Value != 0) { Console.WriteLine("{0} | Couleur : {1} | Activation : {4} | Effet : {2} | Nombre : {3}", c.Key, Globals.CardInfo[c.Key].couleur, Globals.CardInfo[c.Key].descriptionEffet, c.Value, Globals.CardInfo[c.Key].AfficheValeur()); } } Console.WriteLine("\nVos cartes : "); foreach (var c in p1.cartesEnJeu._cartes) { if (c.Value != 0) { Console.WriteLine("{0} | Couleur : {1} | Activation : {4} | Effet : {2} | Nombre : {3}", c.Key, Globals.CardInfo[c.Key].couleur, Globals.CardInfo[c.Key].descriptionEffet, c.Value, Globals.CardInfo[c.Key].AfficheValeur()); } } Console.WriteLine("\nVoulez-vous acheter une carte ?\n Oui : o Non : n"); string ouput = Console.ReadLine(); if (ouput == "o") { if (p1.argent == 0) { Console.WriteLine("Désolé, vous n'avez plus d'argent !\n"); return; } //Liste de cartes que le joueur peut acheter List <Card> canBuy = new List <Card>(); foreach (CARD_ID c in p._cartes.Keys) { //S'il reste un exemplaire de la carte if (p._cartes[c] > 0 && p1.argent >= Globals.CardInfo[c].cout) { canBuy.Add(new Card(Globals.CardInfo[c])); } } Console.WriteLine("Vous pouvez acheter :"); for (int i = 0; i < canBuy.Count; i++) { Console.WriteLine("{0} : {1} | Couleur : {2} | Cout : {3} | Activation : {4} | Effet : {5}", i, canBuy[i].nom, canBuy[i].couleur, canBuy[i].cout, canBuy[i].AfficheValeur(), canBuy[i].descriptionEffet); } Console.WriteLine("\nAnnuler : a"); string res = Console.ReadLine(); if (res == "a") { return; } else { p1.AcheterCarte(canBuy[Int16.Parse(res)], p); } } else if (ouput == "n") { //Il ne se passe rien } Console.WriteLine("\n-----Fin de votre tour-----\n"); }
public void ChoisirCarte(Player p1, Player p2, Pile p) { if (p1.argent == 0) { return; } bool restaut = true; bool superette = true; bool cafe = true; bool mine = true; bool verger = true; bool bleu = false; bool rouge = false; bool vert = false; Random rnd = new Random(); //Liste de cartes que le joueur peut acheter List <Card> canBuy = new List <Card>(); foreach (CARD_ID c in p._cartes.Keys) { //S'il reste un exemplaire de la carte if (p._cartes[c] > 0 && p1.argent >= Globals.CardInfo[c].cout) { canBuy.Add(new Card(Globals.CardInfo[c])); /*Vérifier si restaurant, superette et café sont encore achetables. S'ils ne sont pas achetables, le bool reste true pour faire * comme s'il l'avait déjà et donc passer l'achat */ if (c == CARD_ID.RESTAURANT) { restaut = false; } if (c == CARD_ID.SUPERETTE) { superette = false; } if (c == CARD_ID.CAFE) { cafe = false; } //On vérifie s'il reste des cartes bleus, rouges et vertes if (Globals.CardInfo[c].couleur == COULEUR.BLEU) { bleu = true; } if (Globals.CardInfo[c].couleur == COULEUR.ROUGE) { rouge = true; } if (Globals.CardInfo[c].couleur == COULEUR.VERT) { vert = true; } } } //Acheter en priorité restaurant, superette, café foreach (CARD_ID c in p1.cartesEnJeu._cartes.Keys) { if (c == CARD_ID.RESTAURANT) { restaut = true; } if (c == CARD_ID.SUPERETTE) { superette = true; } if (c == CARD_ID.CAFE) { cafe = true; } } foreach (Card c in canBuy) { if (!restaut && c.ID == CARD_ID.RESTAURANT) { p1.AcheterCarte(c, p); return; } if (!superette && c.ID == CARD_ID.SUPERETTE) { p1.AcheterCarte(c, p); return; } if (!cafe && c.ID == CARD_ID.CAFE) { p1.AcheterCarte(c, p); return; } } /* Si l'execution arrive ici, l'IA a soit dans sa main au moins un Restaurant, une Superette et un Café ou alors * il ne pouvait pas les acheter. S'il ne peut pas les acheter, il passe son tour. */ if (restaut && superette && cafe && mine && verger) { int index = 0; //Acheter en priorité des bleus if (bleu) { while (true) { index = rnd.Next(0, canBuy.Count); if (canBuy[index].couleur == COULEUR.BLEU) { p1.AcheterCarte(canBuy[index], p); return; } } } //S'il ne peut pas acheter de bleu, il achete une rouge if (rouge) { while (true) { index = rnd.Next(0, canBuy.Count); if (canBuy[index].couleur == COULEUR.ROUGE) { p1.AcheterCarte(canBuy[index], p); return; } } } //S'il ne peut pas acheter de rouge, il achete une verte if (vert) { while (true) { index = rnd.Next(0, canBuy.Count); if (canBuy[index].couleur == COULEUR.VERT) { p1.AcheterCarte(canBuy[index], p); return; } } } } }