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(); }
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; }
/// <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; }
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(); }
/// <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); }
/// <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); }
/// <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; }
/// <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; }
/// <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); }
public override void AddTrack(PlayableBase track) { track.IsFavorite = true; Tracks.Add(track); ShuffleList.Add(track); }