2048
Le jeu 2048 dans le terminal, en C avec ncurses
Projet d'école (42)février 2015Cncurseslibft
Version terminal du jeu 2048, écrite en C avec la bibliothèque ncurses et la libft de l’école 42. La grille 4×4 s’adapte à la taille du terminal et se joue aux flèches du clavier.
But du projet
Reproduire le jeu 2048 en mode texte : faire glisser les tuiles d’une grille 4×4 et fusionner les tuiles de même valeur. Le code porte les en-têtes de l’école 42, repose sur la libft (bibliothèque C réécrite par les étudiants) et a été écrit à deux (fichiers auteur et contributor).
Fonctionnement
main.cinitialise ncurses (saisie caractère par caractère, sans écho, curseur masqué) puis lit les touches en boucle.displacement.cdéplace et fusionne les tuiles dans l’une des quatre directions ; après un coup qui a bougé au moins une tuile, un 2 apparaît sur une case vide tirée au hasard.design.cdessine les cadres « Board game » et « Score » et recalcule la taille des tuiles quand le terminal est redimensionné.- La partie est gagnée quand une tuile dépasse la constante
WIN_VALUE(fixée à 120, donc dès 128) et perdue quand il reste moins de deux cases vides au moment d’ajouter une tuile.
Jouer
Pas de version en ligne. La compilation demande gcc, make et les en-têtes de ncurses (paquet libncurses-dev sous Debian). Le Makefile compile d’abord la libft, puis le jeu.
git clone https://github.com/lp177/2048.git
cd 2048
make
./game_2048Les flèches déplacent les tuiles, Échap quitte.
Limites connues
- Le cadre « Score » est affiché mais aucun score n’est calculé.
- Seules des tuiles 2 apparaissent.
- Le programme écrit des messages de débogage sur la sortie d’erreur ; mieux vaut la rediriger (
./game_2048 2>/dev/null).