public override void Load()
        {
            placement     = new List <int>();
            caractere     = new ShuffleList <char>();
            toutestouches = new ShuffleList <char>();
            listeTouche   = new List <Touche>();

            placement.Add(3);
            placement.Add(17);
            placement.Add(21);
            placement.Add(25);

            caractere.Add('P');
            caractere.Add('R');
            caractere.Add('E');
            caractere.Add('S');

            lblPresser = new Label()
            {
                Text = "PRESSER", Location = new Point(315, 60), TextAlign = ContentAlignment.MiddleCenter, Font = new Font("Arial", 22), Width = 160, Height = 45
            };
            Controls.Add(lblPresser);

            // boucle qui va ajouter dans le tableau toutetouches toute les lettre de l'alphabet
            for (char i = 'A'; i <= 'Z'; i++)
            {
                if (i == 'P' | i == 'R' | i == 'E' | i == 'S') // on exclue les touches avec un emplacement reservé
                {
                    continue;
                }
                toutestouches.Add(i);
            }
            toutestouches.Shuffle();
            caractere.Shuffle();

            //Place les lettres avec un emplacement réservé au bon endroit dans la liste toutestouches
            while (placement.Count > 0)
            {
                int iPlace = placement[0];
                placement.RemoveAt(0);

                char clettre = caractere[0];
                caractere.RemoveAt(0);
                toutestouches.Insert(iPlace, clettre);
            }

            for (int i = 0; i <= 25; i++)
            {
                Touche touche = new Touche("" + toutestouches[i], iWidth, iHeight);
                Controls.Add(touche);
                listeTouche.Add(touche);
                touche.BringToFront(); // Fait passer le contrôle au premier rang dans l'ordre de plan.
            }
            PlaceTouche();
        }
Пример #2
0
        public void Shuffle()
        {
            do
            {
                foreach (Piece piece in Pieces)
                {
                    if (piece.Location == new Point(PiecesSize.X - 1, PiecesSize.Y - 1))
                    {
                        Swap(piece, EmptyPiece);
                        break;
                    }
                }
                ShuffleList <Piece> shuffledList = new ShuffleList <Piece>();
                foreach (Piece piece in Pieces)
                {
                    shuffledList.Add(piece);
                }
                shuffledList.Shuffle();

                for (int i = 0; i < shuffledList.Count; i++)
                {
                    Pieces[i].Location = shuffledList[i].Destination;
                }

                if (!IsSolvable())
                {
                    Swap(shuffledList[0], shuffledList[1]);
                }
            } while (IsSolved());

            Moves = 0;
            Start = true;
        }
Пример #3
0
        /// <summary>
        /// Cette méthode crée une liste contenant les différentes énigmes et la mélange avant de la retourner.
        /// </summary>
        /// <returns>Une liste d'énigme mélangées</returns>
        public static List<Enigma> ReferenceEnigmas()
        {
            ShuffleList<Enigma> enigmas = new ShuffleList<Enigma>();

            enigmas.Add(new Enigma(new SimpleEnigmaPanel(), "C'est simple"));
            enigmas.Add(new Enigma(new SimplePuzzleEnigmaPanel(), "Puzzle"));
            enigmas.Add(new Enigma(new OuEstLaReponseEnigmaPanel(), "Ou est la réponse ?"));
            enigmas.Add(new Enigma(new AppuieReponseEnigmaPanel(), "Appuie sur la réponse"));
            enigmas.Add(new Enigma(new CaseVideEnigmaPanel(), "Et ben non"));
            enigmas.Add(new Enigma(new NfsEnigmaPanel(), "Need For Speed"));
            enigmas.Add(new Enigma(new RectangleEnigmaPanel(), "Trouve le rectangle"));

            enigmas.Shuffle();
            return enigmas;
        }
Пример #4
0
        public override void AddTrack(PlayableBase track)
        {
            base.AddTrack(track);
            Tracks.Add(track);
            ShuffleList?.Add(track);

            track.IsAdded = true;
            var tmr = new DispatcherTimer {
                Interval = TimeSpan.FromMilliseconds(500)
            };

            tmr.Tick += (s, e) =>
            {
                track.IsAdded = false;
                tmr.Stop();
            };
            tmr.Start();
        }
Пример #5
0
        /// <summary>
        /// Cette méthode permet de générer une liste de pièces de puzzle d'après un texte.
        ///
        /// Le texte est d'abord inséré dans un Label avec la police GenericMonospace de taille 72pt avant d'être découpé en plusieurs morceaux.
        /// </summary>
        /// <param name="text">Le texte à afficher</param>
        /// <param name="xCuts">Le nombre de pièces en largeur</param>
        /// <param name="yCuts">Le nombre de pièces en hauteur</param>
        /// <returns>Une liste de pièces contenant chacun une partie de l'image</returns>
        public static List <PuzzlePiece> GeneratePieces(string text, int xCuts, int yCuts)
        {
            ShuffleList <PuzzlePiece> pieces = new ShuffleList <PuzzlePiece>();

            Size referenceRealSize = TextRenderer.MeasureText(text, new Font(FontFamily.GenericMonospace, 72));
            int  width             = referenceRealSize.Width / xCuts;
            int  height            = referenceRealSize.Height / yCuts;

            for (int j = 0; j <= referenceRealSize.Height - height; j += height)
            {
                for (int i = 0; i <= referenceRealSize.Width - width; i += width)
                {
                    Label label = new Label();
                    label.Text     = text;
                    label.Font     = new Font(FontFamily.GenericMonospace, 72);
                    label.AutoSize = true;
                    PuzzlePiece piece = new PuzzlePiece(label, new Point(-i, -j));
                    piece.Size = new Size(width, height);
                    pieces.Add(piece);
                }
            }
            pieces.Shuffle();
            return(pieces);
        }
Пример #6
0
        /// <summary>
        /// Cette méthode crée une liste contenant les différentes énigmes et la mélange avant de la retourner.
        /// </summary>
        /// <returns>Une liste d'énigme mélangées</returns>
        public static List <Enigma> ReferenceEnigmas()
        {
            ShuffleList <Enigma> enigmas = new ShuffleList <Enigma>();

            enigmas.Add(new Enigma(new AppuieReponseEnigmaPanel(), "Appuie sur la réponse"));
            enigmas.Add(new Enigma(new BeatThemAllEnigmaPanel(), "Beat them all"));
            enigmas.Add(new Enigma(new BusEnigmaPanel(), "Sens du bus"));
            enigmas.Add(new Enigma(new CaseVideEnigmaPanel(), "Et ben non"));
            enigmas.Add(new Enigma(new CharadeEnigmaPanel(), "Charade"));
            enigmas.Add(new Enigma(new ClicRapideEnigmaPanel(), "Clic-rapide"));
            enigmas.Add(new Enigma(new DingbatEnigmaPanel(), "Jeu de mot"));
            enigmas.Add(new Enigma(new CodeBarreEnigmaPanel(), "Le code barre"));
            enigmas.Add(new Enigma(new FruitsEnigmaPanel(), "Calcul"));
            enigmas.Add(new Enigma(new HazardEnigmaPanel(), "Hazard"));
            enigmas.Add(new Enigma(new HiddenCharacterEnigmalPanel(), "Caractère caché"));
            enigmas.Add(new Enigma(new InvisibleAnwerEnigmaPanel(), "Invisible Answer"));
            enigmas.Add(new Enigma(new LettreHaute(), "Quelle est la plus haute ?"));
            enigmas.Add(new Enigma(new MemoireDesChiffresEnigmaPanel(), "Souviens toi"));
            enigmas.Add(new Enigma(new MorpionEnigmaPanel(), "Morpion"));
            enigmas.Add(new Enigma(new NbrCarresEnigmaPanel(), "Nombre de carrés"));
            enigmas.Add(new Enigma(new NfsEnigmaPanel(), "Need For Speed"));
            enigmas.Add(new Enigma(new NinePointsEnigmaPanel(), "9 Points"));
            enigmas.Add(new Enigma(new OiseauxEnigmaPanel(), "Le plus long mot"));
            enigmas.Add(new Enigma(new OpenDoorEnigmaPanel(), "Ouvrez la porte !"));
            enigmas.Add(new Enigma(new OuEstLaReponseEnigmaPanel(), "Où est la réponse ?"));
            enigmas.Add(new Enigma(new PenduEnigmaPanel(), "Le jeu du pendu"));
            enigmas.Add(new Enigma(new PhoqueEnigmaPanel(), "Chop' les poissons"));
            enigmas.Add(new Enigma(new RectangleEnigmaPanel(), "Trouve le rectangle"));
            enigmas.Add(new Enigma(new ReflexeEnigmaPanel(), "Reflexe"));
            enigmas.Add(new Enigma(new SeptDifferencesEnigmaPanel(), "Le jeu des 7 différences"));
            enigmas.Add(new Enigma(new SimpleEnigmaPanel(), "C'est simple"));
            enigmas.Add(new Enigma(new SimplePuzzleEnigmaPanel(), "Puzzle"));
            enigmas.Add(new Enigma(new TapeTaupeEnigmaPanel(), "Tape-taupe"));
            enigmas.Add(new Enigma(new TrouverEnigmaPanel(), "Trouver Cristiano"));
            enigmas.Add(new Enigma(new ZombieInvasionEnigmaPanel(), "ZombieInvasion"));

            Enigma runEnigma = new Enigma(new RunEnigmaPanel(), "Roux run");

            enigmas.Add(runEnigma);
            Enigma runEnigmaInverse = new Enigma(new RunEnigmaPanel(true), "Roux run encore");

            runEnigmaInverse.AddPrerequisite(runEnigma);
            enigmas.Add(runEnigmaInverse);

            enigmas.Shuffle();
            return(enigmas);
        }
Пример #7
0
        /// <summary>
        /// Cette méthode crée une liste contenant les différentes énigmes et la mélange avant de la retourner.
        /// </summary>
        /// <returns>Une liste d'énigme mélangées</returns>
        public static List<Enigma> ReferenceEnigmas()
        {
            ShuffleList<Enigma> enigmas = new ShuffleList<Enigma>();

            enigmas.Add(new Enigma(new SimpleEnigmaPanel(), "C'est simple"));
            enigmas.Add(new Enigma(new SimplePuzzleEnigmaPanel(), "Puzzle"));
            enigmas.Add(new Enigma(new OuEstLaReponseEnigmaPanel(), "Où est la réponse ?"));
            enigmas.Add(new Enigma(new OiseauxEnigmaPanel(), "Le plus long mot"));
            enigmas.Add(new Enigma(new BusEnigmaPanel(), "Sens du bus"));
            enigmas.Add(new Enigma(new CharadeEnigmaPanel(), "Charade"));
            enigmas.Add(new Enigma(new TrouverEnigmaPanel(), "Trouver Cristiano"));
            enigmas.Add(new Enigma(new SeptDifferencesEnigmaPanel(), "Le jeu des 7 différences"));
            enigmas.Add(new Enigma(new OpenDoorEnigmaPanel(), "Ouvrez la porte !"));
            enigmas.Add(new Enigma(new HazardEnigmaPanel(), "Hazard"));
            enigmas.Add(new Enigma(new MemoireDesChiffresEnigmaPanel(), "Souviens toi"));
            enigmas.Add(new Enigma(new NbrCarresEnigmaPanel(), "Nombre de carrés"));
            enigmas.Add(new Enigma(new AppuieReponseEnigmaPanel(), "Appuie sur la réponse"));
            enigmas.Add(new Enigma(new CaseVideEnigmaPanel(), "Et ben non"));
            enigmas.Add(new Enigma(new ReflexeEnigmaPanel(), "Reflexe"));
            enigmas.Add(new Enigma(new DingbatEnigmaPanel(), "Jeu de mot"));

            enigmas.Add(new Enigma(new NfsEnigmaPanel(), "Need For Speed"));
            enigmas.Add(new Enigma(new RectangleEnigmaPanel(), "Trouve le rectangle"));
            enigmas.Add(new Enigma(new PenduEnigmaPanel(), "Le jeu du pendu"));

            Enigma runEnigma = new Enigma(new RunEnigmaPanel(), "Roux run");
            enigmas.Add(runEnigma);
            Enigma runEnigmaInverse = new Enigma(new RunEnigmaPanel(true), "Roux run encore");
            runEnigmaInverse.AddPrerequisite(runEnigma);
            enigmas.Add(runEnigmaInverse);

            enigmas.Shuffle();
            return enigmas;
        }
Пример #8
0
        /// <summary>
        /// Cette méthode crée une liste contenant les différentes énigmes et la mélange avant de la retourner.
        /// </summary>
        /// <returns>Une liste d'énigme mélangées</returns>
        public static List<Enigma> ReferenceEnigmas()
        {
            ShuffleList<Enigma> enigmas = new ShuffleList<Enigma>();

            enigmas.Add(new Enigma(new SimpleEnigmaPanel(), "C'est simple"));
            enigmas.Add(new Enigma(new SimplePuzzleEnigmaPanel(), "Puzzle"));
            enigmas.Add(new Enigma(new OuEstLaReponseEnigmaPanel(), "Où est la réponse ?"));
            enigmas.Add(new Enigma(new OiseauxEnigmaPanel(), "Le plus long mot"));
            enigmas.Add(new Enigma(new BusEnigmaPanel(), "Sens du bus"));
            enigmas.Add(new Enigma(new CharadeEnigmaPanel(), "Charade"));
            enigmas.Add(new Enigma(new BeatThemAllEnigmaPanel(), "Beat them all"));
            enigmas.Add(new Enigma(new SeptDifferencesEnigmaPanel(), "Le jeu des 7 différences"));
            enigmas.Add(new Enigma(new OpenDoorEnigmaPanel(), "Ouvrez la porte !"));
            enigmas.Add(new Enigma(new HazardEnigmaPanel(), "Hazard"));
            enigmas.Add(new Enigma(new MemoireDesChiffresEnigmaPanel(), "Souviens toi"));
            enigmas.Add(new Enigma(new NbrCarresEnigmaPanel(), "Nombre de carrés"));
            enigmas.Add(new Enigma(new AppuieReponseEnigmaPanel(), "Appuie sur la réponse"));
            enigmas.Add(new Enigma(new CaseVideEnigmaPanel(), "Et ben non"));
            enigmas.Add(new Enigma(new ReflexeEnigmaPanel(), "Reflexe"));
            enigmas.Add(new Enigma(new DingbatEnigmaPanel(), "Jeu de mot"));
            enigmas.Shuffle();
            return enigmas;
        }
Пример #9
0
        /// <summary>
        /// Cette méthode crée une liste contenant les différentes énigmes et la mélange avant de la retourner.
        /// </summary>
        /// <returns>Une liste d'énigme mélangées</returns>
        public static List <Enigma> ReferenceEnigmas()
        {
            ShuffleList <Enigma> enigmas = new ShuffleList <Enigma>();

            enigmas.Add(new Enigma(new AppuieReponseEnigmaPanel(), "Appuie sur la réponse"));
            enigmas.Add(new Enigma(new BeatThemAllEnigmaPanel(), "Beat them all"));
            enigmas.Add(new Enigma(new BoiteNoireEnigmaPanel(), "Boite noire"));
            enigmas.Add(new Enigma(new BusEnigmaPanel(), "Sens du bus"));
            enigmas.Add(new Enigma(new CaseVideEnigmaPanel(), "Et ben non"));
            enigmas.Add(new Enigma(new CharadeEnigmaPanel(), "Charade"));
            enigmas.Add(new Enigma(new ClicRapideEnigmaPanel(), "Clic-rapide"));
            enigmas.Add(new Enigma(new ClouEnigmaPanel(), "Jeu du clou"));
            enigmas.Add(new Enigma(new CodeBarreEnigmaPanel(), "Le code barre"));
            enigmas.Add(new Enigma(new CombienDeSEnigmaPanel(), "Combien de s ?"));
            enigmas.Add(new Enigma(new CompteurEnigmaPanel(), "Compteur"));
            enigmas.Add(new Enigma(new CoucheCouleurEnigmaPanel(), "Couche Couleur"));
            enigmas.Add(new Enigma(new CrypteDeLaFoulqueDesTenebresEnigmaPanel(), "Foulque des Ténèbres"));
            enigmas.Add(new Enigma(new DingbatEnigmaPanel(), "Jeu de mot"));
            enigmas.Add(new Enigma(new FruitsEnigmaPanel(), "Calcul"));
            enigmas.Add(new Enigma(new HazardEnigmaPanel(), "Hazard"));
            enigmas.Add(new Enigma(new HiddenCharacterEnigmalPanel(), "Caractère caché"));
            enigmas.Add(new Enigma(new InvisibleAnwerEnigmaPanel(), "Invisible Answer"));
            enigmas.Add(new Enigma(new LettreHaute(), "Quelle est la plus haute ?"));
            enigmas.Add(new Enigma(new MemoireDesChiffresEnigmaPanel(), "Souviens toi"));
            enigmas.Add(new Enigma(new MorpionEnigmaPanel(), "Morpion"));
            enigmas.Add(new Enigma(new NbrCarresEnigmaPanel(), "Nombre de carrés"));
            enigmas.Add(new Enigma(new NfsEnigmaPanel(), "Need For Speed"));
            enigmas.Add(new Enigma(new NinePointsEnigmaPanel(), "9 Points"));
            enigmas.Add(new Enigma(new OiseauxEnigmaPanel(), "Le plus long mot"));
            enigmas.Add(new Enigma(new OpenDoorEnigmaPanel(), "Ouvrez la porte !"));
            enigmas.Add(new Enigma(new OuEstLaReponseEnigmaPanel(), "Où est la réponse ?"));
            enigmas.Add(new Enigma(new PenduEnigmaPanel(), "Le jeu du pendu"));
            enigmas.Add(new Enigma(new Pendu2EnigmaPanel(), "Pendu 2"));
            enigmas.Add(new Enigma(new PhoqueEnigmaPanel(), "Chop' les poissons"));
            enigmas.Add(new Enigma(new PlateformerEnigmaPanel(), "Plateformer"));
            enigmas.Add(new Enigma(new RebusEnigmaPanel(), "Rébus"));
            enigmas.Add(new Enigma(new RectangleEnigmaPanel(), "Trouve le rectangle"));
            enigmas.Add(new Enigma(new ReflexeEnigmaPanel(), "Reflexe"));
            enigmas.Add(new Enigma(new SeptDifferencesEnigmaPanel(), "Le jeu des 7 différences"));
            enigmas.Add(new Enigma(new SimpleEnigmaPanel(), "C'est simple"));
            enigmas.Add(new Enigma(new SimplePuzzleEnigmaPanel(), "Puzzle"));
            enigmas.Add(new Enigma(new TapeTaupeEnigmaPanel(), "Tape-taupe"));
            enigmas.Add(new Enigma(new TrouverEnigmaPanel(), "Trouver Cristiano"));
            enigmas.Add(new Enigma(new ZombieInvasionEnigmaPanel(), "ZombieInvasion"));

            // Énigmes avec prérequis

            Enigma runEnigma = new Enigma(new RunEnigmaPanel(), "Roux run");

            enigmas.Add(runEnigma);
            Enigma runEnigmaInverse = new Enigma(new RunEnigmaPanel(true), "Roux run encore");

            runEnigmaInverse.AddPrerequisite(runEnigma);
            enigmas.Add(runEnigmaInverse);

            Enigma switch1 = new Enigma(new SwitchesEnigmaPanel(3, "LUMINEUX"), "Allumez tout");

            enigmas.Add(switch1);
            Enigma switch2 = new Enigma(new SwitchesEnigmaPanel(4, "ÉBLOUISSANT"), "Rallumez tout");

            switch2.AddPrerequisite(switch1);
            enigmas.Add(switch2);
            Enigma switch3 = new Enigma(new SwitchesEnigmaPanel(5, "AVEUGLANT"), "Plein les mirettes");

            switch3.AddPrerequisite(switch2);
            enigmas.Add(switch3);

            enigmas.Shuffle();
            return(enigmas);
        }
Пример #10
0
 public override void AddTrack(PlayableBase track)
 {
     track.IsFavorite = true;
     Tracks.Add(track);
     ShuffleList.Add(track);
 }