Pour mon devoir de C++, je dois écrire une application console Tic-Tac-Toe Win32. J'ai créé une grille sur l'écran en utilisant un système de coordonnées et j'utilise _getch()
et SetConsoleCursorPosition(...)
pour déplacer le curseur lorsque l'utilisateur appuie sur les touches fléchées et pour dessiner un X et et O lorsque l'utilisateur appuie sur l'un de ces clés.Devoir: éviter les nombres magiques
partie clé de ma question
Les coordonnées de la grille sont dans le format sont (x, y) et 1,1 représente la partie supérieure gauche et 5,5 représente la partie inférieure droite. Chaque touche fléchée déplace le curseur +/- 2. Par exemple, si le curseur est à 1,1 et que l'utilisateur appuie sur la flèche vers le haut, le curseur est déplacé sur 1,5, si la flèche vers le haut est à nouveau enfoncée, le curseur se déplace 1,3, etc.
le mouvement est manipulé avec cette expression arithmétique:
switch (keyPress) {
case UP :
position.Y = (12 + position.Y - 2) % 6;
SetConsoleCursorPosition(screen, position);
break;
case DOWN :
position.Y = (12 + position.Y + 2) % 6;
SetConsoleCursorPosition(screen, position);
break;
case LEFT :
position.X = (12 + position.X - 2) % 6;
SetConsoleCursorPosition(screen, position);
break;
case RIGHT :
position.X = (12 + position.X + 2) % 6;
SetConsoleCursorPosition(screen, position);
break;
}
question
Je ne suis pas autorisé à utiliser des numéros magiques pour l'affectation et, par conséquent, dans la 12, 2 et 6 doivent être remplacés par des noms de variables qui ont un sens. Quels seraient les noms appropriés pour ces valeurs?
MISE À JOUR
Sur la base des commentaires, voici comment le plateau de jeu est affiché à l'écran: Les chiffres sur l'axe x et y sont les positions de curseur où X ou et O est tiré.
0╔═╤═╤═╗
1║X│ │ ║
2╟─┼─┼─╢
3║ │O│ ║
4╟─┼─┼─╢
5║ │ │X║
6╚═╧═╧═╝
Pourquoi le système de coordonnées passe-t-il à 6? Est-ce que tic-tac-toe n'est pas 3x3? –
Les données X, O sont dans une grille 3x3, cependant, la carte sur l'écran est 7x7, c'est pourquoi le curseur est à 1,3, ou 5 –