Beispiel #1
0
        /**
         * Calcule les attributs et passe au tour suivant
         */
        public static void nouveauTour()
        {
            calculsAttributs();     //actualise les attributs des persos après avoir effectué des taches

            Random aleatoire = new Random();
            int    rnd       = aleatoire.Next(5);

            if (rnd == 0)
            {
                Fonctionnalites f10 = new Fonctionnalites("Nouvelle demande client", 10, 0, 0, "Développer");
                listfonctionnalite.Add(f10);
                listtransmise.Add(f10);
            }
        }
Beispiel #2
0
        /**
         * Affichage des fonctionnalités
         */
        public void copiFonc()
        {
            cboFonctionnalite1.Items.Clear();

            cboFonctionnalite2.Items.Clear();
            for (int i = 0; i < listfonctionnalite.Count; i++)
            {
                Fonctionnalites f = (Fonctionnalites)listfonctionnalite[i];

                cboFonctionnalite1.Items.Add(f.getNom() + " (" + f.getNvConnaissNecces() + ")");
                cboFonctionnalite2.Items.Add(f.getNom() + " (" + f.getNvConnaissNecces() + ")");
                cboFonctionnalite3.Items.Add(f.getNom() + " (" + f.getNvConnaissNecces() + ")");
            }
        }
Beispiel #3
0
        /**
         * remplissage des personnages (affinités et détestés sont à null), initialisation de toutes les fonctionnalités et de
         * toutes les réunions.Assignation des affinités aléatoirement.
         * Assignation des points forts/points faibles aléatoirement.
         */
        public void lancerJeu(frmMenu fm)
        {
            fm.Hide();

            //creation personnage
            p1 = remplirPersonnage("Valentin", 20, 20, 71, null, null);
            p2 = remplirPersonnage("Aymeric", 20, 45, 61, null, null);
            p3 = remplirPersonnage("Mathieu", 30, 25, 32, null, null);
            p4 = remplirPersonnage("Samir", 40, 10, 23, null, null);
            Personnage persov;

            persov = new Personnage("-", -1, -1, -1, null, null);

            p1.setAffinite(p4);
            p2.setAffinite(p3);
            p3.setAffinite(p2);
            p4.setAffinite(p1);

            p1.setDeteste(p3);
            p2.setDeteste(p4);
            p3.setDeteste(persov);
            p4.setDeteste(p2);

            p1.qualites.Add("Sang-froid");
            p2.qualites.Add("Diplomate");
            p3.qualites.Add("Inépuisable");
            p4.qualites.Add("Inépuisable");

            p1.defauts.Add("Fatigué");
            p2.defauts.Add("Fatigué");
            p3.defauts.Add("Stressé");
            p4.defauts.Add("Asocial");

            p1.pointsForts.Add("Recherche");
            p2.pointsForts.Add("Conception");
            p3.pointsForts.Add("Développement");
            p4.pointsForts.Add("Développement");

            p1.pointsFaibles.Add("Conception");
            p2.pointsFaibles.Add("Développement");
            p3.pointsFaibles.Add("Conception");
            p4.pointsFaibles.Add("Recherche");

            /*
             * FONCTIONNALITES ( NOM , PANECESS , POURCENTNOTE , NVCONNAIS , PADEPENSE , TYPE) */
            /* SUR 900 */



            /* Recherche pour obtenir plus de niveau de compétences */
            Fonctionnalites f0 = new Fonctionnalites("Formation", 100000, 0, 0, "Rechercher");    //n'impacte pas l'avancement du projet, elle sert juste à obtenir plus de compétences

            /* Spécification sur 240*/
            Fonctionnalites f1 = new Fonctionnalites("Cahier des charges", 100, 0, 20, "Spécification");
            Fonctionnalites f2 = new Fonctionnalites("Objectifs pédagogiques", 60, 0, 10, "Spécification");
            Fonctionnalites f3 = new Fonctionnalites("Documentation", 40, 0, 20, "Spécification");


            /* Conception sur 120*/
            Fonctionnalites f4 = new Fonctionnalites("MCD", 20, 0, 40, "Concevoir");
            Fonctionnalites f5 = new Fonctionnalites("Interface graphique ", 80, 0, 50, "Concevoir");
            Fonctionnalites f6 = new Fonctionnalites("GIT", 20, 0, 20, "Concevoir");

            /* Developpement sur 450*/
            Fonctionnalites f7 = new Fonctionnalites("Classes", 150, 0, 50, "Développer");
            Fonctionnalites f8 = new Fonctionnalites("Controleur", 150, 0, 65, "Développer");
            Fonctionnalites f9 = new Fonctionnalites("Moteur de jeu", 150, 0, 50, "Développer");

            /* Recette */
            Fonctionnalites f11 = new Fonctionnalites("Test du code", 20, 0, 40, "Recette");
            Fonctionnalites f12 = new Fonctionnalites("Faire le point avec le client", 10, 0, 20, "Recette");

            /* Livraison */
            Fonctionnalites f13 = new Fonctionnalites("Livraison", 10, 0, 5, "Livraison");


            //REUNION(THEME DE LA REUNION) et le statut de cette réunion est par défaut à false
            // Reunion r1 = new Reunion("Faire connaissance", "Découvir l'équipe");
            Reunion r2 = new Reunion("Évaluer le potentiel du groupe", "Découvir l'équipe");
            Reunion r3 = new Reunion("Révèle les qualités et les défauts", "Découvir l'équipe");
            Reunion r4 = new Reunion("Analyse des affinités de chacun", "Découvir l'équipe");
            // Reunion r5 = new Reunion("Découvrir le projet", "Examiner le projet");
            Reunion r6 = new Reunion("Analyse de la demande du client et de ses besoins + Définir un cahier des charges", "Examiner le projet");
            Reunion r7 = new Reunion("Mettre en place un système d'organisation", "Examiner le projet");
            Reunion r8 = new Reunion("Mettre en commun le travail et l'avancement de chacun", "Faire le point");


            // listReunion.Add(r1);
            listReunion.Add(r2);
            listReunion.Add(r3);
            listReunion.Add(r4);
            //  listReunion.Add(r5);
            listReunion.Add(r6);
            listReunion.Add(r7);
            listReunion.Add(r8);



            listfonctionnalite.Add(f1);
            listfonctionnalite.Add(f2);
            listfonctionnalite.Add(f3);
            listfonctionnalite.Add(f4);
            listfonctionnalite.Add(f5);
            listfonctionnalite.Add(f6);
            listfonctionnalite.Add(f7);
            listfonctionnalite.Add(f8);
            listfonctionnalite.Add(f9);
            listfonctionnalite.Add(f11);
            listfonctionnalite.Add(f12);
            listfonctionnalite.Add(f13);
            verifPourcentNote();
            listfonctionnalite.Add(f0);
            foreach (Fonctionnalites f in listfonctionnalite)
            {
                listtransmise.Add(f);
            }

            listPersonnage.Add(p1);
            listPersonnage.Add(p2);
            listPersonnage.Add(p3);
            listPersonnage.Add(p4);


            jeu = new frmJeu(p1, p2, p3, p4, 20);

            jeu.Refresh();
            jeu.Show();
            frmReunionPopUp popup = new frmReunionPopUp();

            popup.Show();
        }
Beispiel #4
0
        /**
         * Fait faire les tâches aux personnages
         */
        public static void tache(Personnage p, List <Fonctionnalites> listeTache)
        {
            string afficher = "";

            for (int i = 0; i < listfonctionnalite.Count; i++)
            {
                Fonctionnalites ajout = (Fonctionnalites)listfonctionnalite[i];
                afficher += "\n" + ajout.getNom();
            }

            if (afficher != "")
            {
                //MessageBox.Show(afficher);
            }


            String texte = "";

            // Parcours de toutes les fonctionalités pour que le perso p les fasse


            /*****************   A FAIRE ****************/



            foreach (Fonctionnalites f in listeTache)
            {
                // MessageBox.Show("NORMAL");
                p.faireAction(f);
            }

            string fonc = "";

            foreach (Fonctionnalites f in listeTache)
            {
                // Si la fonction est finie on l'enleve de la liste et on affiche qui l'a fini
                if (f.getStatus() == true)
                {
                    frmJeu.setAvancement(f.getPourcentNote() + (float)frmJeu.getAvancement());

                    texte += f.getNom() + " " + f.getPaDepense() + "/" + f.getPaNecess() + " Terminé par " + p.getPrenom() + "\n";
                    //listfonctionnalite.Remove(f);
                    listtransmise.Remove(f);


                    fonc = f.getNom();
                }
                else
                {
                    texte += f.getNom() + " " + f.getPaDepense() + "/" + f.getPaNecess() + " " + p.getPrenom() + "\n";
                }
            }

            // SUPPRESION DANS LA LISTE DES FONCTIONNALITES LES FONCTION FINIES
            if (fonc != "")
            {
                for (int i = 0; i < listeTache.Count; i++)
                {
                    if (listeTache[i].getNom() == fonc)
                    {
                        listeTache.RemoveAt(i);
                    }
                }
            }

            // ENVOIE DU TEXTE A AFFICHER DANS LE FRMJEU
            frmJeu.remplir(texte);
        }
Beispiel #5
0
        /**
         * Mode hard : pas d'aide et pas de popup pour guider le joueur
         */
        public void lancerJeu2(frmMenu fm)
        {
            fm.Hide();


            Random aleatoire = new Random();

            ArrayList prenoms = new ArrayList();

            prenoms.Add("Pierre");
            prenoms.Add("Max");
            prenoms.Add("André");
            prenoms.Add("Alexandre");
            prenoms.Add("Gaël");
            prenoms.Add("Gilles");
            prenoms.Add("Georges");
            prenoms.Add("Viviane");
            prenoms.Add("Clémentine");
            prenoms.Add("Alice");
            prenoms.Add("Mathilde");
            prenoms.Add("Sophie");


            //creation personnage
            int    randomise = aleatoire.Next(prenoms.Count);
            string name      = (string)prenoms[randomise];

            randomise = aleatoire.Next(51);
            int connaissance = randomise;

            randomise = aleatoire.Next(51);
            int stress = randomise;

            randomise = aleatoire.Next(101);
            int sociabilite = randomise;

            p1 = remplirPersonnage(name, connaissance, stress, sociabilite, null, null);

            randomise    = aleatoire.Next(prenoms.Count);
            name         = (string)prenoms[randomise];
            randomise    = aleatoire.Next(51);
            connaissance = randomise;
            randomise    = aleatoire.Next(51);
            stress       = randomise;
            randomise    = aleatoire.Next(101);
            sociabilite  = randomise;
            p2           = remplirPersonnage(name, connaissance, stress, sociabilite, null, null);

            randomise    = aleatoire.Next(prenoms.Count);
            name         = (string)prenoms[randomise];
            randomise    = aleatoire.Next(51);
            connaissance = randomise;
            randomise    = aleatoire.Next(51);
            stress       = randomise;
            randomise    = aleatoire.Next(101);
            sociabilite  = randomise;
            p3           = remplirPersonnage(name, connaissance, stress, sociabilite, null, null);

            randomise    = aleatoire.Next(prenoms.Count);
            name         = (string)prenoms[randomise];
            randomise    = aleatoire.Next(51);
            connaissance = randomise;
            randomise    = aleatoire.Next(51);
            stress       = randomise;
            randomise    = aleatoire.Next(101);
            sociabilite  = randomise;
            p4           = remplirPersonnage(name, connaissance, stress, sociabilite, null, null);



            /*
             * FONCTIONNALITES ( NOM , PANECESS , POURCENTNOTE , NVCONNAIS , PADEPENSE , TYPE) */

            /* SUR 900 */



            /* Recherche pour obtenir plus de niveau de compétences */
            Fonctionnalites f0 = new Fonctionnalites("Formation", 100000, 0, 0, "Rechercher");    //n'impacte pas l'avancement du projet, elle sert juste à obtenir plus de compétences

            /* Spécification sur 240*/
            Fonctionnalites f1 = new Fonctionnalites("Cahier des charges", 100, 0, 20, "Spécification");
            Fonctionnalites f2 = new Fonctionnalites("Objectifs pédagogiques", 60, 0, 10, "Spécification");
            Fonctionnalites f3 = new Fonctionnalites("Documentation", 40, 0, 20, "Spécification");


            /* Conception sur 120*/
            Fonctionnalites f4 = new Fonctionnalites("MCD", 20, 0, 40, "Concevoir");
            Fonctionnalites f5 = new Fonctionnalites("Interface graphique ", 80, 0, 50, "Concevoir");
            Fonctionnalites f6 = new Fonctionnalites("GIT", 20, 0, 20, "Concevoir");

            /* Developpement sur 450*/
            Fonctionnalites f7 = new Fonctionnalites("Classes", 150, 0, 50, "Développer");
            Fonctionnalites f8 = new Fonctionnalites("Controleur", 150, 0, 65, "Développer");
            Fonctionnalites f9 = new Fonctionnalites("Moteur de jeu", 150, 0, 50, "Développer");

            /* Recette */
            Fonctionnalites f11 = new Fonctionnalites("Test du code", 20, 0, 40, "Recette");
            Fonctionnalites f12 = new Fonctionnalites("Faire le point avec le client", 10, 0, 20, "Recette");

            /* Livraison */
            Fonctionnalites f13 = new Fonctionnalites("Livraison", 10, 0, 5, "Livraison");


            //REUNION(THEME DE LA REUNION) et le statut de cette réunion est par défaut à false
            //  Reunion r1 = new Reunion("Faire connaissance", "Découvir l'équipe");
            Reunion r2 = new Reunion("Évaluer le potentiel du groupe", "Découvir l'équipe");
            Reunion r3 = new Reunion("Révèle les qualités et les défauts", "Découvir l'équipe");
            Reunion r4 = new Reunion("Analyse des affinités de chacun", "Découvir l'équipe");
            //   Reunion r5 = new Reunion("Découvrir le projet", "Examiner le projet");
            Reunion r6 = new Reunion("Analyse de la demande du client et de ses besoins + Définir un cahier des charges", "Examiner le projet");
            Reunion r7 = new Reunion("Mettre en place un système d'organisation", "Examiner le projet");
            Reunion r8 = new Reunion("Mettre en commun le travail et l'avancement de chacun", "Faire le point");


            //    listReunion.Add(r1);
            listReunion.Add(r2);
            listReunion.Add(r3);
            listReunion.Add(r4);
            //  listReunion.Add(r5);
            listReunion.Add(r6);
            listReunion.Add(r7);
            listReunion.Add(r8);


            listfonctionnalite.Add(f0);
            listfonctionnalite.Add(f1);
            listfonctionnalite.Add(f2);
            listfonctionnalite.Add(f3);
            listfonctionnalite.Add(f4);
            listfonctionnalite.Add(f5);
            listfonctionnalite.Add(f6);
            listfonctionnalite.Add(f7);
            listfonctionnalite.Add(f8);
            listfonctionnalite.Add(f9);
            listfonctionnalite.Add(f11);
            listfonctionnalite.Add(f12);
            listfonctionnalite.Add(f13);
            verifPourcentNote();
            foreach (Fonctionnalites f in listfonctionnalite)
            {
                listtransmise.Add(f);
            }

            listPersonnage.Add(p1);
            listPersonnage.Add(p2);
            listPersonnage.Add(p3);
            listPersonnage.Add(p4);


            Personnage persov;

            persov = new Personnage("-", -1, -1, -1, null, null);

            int besoinAffinite = 120;
            int besoinDeteste  = 80;

            //les relations sont determinees a 50% par la chance et 50% la sociabilite
            foreach (Personnage p in listPersonnage)
            {
                Personnage meilleurAffinite = persov;
                Personnage pireDeteste      = persov;

                foreach (Personnage p1 in listPersonnage)
                {
                    if (p1 != p)
                    {
                        int rand = aleatoire.Next(101);
                        if (p1.getSociabilite() + p.getSociabilite() + rand >= besoinAffinite)
                        {
                            meilleurAffinite = p1;
                        }
                        if (p1.getSociabilite() + p.getSociabilite() - rand <= besoinDeteste && p1 != meilleurAffinite && p1.getAffinite() != p)
                        {
                            pireDeteste = p1;
                        }
                    }
                }

                p.setAffinite(meilleurAffinite);
                p.setDeteste(pireDeteste);
            }

            //si affinite avec quelqu'un qui nous deteste : on enleve le deteste
            foreach (Personnage p in listPersonnage)
            {
                if ((p.getAffinite()).getDeteste() == p)
                {
                    (p.getAffinite()).setDeteste(persov);
                }
            }


            attributionQualitesDefautsPointsFortsEtFaibles();

            jeu = new frmJeu(p1, p2, p3, p4, 35);

            jeu.Refresh();
            jeu.Show();
            frmReunionPopUp popup = new frmReunionPopUp();

            popup.Show();
        }
Beispiel #6
0
        /**
         * Mode hard : pas d'aide et pas de popup pour guider le joueur
         */
        public void lancerJeu2(frmMenu fm)
        {
            fm.Hide();

            /*
             */

            /* ---------------- qualites et defauts ---------------- */
            Random aleatoire = new Random();



            listeQualites.Add("Sang-froid");        //stress monte moins vite
            listeQualites.Add("Inépuisable");       //fatigue monte moins vite
            listeQualites.Add("Talentueux");        //ttes les actions *1,5
            listeQualites.Add("Développeur né");    //dv *1,5
            listeQualites.Add("Concepteur né");     //conception *1,5
            listeQualites.Add("Chercheur né");      //recherche *1,5
            listeQualites.Add("Diplomate");         //relations +10 points


            listeDefauts.Add("Stressé");                //stress monte plus vite
            listeDefauts.Add("Fatigué");                //fatigue monte plus vite
            listeDefauts.Add("Incompétent notoire");    //ttes les actions *1,5
            listeDefauts.Add("Mauvais développeur");    //dv * 0,5
            listeDefauts.Add("Mauvais concepteur");     //conception * 0,5
            listeDefauts.Add("Mauvaise chercheur");     //recherche * 0,5
            listeDefauts.Add("Asocial");                //relations -10 points



            //creation personnage
            p1 = remplirPersonnage("Valentin", 20, 0, 82, null, null);
            p2 = remplirPersonnage("Aymeric", 20, 20, 80, null, null);
            p3 = remplirPersonnage("Mathieu", 33, 40, 50, null, null);
            p4 = remplirPersonnage("Samir", 42, 10, 45, null, null);



            /*
             * FONCTIONNALITES ( NOM , PANECESS , POURCENTNOTE , NVCONNAIS , PADEPENSE , TYPE) */



            /* Recherche pour obtenir plus de niveau de compétences */
            Fonctionnalites f0 = new Fonctionnalites("Formation", 100000, 0, 0, "Rechercher");    //n'impacte pas l'avancement du projet, elle sert juste à obtenir plus de compétences

            /* Spécification sur 400*/
            Fonctionnalites f1 = new Fonctionnalites("Cahier des charges", 200, 0, 20, "Spécification");
            Fonctionnalites f2 = new Fonctionnalites("Objectifs pédagogiques", 120, 0, 10, "Spécification");
            Fonctionnalites f3 = new Fonctionnalites("Documentation", 80, 0, 20, "Spécification");


            /* Conception sur 240*/
            Fonctionnalites f4 = new Fonctionnalites("MCD", 40, 0, 40, "Concevoir");
            Fonctionnalites f5 = new Fonctionnalites("Interface graphique ", 160, 0, 50, "Concevoir");
            Fonctionnalites f6 = new Fonctionnalites("GIT", 40, 0, 20, "Concevoir");

            /* Developpement sur 900*/
            Fonctionnalites f7 = new Fonctionnalites("Classes", 300, 0, 50, "Développer");
            Fonctionnalites f8 = new Fonctionnalites("Controleur", 300, 0, 65, "Développer");
            Fonctionnalites f9 = new Fonctionnalites("Moteur de jeu", 300, 0, 50, "Développer");

            /* Recette */
            Fonctionnalites f11 = new Fonctionnalites("Test du code", 40, 0, 40, "Recette");
            Fonctionnalites f12 = new Fonctionnalites("Faire le point avec le client", 20, 0, 20, "Recette");

            /* Livraison */
            Fonctionnalites f13 = new Fonctionnalites("Livraison", 10, 0, 5, "Livraison");


            //REUNION(THEME DE LA REUNION) et le statut de cette réunion est par défaut à false
            Reunion r2 = new Reunion("Évaluer le potentiel du groupe", "Découvir l'équipe");
            Reunion r3 = new Reunion("Révèle les qualités et les défauts", "Découvir l'équipe");
            Reunion r4 = new Reunion("Analyse des affinités de chacun", "Découvir l'équipe");
            Reunion r6 = new Reunion("Analyse de la demande du client et de ses besoins + Définir un cahier des charges", "Examiner le projet");
            Reunion r7 = new Reunion("Mettre en place un système d'organisation", "Examiner le projet");
            Reunion r8 = new Reunion("Mettre en commun le travail et l'avancement de chacun", "Faire le point");


            listReunion.Add(r2);
            listReunion.Add(r3);
            listReunion.Add(r4);
            listReunion.Add(r6);
            listReunion.Add(r7);
            listReunion.Add(r8);


            listfonctionnalite.Add(f0);
            listfonctionnalite.Add(f1);
            listfonctionnalite.Add(f2);
            listfonctionnalite.Add(f3);
            listfonctionnalite.Add(f4);
            listfonctionnalite.Add(f5);
            listfonctionnalite.Add(f6);
            listfonctionnalite.Add(f7);
            listfonctionnalite.Add(f8);
            listfonctionnalite.Add(f9);
            verifPourcentNote();

            foreach (Fonctionnalites f in listfonctionnalite)
            {
                listtransmise.Add(f);
            }

            listPersonnage.Add(p1);
            listPersonnage.Add(p2);
            listPersonnage.Add(p3);
            listPersonnage.Add(p4);



            foreach (Personnage p in listPersonnage)
            {
                for (int i = 0; i < nbQualites; i++)
                {
                    int rand1 = aleatoire.Next(listeQualites.Count);   //de 0 à X-1
                    p.qualites.Add(listeQualites[rand1]);
                }

                for (int i = 0; i < nbDefauts; i++)
                {
                    int rand2 = aleatoire.Next(listeDefauts.Count);   //de 0 à X-1
                                                                      //while (rand2 == rand1)
                                                                      //{
                                                                      //rand2 = aleatoire.Next(listeDefauts.Count);  //on fait cela car les qualites et defauts avec le meme argument sont opposés et incompatibles irl
                                                                      //}
                    p.defauts.Add(listeDefauts[rand2]);
                }

                int randAffinite = aleatoire.Next(4);
                int randDeteste  = aleatoire.Next(4);

                if (listPersonnage[randAffinite] != p)
                {
                    p.setAffinite((Personnage)listPersonnage[randAffinite]);
                }



                if (listPersonnage[randDeteste] != p && listPersonnage[randDeteste] != p.getAffinite())
                {
                    p.setDeteste((Personnage)listPersonnage[randDeteste]);
                }
            }

            attributionQualitesDefautsPointsFortsEtFaibles();


            jeu = new frmJeu(p1, p2, p3, p4, 20);

            jeu.Refresh();
            jeu.Show();
        }
Beispiel #7
0
        /**
         * Assignation des personnages aux User_Controls, affichage de tous les labels et des progress bar
         * qui sont générés dynamiquement.
         */
        public frmJeu(Personnage p1, Personnage p2, Personnage p3, Personnage p4, int tourmax)
        {
            InitializeComponent();

            nbTourMax = tourmax;
            int screenWidth  = Screen.PrimaryScreen.Bounds.Width;
            int screenHeight = Screen.PrimaryScreen.Bounds.Height;

            this.Size = new Size(screenWidth, screenHeight);


            lblTacheReal.Size        = new Size(((screenWidth - lblTacheReal.Location.X) - lblTacheReal.Size.Width) + lblTacheReal.Size.Width, lblTacheReal.Size.Height - 5);
            pnlProgressBarTache.Size = new Size(((screenWidth - pnlProgressBarTache.Location.X) - pnlProgressBarTache.Size.Width) + pnlProgressBarTache.Size.Width, pnlProgressBarTache.Size.Height - 5);
            panel2.Size = new Size(screenWidth, panel2.Height);


            foreach (Fonctionnalites f in ControleurJeu.getListeFonctionnalite())
            {
                if (f.getPaDepense() < f.getPaNecess() && f.getStatus() == false)
                {
                    lstTache.Items.Add(f.getNom() + " (" + f.getNvConnaissNecces() + ")");
                }
            }
            lstTache.AllowDrop       = true;
            uC_Personnage1.AllowDrop = true;
            uC_Personnage2.AllowDrop = true;
            uC_Personnage3.AllowDrop = true;
            uC_Personnage4.AllowDrop = true;

            this.Refresh();

            listPersonnage.Clear();
            crunchBool = false;


            ArrayList listPerso = ControleurJeu.getListePersonnage();

            listPersonnage.Add(p1);
            listPersonnage.Add(p2);
            listPersonnage.Add(p3);
            listPersonnage.Add(p4);


            initUC(uC_Personnage1, p1);
            initUC(uC_Personnage2, p2);
            initUC(uC_Personnage3, p3);
            initUC(uC_Personnage4, p4);

            foreach (Object o in Controls)
            {
                if (o is UC_Personnage)
                {
                    UC_Personnage uC_Perso = new UC_Personnage();
                    uC_Perso.Enabled = true;
                }
            }

            ArrayList       listTache  = ControleurJeu.getListeFonctionnalite();
            int             posBas     = 5;
            Fonctionnalites fPrecedent = null;

            //Initialisation ProgressBar pour chaque tache
            for (int i = 0; i <= listTache.Count - 1; i++)
            {
                Bunifu.Framework.UI.BunifuProgressBar progressBar = new Bunifu.Framework.UI.BunifuProgressBar();
                Label           l = new Label();
                Fonctionnalites f = (Fonctionnalites)listTache[i];

                if (f.getNom() != "Formation")
                {
                    if (fPrecedent == null || f.getType() != fPrecedent.getType())
                    {
                        posBas += 25;
                        Label lblaffichageType = new Label();
                        lblaffichageType.Text     = f.getType();
                        lblaffichageType.Location = new System.Drawing.Point(0, posBas);
                        lblaffichageType.Font     = new System.Drawing.Font("Cooper Black", 19F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
                        lblaffichageType.Size     = new System.Drawing.Size(200, 45);
                        lblaffichageType.Tag      = 10; //permet d'identifier les labels titres
                        posBas += 50;
                        pnlProgressBarTache.Controls.Add(lblaffichageType);
                    }

                    fPrecedent = f;     //remet à jour la fonctionnalités précédente

                    l.Font      = new System.Drawing.Font("Cooper Black", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
                    l.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
                    l.BackColor = pnlProgressBarTache.BackColor;
                    l.Location  = new System.Drawing.Point(0, posBas);
                    l.Size      = new System.Drawing.Size(220, 20);
                    l.Text      = f.getNom();
                    if (f.getType() == "Spécification")
                    {
                        l.ForeColor = Color.DarkRed;
                    }
                    if (f.getType() == "Concevoir")
                    {
                        l.ForeColor = Color.Green;
                    }
                    if (f.getType() == "Développer")
                    {
                        l.ForeColor = Color.Purple;
                    }
                    if (f.getType() == "Recette")
                    {
                        l.ForeColor = Color.DarkGray;
                    }
                    if (f.getType() == "Livraison")
                    {
                        l.ForeColor = Color.Maroon;
                    }


                    progressBar.BackColor     = System.Drawing.Color.Silver;
                    progressBar.BorderRadius  = 5;
                    progressBar.ProgressColor = System.Drawing.Color.Teal;
                    progressBar.Size          = new System.Drawing.Size(pnlProgressBarTache.Width - 200, 20);
                    progressBar.Location      = new System.Drawing.Point(l.Location.X + 200, l.Location.Y);
                    progressBar.Tag           = i;
                    progressBar.Value         = 0;

                    pnlProgressBarTache.Controls.Add(progressBar);
                    pnlProgressBarTache.Controls.Add(l);
                    posBas += 25;
                }
            }
        }
Beispiel #8
0
        /**
         * Tour suivant : Calcul des attributs des personnages et mise à jour des User_Controls.
         * Vérification si le crunch est activé ou non, random qui détermine si un personnage
         * tombe malade.
         */
        private void btnTourSuivant_Click(object sender, EventArgs e)
        {
            uC_Personnage1.arreterClignotant();
            uC_Personnage2.arreterClignotant();
            uC_Personnage3.arreterClignotant();
            uC_Personnage4.arreterClignotant();


            lblTour.Visible    = true;
            btnReunion.Enabled = true;

            btnRepos.Enabled = true;
            if (crunchBool == true)
            {
                foreach (Object o in Controls)
                {
                    if (o is Panel)
                    {
                        Panel p = (Panel)o;
                        foreach (Object c in p.Controls)
                        {
                            if (c is UC_Personnage)
                            {
                                UC_Personnage up = (UC_Personnage)c;
                                up.Enabled = true;
                                up.crunchDesactive();
                                crunchBool = false;
                            }
                        }
                    }
                }
            }


            // FIN SI DEADLINE OU TOUTES LES FONCTIONS SONT FINIES
            // A REVOIR ( VERIFIER SI LE POURCENTAGE DU PROJET == 100 --> FIN )
            if ((nbTour >= nbTourMax) || ((ControleurJeu.verifierTacheTermine())))
            {
                if (ControleurJeu.verifierTacheTermine())
                {
                    ControleurJeu.arreterJeu(rtbListeF.Text, 0);

                    this.Close();
                }
                ControleurJeu.arreterJeu(rtbListeF.Text);

                this.Close();
            }

            // Pre remplissage de toutes les taches pour le tour actuel pour chaque perso
            foreach (Object o in Controls)
            {
                if (o is Panel)
                {
                    Panel p = (Panel)o;

                    foreach (Object c in p.Controls)
                    {
                        if (c is UC_Personnage)
                        {
                            UC_Personnage up = (UC_Personnage)c;

                            up.remplirListeAffinite();
                        }
                    }
                }
            }



            //modification des taches des user controls
            foreach (Object o in Controls)
            {
                if (o is Panel)
                {
                    Panel p = (Panel)o;

                    foreach (Object c in p.Controls)
                    {
                        if (c is UC_Personnage)
                        {
                            UC_Personnage up = (UC_Personnage)c;

                            up.donnerTachePerso();
                        }
                    }
                }
            }

            foreach (Object o in Controls)
            {
                if (o is Panel)
                {
                    Panel p = (Panel)o;

                    foreach (Object c in p.Controls)
                    {
                        if (c is UC_Personnage)
                        {
                            UC_Personnage up = (UC_Personnage)c;

                            up.viderListeAffinite();
                        }
                    }
                }
            }



            try
            {
                // REMPLISSAGE DEUXIEME "CONSOLE"
                rtbListeF.Text += "\nJournée " + nbTour.ToString() + ":\n";
                rtbListeF.Text += s;

                s = "";


                // MISE A ZERO DES COMBOBOX POUR NE PLUS AVOIR LES ANCIENS CHOIX
                foreach (Object o in Controls)
                {
                    if (o is Panel)
                    {
                        Panel p = (Panel)o;

                        foreach (Object c in p.Controls)
                        {
                            if (c is UC_Personnage)
                            {
                                UC_Personnage up = (UC_Personnage)c;
                                up.cleanCBO();
                            }
                        }
                    }
                }

                ControleurJeu.nouveauTour();



                this.augmenterNbTour();   //incremente nb de tour
                lblTour.Text = "Tour : " + nbTour.ToString() + " / " + nbTourMax.ToString();

                ArrayList listPerso = ControleurJeu.getListePersonnage();

                Personnage p1 = (Personnage)listPerso[0];
                Personnage p2 = (Personnage)listPerso[1];
                Personnage p3 = (Personnage)listPerso[2];
                Personnage p4 = (Personnage)listPerso[3];

                //mise a jour des persos apres avoir effectue les taches
                initUC(uC_Personnage1, p1);
                initUC(uC_Personnage2, p2);
                initUC(uC_Personnage3, p3);
                initUC(uC_Personnage4, p4);

                List <UC_Personnage> listUC = new List <UC_Personnage>();
                listUC.Add(uC_Personnage1);
                listUC.Add(uC_Personnage2);
                listUC.Add(uC_Personnage3);
                listUC.Add(uC_Personnage4);

                uC_Personnage1.cleanCBO();
                uC_Personnage2.cleanCBO();
                uC_Personnage3.cleanCBO();
                uC_Personnage4.cleanCBO();

                Random rnd  = new Random();
                int    alea = rnd.Next(20);
                if (alea <= 3)
                {
                    UC_Personnage u = listUC[alea];
                    u.getPersonnage().setMalade(true);
                    u.getPersonnage().setDisponible(false);
                }


                // FIN SI DEADLINE OU TOUTES LES FONCTIONS SONT FINIES
                // A REVOIR ( VERIFIER SI LE POURCENTAGE DU PROJET == 100 --> FIN )
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("Selectionnez Action");
            }


            //Mettre à jour la liste des tâches à effectuer, c'est-à-dire que l'on vérifie si la tâche est complété ou non. Si c'est le cas alors on l'enlève de la liste
            lstTache.Items.Clear();
            foreach (Fonctionnalites f in ControleurJeu.getListeFonctionnalite())
            {
                if (f.getPaDepense() < f.getPaNecess() && f.getStatus() == false)
                {
                    lstTache.Items.Add(f.getNom() + " (" + f.getNvConnaissNecces() + ")");
                }
            }



            //Actualiser les progressBars pour chaque tache
            ArrayList listFonctionnalite = ControleurJeu.getListeFonctionnalite();

            for (int i = 0; i <= listFonctionnalite.Count - 1; i++)
            {
                foreach (Object o in Controls)
                {
                    if (o is Panel)
                    {
                        Panel p = (Panel)o;
                        foreach (Object ob in p.Controls)
                        {
                            if (ob is Bunifu.Framework.UI.BunifuProgressBar)
                            {
                                Bunifu.Framework.UI.BunifuProgressBar pb = (Bunifu.Framework.UI.BunifuProgressBar)ob;
                                if ((int)pb.Tag == i)
                                {
                                    Fonctionnalites f = (Fonctionnalites)listFonctionnalite[i];
                                    foreach (Fonctionnalites ft in ControleurJeu.getListeFonctionnalite())
                                    {
                                        if (f.getNom() == ft.getNom())
                                        {
                                            float val1 = (float)ft.getPaDepense();
                                            float val2 = (float)ft.getPaNecess();
                                            float res  = (val1 / val2) * 100;
                                            if (res >= 100)
                                            {
                                                res = 100;
                                            }
                                            pb.Value = (int)res;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }