README.md 3.26 KB
Newer Older
1
# Chess
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
2

3
Ce jeu d'échecs a été réalisé dans le cadre du projet final du cours INF1015.
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
4
5
6

## Compilation

7
8
9
10
11
12
13
14
15
Ouvrez le fichier Chess.sln dans Visual Studio 2019, créez une version de Qt
nommée 6.2.4_msvc2019_64 ou modifiez la version de Qt utilisée par le projet.

## Tests

Pour que tous les tests fonctionnent quand vous utilisez le "Test Explorer", il
faut modifier le paramètres "Test Adapter for Google Test" > General >
"Test execution" > "Working Directory" et mettre $(SolutionDir) à la place de
$(ExecutableDir)
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
16

17
18
19
20
21
## Documentation

Vous pouvez voir la documentation Doxygen en ouvrant <html/index.html> dans
votre navigateur.

Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
22
23
24
25
26
## Utilisation

Vous pouvez choisir GUI ou CLI comme valeur de la variable globale gameMode
dans main.cpp pour choisir d'ouvrir le fichier en mode graphique ou console.

27
28
29
30
31
32
33
34
35
36
37
38
39
Vous pouvez voir à tout moment quel joueur doit faire son déplacement en
regardant le titre actuel de la fenêtre principale.

Vous pouvez déplacer les pièces soit en cliquant sur la pièce à déplacer et
en relâchant la souris sur la case de destination, soit en faisant un clic sur
la case de départ puis un deuxième clic sur la case de destination. Si le
mouvement est invalide, la case de départ clignotera en rouge.

Si un pion arrive à l'autre bout du plateau, il devient automatiquement une
reine, le choix de la pièce sera implémenté plus tard.

Le roque est implémentaté, le roi peut faire le déplacement
de deux cases et la tour passera automatiquement de l'autre côté.
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
40

41
## Menus
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
42

43
Vous avez à votre dispositions 4 actions réparties dans 2 menus :
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
44

45
46
47
48
49
50
- Game
	- New game (Ctrl+N)
	- Restart game (Ctrl+R)
- History
	- Previous (Left)
	- Next (Right)
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
51

52
53
54
55
56
57
58
59
60
61
62
63
### Jeu

Dans le menu de Jeu (Game) vous pouvez créer une nouvelle partie de n'importe
quel type. Vous pouvez aussi redémarrer la partie dans le mode actuel. Vous
pouvez utiliser les raccourcis Ctrl+N et Ctrl+R respectivement pour effectuer
ces deux actions.

### Historique

À tout moment dans le jeu, vous pouvez utiliser les touches directionnelles
droite et gauche du clavier pour revenir en arrière ou en avant dans la partie.
Vous ne pouvez pas modifier les mouvements effectués quand vous êtes en mode
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
64
65
historique.

66
## Ajout d'une nouvelle configuration initiale
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
67

68
69
Vous pouvez ajouter de nouveaux types de configuration initiale en rajoutant un
fichier dans le dossier positions/ avec le contenu suivant pour chaque ligne :
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
70
71
72

nompiece	posx	posx	cote

73
Où nompiece peut être pawn, rook, bishop, knight, queen ou king. posx et posy
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
74
75
sont entre 0 et 7, et cote est 0 pour blanc et 1 pour noir.

76
77
78
79
80
81
82
La dernière ligne doit être vide pour que le fichier soit entièrement lu.

Après avoir créé votre fichier, ajoutez son nom dans la variable
positionsFilenames dans Board.hpp, ajoutez aussi une option dans l'enum
InitialPositions avant l'option Last. Enfin, ajoutez un texte représentant
cette position dans la variable positionsNames de InitialPositionsChoice.hpp

Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
83
84
## Informations TD6

85
Les namespaces sont backend et frontend, pour le modèle et la vue.
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
86

87
Le compteur d'instance est dans la classe King, on peut lancer la création de
Romain Lebbadi-Breteau's avatar
Romain Lebbadi-Breteau committed
88
89
trois rois en appuyant sur la touche R dans l'interface graphique.

90
91
La classe implémentant le RAII est TemporaryMove. Le mouvement est effectué
dans le constructeur et il est annulé dans le destructeur.