forked from CPLN/enigmos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
EnigmaReferencer.cs
63 lines (57 loc) · 3.16 KB
/
EnigmaReferencer.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
using Cpln.Enigmos.Enigmas;
using Cpln.Enigmos.Utils;
using System.Collections.Generic;
namespace Cpln.Enigmos
{
/// <summary>
/// Cette classe permet de référencer toutes les énigmes, ainsi que de tester une énigme lors du débugging.
/// </summary>
public abstract class EnigmaReferencer
{
/// <summary>
/// Cette méthode permet de n'afficher que l'énigme qu'on souhaite tester. Si null est renvoyé, alors l'application démarre normalement.
/// </summary>
///
/// <remarks>Lorsque le programme est en mode RELEASE, cette méthode n'est pas appelée.</remarks>
/// <returns>L'énigme à afficher</returns>
public static Enigma DebugEnigma()
{
//return new Enigma(new CharadeEnigmaPanel(), "Charade");
return new Enigma(new ZombieInvasionEnigmaPanel(), "ZombieInvasion");
}
/// <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 ZombieInvasionEnigmaPanel(), "ZombieInvasion"));
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;
}
}
}