private bool tracer_parcelle(Parcelle p, Color choix) { if (p.afficher == false && p.etang != true) { p.choixCouleur(choix); // contour du rectangle (noir) baseDessin.DrawRectangle(contour, p.dimension); // intérieur du rectangle (vert/rose/jaune) baseDessin.FillRectangle(p.remplissage, p.dimension); // nbre de bambou sur cette parcelle baseDessin.DrawString(p.nbreBambou.ToString(), police, p.texte, p.dimension.X + tailleInformation, p.dimension.Y + tailleInformation, formatTexte); // jardinier if (p.jardinier == true) { jardinier.mouvement(p.dimension.X, p.dimension.Y); baseDessin.DrawImage(jardinier.image, jardinier.placement); } // panda if (p.panda == true) { panda.mouvement(p.dimension.X + tailleParcelle - tailleInformation, p.dimension.Y); baseDessin.DrawImage(panda.image, panda.placement); } p.afficher = true; return(true); } return(false); }
private bool trouver_liaison_irrigation(Parcelle p) { bool lien = true; int lignep = p.ligne; int colonnep = p.colonne; #region Parcelle adjacente haute Parcelle haut; if (lignep == 0) { haut = tableauParcelle[lignep, colonnep]; } else { haut = tableauParcelle[lignep - 1, colonnep]; } #endregion #region Parcelle adjacente basse Parcelle bas; if (lignep == nbreParcelle - 1) { bas = tableauParcelle[lignep, colonnep]; } else { bas = tableauParcelle[lignep + 1, colonnep]; } #endregion #region Parcelle adjacente gauche Parcelle gauche; if (colonnep == 0) { gauche = tableauParcelle[lignep, colonnep]; } else { gauche = tableauParcelle[lignep, colonnep - 1]; } #endregion #region Parcelle adjacente droite Parcelle droite; if (colonnep == nbreParcelle - 1) { droite = tableauParcelle[lignep, colonnep]; } else { droite = tableauParcelle[lignep, colonnep + 1]; } #endregion if (haut.irriguee == false && bas.irriguee == false && droite.irriguee == false && gauche.irriguee == false) { lien = false; } return(lien); }
private void tracer_parcelle(Parcelle p) { if (p.afficher == false && (p.etang != true || act == Action.BougerJardinier || act == Action.BougerPanda)) { // contour du rectangle (noir) baseDessin.DrawRectangle(contour, p.dimension); // intérieur du rectangle (vert/rose/jaune) baseDessin.FillRectangle(p.remplissage, p.dimension); // nbre de bambou sur cette parcelle baseDessin.DrawString(p.nbreBambou.ToString(), police, p.texte, p.dimension.X + tailleInformation, p.dimension.Y + tailleInformation, formatTexte); // jardinier if (p.jardinier == true) { jardinier.mouvement(p.dimension.X, p.dimension.Y); baseDessin.DrawImage(jardinier.image, jardinier.placement); } // panda if (p.panda == true) { panda.mouvement(p.dimension.X + tailleParcelle - tailleInformation, p.dimension.Y); baseDessin.DrawImage(panda.image, panda.placement); } p.afficher = true; } }
private void deplacementPanda(Parcelle p) { #region actualisation parcelle de départ Parcelle avant = panda.parcelle; panda.mouvement(p.dimension.X, p.dimension.Y); panda.parcelle = p; avant.panda = false; avant.afficher = false; bool etang = avant.etang; if (etang == true) { avant.etang = false; } tracer_parcelle(avant); if (etang == true) { avant.etang = true; } #endregion #region actualisation parcelle d'arrivé p.afficher = false; p.panda = true; if (p.nbreBambou > 0) { p.nbreBambou--; Color couleurBambou = p.remplissage.Color; // si il mange sur une parcelle jaune if (couleurBambou == Color.Yellow) { listeJoueur[jEnCours].nbreBambouJaune++; estomacJaune.Text = listeJoueur[jEnCours].nbreBambouJaune.ToString(); } // si il mange sur une parcelle rose if (couleurBambou == Color.Pink) { listeJoueur[jEnCours].nbreBambouRose++; estomacRose.Text = listeJoueur[jEnCours].nbreBambouRose.ToString(); } // si il mange sur une parcelle vert if (couleurBambou == Color.ForestGreen) { listeJoueur[jEnCours].nbreBambouVert++; estomacVert.Text = listeJoueur[jEnCours].nbreBambouVert.ToString(); } } tracer_parcelle(p); #endregion }
private Parcelle trouver_parcelle(MouseEventArgs souris) { for (int ligne = 0; ligne < nbreParcelle; ligne++) { for (int colonne = 0; colonne < nbreParcelle; colonne++) { if (tableauParcelle[ligne, colonne].curseur_dedans(souris.X, souris.Y, tailleParcelle) == true) { Parcelle p = tableauParcelle[ligne, colonne]; return(p); } } } return(null); }
private void zoneJardin_Click(object sender, MouseEventArgs e) { int xsouris = e.X; int ysouris = e.Y; Parcelle p = trouver_parcelle(e); #region placer parcelle if (act == Action.Parcelle) { if (choixCouleur.IsEmpty || choixCouleur == Color.White) { MessageBox.Show("Vous n'avez pas choisi la couleur de la parcelle."); } else if (!trouver_liaison(p)) { MessageBox.Show("Pas de lien entre cette parcelle et les autres."); } else if (p.afficher == true) { MessageBox.Show("Il y a déjà une parcelle ici."); } else if (p != null) { tracer_parcelle(p, choixCouleur); choixCouleur = Color.White; changementJoueur(); } } #endregion #region arroser if (act == Action.Arroser) { if (p.nbreBambou == 4) { MessageBox.Show("Ce bambou est complètement poussé."); } else if (p.etang == true) { MessageBox.Show("Les bambous ne poussent pas sur l'étang."); } else if (p.afficher == false) { MessageBox.Show("Il n'y a pas de parcelle ici."); } else if (p.irriguee == false) { MessageBox.Show("Il faut que la parcelle soit irriguée pour que le bambou pousse."); } else { p.afficher = false; p.nbreBambou++; tracer_parcelle(p); changementJoueur(); } } #endregion #region irriger if (act == Action.Irriguer) { if (p.etang == true) { MessageBox.Show("Pas besoin d'irriguer l'étant !"); } else if (p.afficher == false) { MessageBox.Show("Il n'y a pas de parcelle ici."); } else if (p.irriguee == true) { MessageBox.Show("Cette parcelle est déjà irriguée."); } else if (!trouver_liaison_irrigation(p)) { MessageBox.Show("Les parcelles adjacentes ne sont pas irriguées."); } else { p.texte.Color = Color.Blue; p.irriguee = true; p.nbreBambou++; p.afficher = false; tracer_parcelle(p); changementJoueur(); } } #endregion #region bouger jardinier if (act == Action.BougerJardinier) { deplacementJardinier(p); changementJoueur(); } #endregion #region bouger panda if (act == Action.BougerPanda) { deplacementPanda(p); changementJoueur(); } #endregion }
public Bambouseraie(ArrayList joueurs, int nbrej) { InitializeComponent(); baseDessin = zoneJardin.CreateGraphics(); #region Initialisation du tableau contenant les parcelles nbreParcelle = zoneJardin.Height / tailleParcelle; tableauParcelle = new Parcelle[nbreParcelle, nbreParcelle]; int xParcelle = 0; int yParcelle = 0; int ligne = 0; int colonne = 0; for (xParcelle = 0; xParcelle < zoneJardin.Height; xParcelle += (tailleParcelle + 1)) { for (yParcelle = 0; yParcelle < zoneJardin.Height; yParcelle += (tailleParcelle + 1)) { tableauParcelle[ligne, colonne] = new Parcelle(ligne, colonne, xParcelle, yParcelle, tailleParcelle); ligne++; } ligne = 0; colonne++; } #endregion #region Initialisation affichage objectif Obj1.Hide(); Obj2.Hide(); Obj3.Hide(); Obj4.Hide(); Obj5.Hide(); #endregion #region Intialisation de la pioche int maxPioche = nbrej * 6 + 10; piocheP = new List <Carte>(); Random rand = new Random(); for (int i = 0; i < maxPioche; i++) { pioche.Add(new Carte(rand.Next(1, 4))); } #endregion #region Initialisation du tableau des joueurs nbrejoueur = nbrej; listeJoueur = (Joueur[])joueurs.ToArray(typeof(Joueur)); #endregion #region Définition de l'étang tableauParcelle[4, 4].etang = true; tableauParcelle[4, 4].irriguee = true; tableauParcelle[4, 4].jardinier = true; tableauParcelle[4, 4].panda = true; tableauParcelle[4, 4].choixCouleur(Color.Blue); #endregion #region Initialisation des pinceaux contour = new Pen(Color.Black); police = new Font("Arial", 20); formatTexte = new StringFormat(); formatTexte.Alignment = StringAlignment.Center; formatTexte.LineAlignment = StringAlignment.Center; #endregion #region Définition des images string dossierimg = "C:/Users/Alice/Documents/Visual Studio 2013/Projects/Takenoko/TakenokoVisuel/img/"; jardinier = new Acteur(dossierimg + "jardinier.png", tableauParcelle[4, 4].dimension.X, tableauParcelle[4, 4].dimension.Y, tableauParcelle[4, 4], tailleInformation); int xpanda = tableauParcelle[4, 4].dimension.X + tailleParcelle - tailleInformation; panda = new Acteur(dossierimg + "panda.png", xpanda, tableauParcelle[4, 4].dimension.Y, tableauParcelle[4, 4], tailleInformation); #endregion }
private void deplacementJardinier(Parcelle p) { Parcelle avant = jardinier.parcelle; jardinier.mouvement(p.dimension.X, p.dimension.Y); #region actualisation parcelle de départ avant.jardinier = false; avant.afficher = false; bool etang = avant.etang; if (etang == true) { avant.etang = false; } tracer_parcelle(avant); if (etang == true) { avant.etang = true; } #endregion #region actualisation parcelle d'arrivée jardinier.parcelle = p; p.afficher = false; p.jardinier = true; if (p.nbreBambou < 4 && p.irriguee && !p.etang) { p.nbreBambou++; } tracer_parcelle(p); #endregion #region actualisation des parcelles adajcentes int lignep = p.ligne; int colonnep = p.colonne; #region Parcelle adjacente haute Parcelle haut; if (lignep == 0) { haut = tableauParcelle[lignep, colonnep]; } else { haut = tableauParcelle[lignep - 1, colonnep]; } if (haut.afficher && !haut.etang && haut.remplissage.Color == p.remplissage.Color && haut.nbreBambou < 4) { haut.nbreBambou++; haut.afficher = false; tracer_parcelle(haut); } #endregion #region Parcelle adjacente basse Parcelle bas; if (lignep == nbreParcelle - 1) { bas = tableauParcelle[lignep, colonnep]; } else { bas = tableauParcelle[lignep + 1, colonnep]; } if (bas.afficher && !bas.etang && bas.remplissage.Color == p.remplissage.Color && bas.nbreBambou < 4) { bas.nbreBambou++; bas.afficher = false; tracer_parcelle(bas); } #endregion #region Parcelle adjacente gauche Parcelle gauche; if (colonnep == 0) { gauche = tableauParcelle[lignep, colonnep]; } else { gauche = tableauParcelle[lignep, colonnep - 1]; } if (gauche.afficher && !gauche.etang && gauche.remplissage.Color == p.remplissage.Color && gauche.nbreBambou < 4) { gauche.nbreBambou++; gauche.afficher = false; tracer_parcelle(gauche); } #endregion #region Parcelle adjacente droite Parcelle droite; if (colonnep == nbreParcelle - 1) { droite = tableauParcelle[lignep, colonnep]; } else { droite = tableauParcelle[lignep, colonnep + 1]; } if (droite.afficher && !droite.etang && droite.remplissage.Color == p.remplissage.Color && droite.nbreBambou < 4) { droite.nbreBambou++; droite.afficher = false; tracer_parcelle(droite); } #endregion #endregion }
public Bambouseraie(ArrayList joueurs, int nbrej) { InitializeComponent(); baseDessin = zoneJardin.CreateGraphics(); #region Initialisation du tableau contenant les parcelles nbreParcelle = zoneJardin.Height / tailleParcelle; tableauParcelle = new Parcelle[nbreParcelle, nbreParcelle]; int xParcelle = 0; int yParcelle = 0; int ligne = 0; int colonne = 0; for (xParcelle = 0; xParcelle < zoneJardin.Height; xParcelle += (tailleParcelle+1)) { for (yParcelle = 0; yParcelle < zoneJardin.Height; yParcelle += (tailleParcelle+1)) { tableauParcelle[ligne, colonne] = new Parcelle(ligne, colonne, xParcelle, yParcelle, tailleParcelle); ligne++; } ligne = 0; colonne++; } #endregion #region Initialisation affichage objectif Obj1.Hide(); Obj2.Hide(); Obj3.Hide(); Obj4.Hide(); Obj5.Hide(); #endregion #region Intialisation de la pioche int maxPioche = nbrej * 6 + 10; piocheP = new List<Carte>(); Random rand = new Random(); for (int i = 0; i < maxPioche; i++) { pioche.Add(new Carte(rand.Next(1,4))); } #endregion #region Initialisation du tableau des joueurs nbrejoueur = nbrej; listeJoueur = (Joueur[])joueurs.ToArray(typeof(Joueur)); #endregion #region Définition de l'étang tableauParcelle[4, 4].etang = true; tableauParcelle[4, 4].irriguee = true; tableauParcelle[4, 4].jardinier = true; tableauParcelle[4, 4].panda = true; tableauParcelle[4, 4].choixCouleur(Color.Blue); #endregion #region Initialisation des pinceaux contour = new Pen(Color.Black); police = new Font("Arial", 20); formatTexte = new StringFormat(); formatTexte.Alignment = StringAlignment.Center; formatTexte.LineAlignment = StringAlignment.Center; #endregion #region Définition des images string dossierimg = "C:/Users/Alice/Documents/Visual Studio 2013/Projects/Takenoko/TakenokoVisuel/img/"; jardinier = new Acteur(dossierimg + "jardinier.png", tableauParcelle[4, 4].dimension.X, tableauParcelle[4, 4].dimension.Y, tableauParcelle[4,4], tailleInformation); int xpanda = tableauParcelle[4, 4].dimension.X + tailleParcelle - tailleInformation; panda = new Acteur(dossierimg + "panda.png", xpanda, tableauParcelle[4, 4].dimension.Y, tableauParcelle[4,4], tailleInformation); #endregion }
private void deplacementPanda(Parcelle p) { #region actualisation parcelle de départ Parcelle avant = panda.parcelle; panda.mouvement(p.dimension.X, p.dimension.Y); panda.parcelle = p; avant.panda = false; avant.afficher = false; bool etang = avant.etang; if (etang == true) avant.etang = false; tracer_parcelle(avant); if (etang == true) avant.etang = true; #endregion #region actualisation parcelle d'arrivé p.afficher = false; p.panda = true; if (p.nbreBambou > 0) { p.nbreBambou--; Color couleurBambou = p.remplissage.Color; // si il mange sur une parcelle jaune if (couleurBambou == Color.Yellow) { listeJoueur[jEnCours].nbreBambouJaune++; estomacJaune.Text = listeJoueur[jEnCours].nbreBambouJaune.ToString(); } // si il mange sur une parcelle rose if (couleurBambou == Color.Pink) { listeJoueur[jEnCours].nbreBambouRose++; estomacRose.Text = listeJoueur[jEnCours].nbreBambouRose.ToString(); } // si il mange sur une parcelle vert if (couleurBambou == Color.ForestGreen) { listeJoueur[jEnCours].nbreBambouVert++; estomacVert.Text = listeJoueur[jEnCours].nbreBambouVert.ToString(); } } tracer_parcelle(p); #endregion }
private void deplacementJardinier(Parcelle p) { Parcelle avant = jardinier.parcelle; jardinier.mouvement(p.dimension.X, p.dimension.Y); #region actualisation parcelle de départ avant.jardinier = false; avant.afficher = false; bool etang = avant.etang; if (etang == true) avant.etang = false; tracer_parcelle(avant); if (etang == true) avant.etang = true; #endregion #region actualisation parcelle d'arrivée jardinier.parcelle = p; p.afficher = false; p.jardinier = true; if (p.nbreBambou < 4 && p.irriguee && !p.etang) p.nbreBambou++; tracer_parcelle(p); #endregion #region actualisation des parcelles adajcentes int lignep = p.ligne; int colonnep = p.colonne; #region Parcelle adjacente haute Parcelle haut; if (lignep == 0) haut = tableauParcelle[lignep, colonnep]; else haut = tableauParcelle[lignep - 1, colonnep]; if (haut.afficher && !haut.etang && haut.remplissage.Color == p.remplissage.Color && haut.nbreBambou < 4) { haut.nbreBambou++; haut.afficher = false; tracer_parcelle(haut); } #endregion #region Parcelle adjacente basse Parcelle bas; if (lignep == nbreParcelle - 1) bas = tableauParcelle[lignep, colonnep]; else bas = tableauParcelle[lignep + 1, colonnep]; if (bas.afficher && !bas.etang && bas.remplissage.Color == p.remplissage.Color && bas.nbreBambou < 4) { bas.nbreBambou++; bas.afficher = false; tracer_parcelle(bas); } #endregion #region Parcelle adjacente gauche Parcelle gauche; if (colonnep == 0) gauche = tableauParcelle[lignep, colonnep]; else gauche = tableauParcelle[lignep, colonnep - 1]; if (gauche.afficher && !gauche.etang && gauche.remplissage.Color == p.remplissage.Color && gauche.nbreBambou < 4) { gauche.nbreBambou++; gauche.afficher = false; tracer_parcelle(gauche); } #endregion #region Parcelle adjacente droite Parcelle droite; if (colonnep == nbreParcelle - 1) droite = tableauParcelle[lignep, colonnep]; else droite = tableauParcelle[lignep, colonnep + 1]; if (droite.afficher && !droite.etang && droite.remplissage.Color == p.remplissage.Color && droite.nbreBambou < 4) { droite.nbreBambou++; droite.afficher = false; tracer_parcelle(droite); } #endregion #endregion }
private bool trouver_liaison_irrigation(Parcelle p) { bool lien = true; int lignep = p.ligne; int colonnep = p.colonne; #region Parcelle adjacente haute Parcelle haut; if (lignep == 0) haut = tableauParcelle[lignep, colonnep]; else haut = tableauParcelle[lignep - 1, colonnep]; #endregion #region Parcelle adjacente basse Parcelle bas; if (lignep == nbreParcelle -1 ) bas = tableauParcelle[lignep, colonnep]; else bas = tableauParcelle[lignep + 1, colonnep]; #endregion #region Parcelle adjacente gauche Parcelle gauche; if (colonnep == 0) gauche = tableauParcelle[lignep, colonnep]; else gauche = tableauParcelle[lignep, colonnep - 1]; #endregion #region Parcelle adjacente droite Parcelle droite; if (colonnep == nbreParcelle-1) droite = tableauParcelle[lignep, colonnep]; else droite = tableauParcelle[lignep, colonnep + 1]; #endregion if (haut.irriguee == false && bas.irriguee == false && droite.irriguee == false && gauche.irriguee == false) lien = false; return lien; }
private bool tracer_parcelle(Parcelle p, Color choix) { if (p.afficher == false && p.etang != true) { p.choixCouleur(choix); // contour du rectangle (noir) baseDessin.DrawRectangle(contour, p.dimension); // intérieur du rectangle (vert/rose/jaune) baseDessin.FillRectangle(p.remplissage, p.dimension); // nbre de bambou sur cette parcelle baseDessin.DrawString(p.nbreBambou.ToString(), police, p.texte, p.dimension.X + tailleInformation, p.dimension.Y + tailleInformation, formatTexte); // jardinier if (p.jardinier == true) { jardinier.mouvement(p.dimension.X, p.dimension.Y); baseDessin.DrawImage(jardinier.image, jardinier.placement); } // panda if (p.panda == true) { panda.mouvement(p.dimension.X + tailleParcelle - tailleInformation, p.dimension.Y); baseDessin.DrawImage(panda.image, panda.placement); } p.afficher = true; return true; } return false; }
private void tracer_parcelle(Parcelle p) { if (p.afficher == false && (p.etang != true || act == Action.BougerJardinier || act == Action.BougerPanda)) { // contour du rectangle (noir) baseDessin.DrawRectangle(contour, p.dimension); // intérieur du rectangle (vert/rose/jaune) baseDessin.FillRectangle(p.remplissage, p.dimension); // nbre de bambou sur cette parcelle baseDessin.DrawString(p.nbreBambou.ToString(), police, p.texte, p.dimension.X+tailleInformation, p.dimension.Y+tailleInformation, formatTexte); // jardinier if (p.jardinier == true) { jardinier.mouvement(p.dimension.X, p.dimension.Y); baseDessin.DrawImage(jardinier.image, jardinier.placement); } // panda if (p.panda == true) { panda.mouvement(p.dimension.X + tailleParcelle - tailleInformation, p.dimension.Y); baseDessin.DrawImage(panda.image, panda.placement); } p.afficher = true; } }