void Button_Click(object sender, RoutedEventArgs e) { // Bouton clické var button = (Button)sender; // Trou associé au bouton Trou trou = (Trou)button.DataContext; // Check si le Joueur clique sur la bonne rangée if (trou.Joueur != JoueurCourant) { MessageBox.Show("Tu triches " + JoueurCourant.Nom + ", ce n'est pas ton trou !"); return; } // Check si le trou n'est pas vide if (trou.Valeur == 0) { MessageBox.Show("Tu ne peux pas tricheur " + trou.Joueur.Nom); return; } // Check pour le reseau if (IsCombatReseau == true && JoueurCourant != JoueurActuelReseau) { MessageBox.Show("Ce n'est pas à toi de jouer ! "); return; } // Si partie en réseau if (IsCombatReseau == true) { int indexTrou = ListTrousOrdonnes.IndexOf(trou); if (hostGame != null) { hostGame.SendAction(indexTrou); } else { connect.SendAction(indexTrou); } } // Gestion de l'action TraitementActionJoueur(trou); // Si le joueur 2 est une IA ... if (J2.IsIA == true) { // On fait jouer l'IA Trou trouChoisiParIA = IA.ChoisirAction(J2, ListTrousOrdonnes); // On traite son choix TraitementActionJoueur(trouChoisiParIA); } }
private void button2_Click(object sender, EventArgs e) { Trou t = new Trou(Convert.ToInt16(tb_numero.Text), Convert.ToInt16(tb_distance.Text), Convert.ToInt16(tb_par.Text)); ApplicationData.actuel.ajouterTrou(t); DAOTrou dao = new DAOTrou(); dao.recordATrou(t); }
public void DeplacerVers(Trou destination) { Vector3 arrivee = new Vector3( destination.transform.position.x, hauteurDepart, destination.transform.position.z); transform.position = arrivee; Arrivee(destination); }
public void DeplacerActif(Trou destination) { plateau.Deplacer(PionCourant.X, PionCourant.Y, destination.X, destination.Y); PionCourant.DeplacerVers(destination); PionCourant = null; if (plateau.Vainqueur() != Pion.Vide) { GameOver(plateau.Vainqueur()); } else { TourSuivant(); } }
public PlateauDeJeu(string nomJ1, string nomJ2, int nbColumns, bool isIA, bool isCombatReseau) { InitializeComponent(); NbColumns = nbColumns; NbTrous = nbColumns * 2; NbGraines = NbTrous * 4; // Initialisation des Joueurs : J1 = new Joueur(nomJ1, 1); J2 = new Joueur(nomJ2, 2); // Indique si le J2 est une IA J2.SetIsIA(isIA); // Indique si c'est un combat en Réseau IsCombatReseau = isCombatReseau; // J1 commence JoueurCourant = J1; // Liste des trous ListTrous = new ObservableCollection <Trou>(); // Initialisation du plateau : for (int i = 1; i <= NbTrous; i++) { // Trou Adversaire (1ère ligne) if (i <= NbColumns) { ListTrous.Add(new Trou(J1, i - 1)); } // Trou Ou False (2ème ligne) else { ListTrous.Add(new Trou(J2, i - 1)); } } // Remplissage des Trous : foreach (Trou trou in ListTrous) { trou.Valeur = 4; } // Remplissage d'une autre liste bien ordonnée ListTrousOrdonnes = new List <Trou>(); for (int i = nbColumns - 1; i >= 0; i--) { Trou trouCourant = ListTrous[i]; ListTrousOrdonnes.Add(trouCourant); } for (int i = nbColumns; i < NbTrous; i++) { Trou trouCourant = ListTrous[i]; ListTrousOrdonnes.Add(trouCourant); } JoueurCourant = J1; DataContext = this; }
public void TraitementActionJoueur(Trou trou) { // Valeur du Trou int valeur = trou.Valeur; // On vide le Trou trou.Valeur = 0; // Distribution des graines sur les cases suivantes : int indexTrou = ListTrousOrdonnes.IndexOf(trou); int indexTrouCourant = indexTrou; // Tant que nous n'avons pas distribué toutes les graines : while (valeur != 0) { // On est à la fin de la liste if (indexTrouCourant == NbTrous - 1) { // -> On retourne au début de la list indexTrouCourant = 0; } else { // On passe au trou suivant indexTrouCourant += 1; } // Si on repasse par le trou cliqué auparavant if (indexTrouCourant == indexTrou) { // -> On saute le trou continue; } // On récupère le Trou courant Trou trouCourant = ListTrousOrdonnes[indexTrouCourant]; // On incrémente de 1 trouCourant.Valeur += 1; // On décrémente valeur de 1 valeur -= 1; } // Récupération du trou où on a placé la dernière graine int indexDernierTrouPlace = indexTrouCourant; Boolean onPeutRecolter = true; // On collecte les scores // - On parcourt la liste dans l'autre sens à partir du dernier trou while (onPeutRecolter) { // On récupère le Trou courant Trou trouCourant = ListTrousOrdonnes[indexTrouCourant]; // Si condition de récolte bonne // - 2 ou 3 graines dans le trou courant if (trouCourant.Valeur == 2 || trouCourant.Valeur == 3) { // On donne les graines au joueur JoueurCourant.NbGraines += trouCourant.Valeur; // On retire les graines du trou trouCourant.Valeur = 0; // On est au début de la liste if (indexTrouCourant == 0) { // -> On retourne au début de la liste indexTrouCourant = NbTrous - 1; } else { // On passe au trou suivant indexTrouCourant -= 1; } } // Si ce n'est pas le cas else { // On s'arrête la onPeutRecolter = false; } } // Changement de Joueur Courant if (JoueurCourant == J1) { JoueurCourant = J2; } else { JoueurCourant = J1; } // Check si il y'a un vainqueur CheckSiVainqueur(); }
void Arrivee(Trou destination) { X = destination.X; Y = destination.Y; estLeve = false; }