Mini Projet
Mini Projet
Sur
“2048 GAME”
Submitted By:
M. Aniruddha A Bhimte
Sous la direction de
Prof. Vivek D. Deshmukh
Professeur assistant
Certificat
Ceci est pour certifier que le rapport de projet intitulé « JEU 2048 » est
soumis avec succès par M. Aniruddha Bhimte sous la direction de
[Link] au Département d'Électronique &
L'ingénierie des télécommunications dans le cadre de l'évaluation des enseignants
1
JEU 2048
Résumé :
Le jeu 2048 implique des tuiles étiquetées avec des puissances de deux qui peuvent être fusionnées pour
former de plus grandes puissances de deux ; des variantes du même puzzle impliquent des fusionnements similaires de
autres valeurs de tuiles. Nous analysons le score maximum réalisable dans ces jeux par
prouver un théorème min-max égalant ce score maximum (dans un abstrait
variation généralisée de 2048 qui permet tous les mouvements du jeu original) avec
la valeur minimale qui fait qu'un algorithme de changement avare utilise un donné
nombre de pièces. Une stratégie largement suivie dans 2048 maintient des tuiles qui représentent
le numéro de coup en notation binaire, et une stratégie similaire dans le nombre de Fibonacci
la variante du jeu (987) maintient la représentation de Zeckendorf du coup
nombre comme une somme du plus petit nombre possible de nombres de Fibonacci ; notre analyse montre que
la capacité à suivre ces stratégies est intimement liée au fait que
le changement avide est optimal pour la monnaie binaire et Fibonacci. Pour les variantes de
2048 utilisant des valeurs de tuile pour lesquelles le changement glouton est sous-optimal, c'est le
stratégie avide, pas la représentation optimale sous forme de sommes des valeurs de tuiles, qui contrôle
la durée du jeu. En particulier, le jeu se terminera toujours chaque fois que le
la séquence de valeurs de carreaux autorisées présente des écarts arbitrairement grands entre les consécutifs
valeurs.
Description of Project:
Depuis le début de la civilisation, les humains ont continuellement cherché de nouvelles
méthodes de plaisir et de divertissement, telles que l'art, la danse, la musique, le sport. Jeux de société
et des jeux comme les échecs, le Ludo, le Serpent et Échelles sont présents depuis l'antiquité
jours,L'histoire des échecs remonte à près de 1500 ans. Ces jeux étaient
satisfaire non seulement notre besoin de divertissement, mais aussi aider à avoir un esprit aiguisé
brain. We as humans enjoy being challenged and loved to solve them. However,
avec l'avancement de la technologie, ces jeux de société sont maintenant remplacés par
applications mobiles et jeux PC. Ces jeux utilisent des logiciels hautement efficaces et
2
JEU 2048
des effets visuels très créatifs et une interface utilisateur que l'utilisateur appréciera. Des jeux tels que
Angry Birds, Temple Run, Subway Surfer, Candy Crush sont quelques exemples populaires de
ces jeux qui sont devenus un succès instantané parmi les utilisateurs. Contrairement à Call of Duty,
PUBG qui sont beaucoup plus compliqués et nécessitent un stockage plus élevé et mieux
processeurs, ces petits jeux sont plus faciles à comprendre tout en étant intéressants à jouer. Aussi
en raison de leurs exigences techniques moindres, ils peuvent être utilisés efficacement même sur un
appareil ancien. 2048 est l'un de ces jeux classiques qui aiguisent l'esprit et mettent à l'épreuve votre
3
« JEU 2048 »
Déclaration de motivation/problème :
jeu
Methodology:
4
JEU 2048
intéressant à jouer.
Architecture du Système :-
5
JEU 2048
Collecte de données
Le module de collecte de données est une partie intégrante de notre jeu 2048, il comprend des données
collection, interprétation des données et compréhension des données qui aide à la prédiction de
les prochaines étapes par le compilateur et l'évaluation des résultats.
prétraité. Ainsi, le prétraitement aide à transformer les données afin d'améliorer le jeu
une expérience peut être fournie, offrant une plus grande précision. Le prétraitement effectue
Fonctions diverses : ajouter des tuiles après un mouvement, remplir les tuiles manquantes, mettre à jour le score total.
Mise à jour du meilleur score.
Dans ce cas, les données collectées sont utilisées par le compilateur, à mesure que le jeu progresse, plus de tuiles
sont ajoutés et les espaces de carreaux vacants sont réduits. par conséquent, le compilateur doit mettre en œuvre
les données collectées précédemment pour faire progresser le jeu.
De plus, le score doit être mis à jour après chaque mouvement et il doit également mettre à jour le meilleur score.
score si nécessaire.
Disposition initiale du jeu avec seulement 2 tuiles Ajout des mêmes carreaux Mise à jour du score actuel
Mise à jour du score élevé si nécessaire.
Pour y parvenir, nous avons utilisé la bibliothèque tkinter, ainsi que les packages numpy et matplotlib.
La bibliothèque Tkinter est responsable de l'interface utilisateur du jeu, elle dispose les tuiles de la grille.
de manière bien organisée. Numpy et Matplotlib nous fournissent la colonne vertébrale de notre
la logique utilisée dans le jeu. Toutes les fonctions du jeu c'est-à-dire l'ajout de deux tuiles, la génération d'une nouvelle
6
JEU 2048
la tuile à tout espace vacant aléatoire, etc. sont exécutées uniquement en raison de la présence de numpy et
bibliothèque matplotlib
Outils Utilisés :
EXIGENCE LOGICIELLE
a) SOFTWARE : Python 3
b) IDEs / CADRES : VS Code
c) BIBLIOTHÈQUES : Tkinter, Matplotlib, Numpy.
d) Plateforme : Windows
Python :
Python est un langage de programmation interprété, orienté objet, de haut niveau avec une dynamique
sémantique. Ses structures de données intégrées de haut niveau, combinées avec le typage dynamique et
le liaison dynamique, le rend très attrayant pour le développement rapide d'applications, ainsi que
pour être utilisé comme un langage de script ou de liaison pour connecter des composants existants ensemble. Le Python
Une syntaxe simple et facile à apprendre met l'accent sur la lisibilité et réduit donc le coût de
maintenance du programme. Python prend en charge les modules et les packages, ce qui encourage
modularité du programme et réutilisation du code. L'interpréteur Python et l'étendue de la bibliothèque standard
Les bibliothèques sont disponibles sous forme source ou binaire gratuitement pour toutes les principales plateformes, et
peut être réparti librement. Souvent, les programmeurs tombent amoureux de Python à cause de la
la productivité accrue qu'elle offre. Puisqu'il n'y a pas d'étape de compilation, l'édition-test-débogage
le cycle est incroyablement rapide. Déboguer des programmes Python est facile : un bogue ou une mauvaise entrée va
ne provoquez jamais une faute de segmentation. Au lieu de cela, lorsque l'interpréteur découvre une erreur, il lève
une exception. Lorsque le programme ne capture pas l'exception, l'interpréteur imprime une pile
trace. Un débogueur au niveau source permet l'inspection des variables locales et globales, l'évaluation
d'expressions arbitraires, en définissant des points d'arrêt, en parcourant le code ligne par ligne,
et ainsi de suite. Le débogueur est écrit en Python lui-même, témoignant de l'introspection de Python.
pouvoir. D'autre part, souvent le moyen le plus rapide de déboguer un programme est d'ajouter quelques print
les déclarations à la source : le cycle rapide d'édition-test-débbugage rend cette approche très simple
efficace.
7
JEU 2048
2) VS Code :
Visual Studio Code combine la simplicité d'un éditeur de code source avec des fonctionnalités puissantes.
outils de développement, comme l'autocomplétion de code IntelliSense et le débogage. Avant tout, il
est un éditeur qui ne vous gêne pas. Le cycle d'édition-construction-dépuration agréablement fluide
cela signifie moins de temps à s'occuper de votre environnement et plus de temps à exécuter vos idées.
Au cœur de Visual Studio Code se trouve un éditeur de code source ultrarapide, parfait pour
utilisation quotidienne. Avec le support de centaines de langues, VS Code vous aide à être instantanément
productif avec mise en évidence de la syntaxe, appariement des parenthèses, indentation automatique, sélection par boîte,
workflows faster. VS Code has support for Git so you can work with source control
sans quitter l'éditeur, y compris la visualisation des différences des modifications en attente.
3) Tkiner :
Tutoriel Python Tkinter Le tutoriel Tkinter fournit les bases et
concepts avancés de Python Tkinter. Notre tutoriel Tkinter est conçu pour les débutants et
Les professionnels. Python fournit la bibliothèque standard Tkinter pour créer l'interface graphique.
interface pour les applications de bureau. Développement d'applications de bureau avec
La création d'une fenêtre de niveau supérieur Tkinter vide n'est pas une tâche complexe.
en utilisant les étapes suivantes.
●importer le module Tkinter.
●Créer la fenêtre principale de l'application.
●Ajoutez des widgets comme des étiquettes, des boutons, des cadres, etc. à la fenêtre.
●Appelez la boucle d'événements principale afin que les actions puissent avoir lieu sur l'utilisateur
écran d'ordinateur.
8
JEU 2048
4) Numpy :
NumPy est une bibliothèque Python utilisée pour travailler avec des tableaux. Elle a également des fonctions pour travailler
dans le domaine de l'algèbre linéaire, de la transformée de Fourier et des matrices. NumPy a été créé en 2005
par Travis Oliphant. C'est un projet open source et vous pouvez l'utiliser librement. NumPy représente
pour le NumPy. En Python, nous avons des listes qui servent de tableaux, mais elles
sont lents à traiter. NumPy vise à fournir un objet tableau qui est jusqu'à 50 fois plus rapide que
les listes Python traditionnelles. L'objet tableau dans NumPy s'appelle ndarray, il offre beaucoup de
des fonctions de support qui facilitent énormément le travail avec ndarray. Les tableaux sont très
fréquemment utilisé en science des données, où la rapidité et les ressources sont très importantes.
5) Matplotlib :
Matplotlib est une bibliothèque complète pour créer des graphiques statiques, animés et interactifs.
visualisations en Python. Matplotlib rend les choses faciles faciles et les choses difficiles possibles.
•Créer des graphiques de qualité publication.
•Créer des figures interactives qui peuvent zoomer, se déplacer, se mettre à jour.
•Personnaliser le style visuel et la mise en page.
•Exporter vers de nombreux formats de fichiers.
6) Fenêtres
Windows is a graphical operating system developed by Microsoft. It allows users to view
et stocker des fichiers, exécuter le logiciel, jouer à des jeux, regarder des vidéos, et fournir un moyen de
connectez-vous à internet. Il a été lancé pour l'informatique domestique et le travail professionnel.
Microsoft a introduit la première version sous le nom de 1.0. Elle a été publiée à la fois pour l'informatique domestique et
fonctions professionnelles de Windows le 10 novembre 1983. Plus tard, il a été publié sur de nombreux
versions de Windows ainsi que la version actuelle, Windows 11.
9
JEU 2048
Captures d'écran
Début du jeu
10
JEU 2048
11
JEU 2048
12
JEU 2048
13
JEU 2048
APPLICATION :-
Le but de notre projet était de créer une expérience de jeu conviviale. En utilisant les dernières
Grâce au logiciel, nous avons atteint l'objectif du projet. Le jeu 2048 peut être joué par tous les groupes d'âge.
de 6 à 40 car la seule exigence pour jouer au jeu est que l'utilisateur doit connaître les mathématiques de base
(addition). Cette fonctionnalité rend ce jeu simple mais efficace et divertissant.
amusant. De plus, il peut également être utilisé comme un outil éducatif pour les enfants de jeunes tranches d'âge car il rend
apprendre en s'amusant. Les graphiques colorés et une excellente interface utilisateur rendent le jeu facile et
une grande activité de loisir. Ce jeu est tout aussi difficile en même temps, ce qui en fait un bon choix
pour le groupe d'âge plus âgé du public. Donc, pour résumer, notre projet a les réalités suivantes
applications:
Une grande source de divertissement et de plaisir
●Un bon outil pour défier votre cerveau et tester votre aptitude mathématique
Peut être utilisé comme un outil éducatif pour enseigner aux enfants l'addition de manière ludique.
Conclusion:
Nous avons réussi à créer un jeu 2048. L'objectif principal du projet était de créer un
un jeu présentable, bien fonctionnant et convivial pour l'expérience utilisateur. Pour y parvenir, nous avons fait usage de
bibliothèque tkinter, paquets numpy et matplotlib. La bibliothèque tkinter est responsable de l'utilisateur
interface du jeu, elle dispose la grille, les tuiles de manière bien organisée. Numpy et
Matplotlib nous fournit l'ossature de notre logique utilisée dans le jeu. Toutes les fonctions du jeu c'est-à-dire
l'ajout de deux tuiles, la génération d'une nouvelle tuile à un espace vacant aléatoire, etc. ne sont exécutés que grâce à
à la présence de la bibliothèque numpy et matplotlib. La combinaison de ces logiciels dans notre code
nous donne un bon résultat du jeu 2048. En général, en jouant au jeu, nous n'avons rencontré aucun
problème dans le fonctionnement du code. Le jeu fonctionne sans accroc, l'interface utilisateur est agréable et
réactif qui offre une bonne expérience. Les fonctions du jeu fonctionnent de manière efficace et appropriée.
et dans l'ensemble, c'est très amusant à jouer.
●À la fin, nous pouvons tirer les conclusions suivantes de notre projet :
●Toutes les bibliothèques et modules sont importés avec succès dans notre système.
●Ces bibliothèques facilitent les fonctions de notre projet et sans bogue.
●Toutes les fonctions de jeu définies pour les mouvements de jeu, la mise à jour des scores et l'ajout de nouvelles tuiles fonctionnent
parfaitement.
●L'interface utilisateur est agréable et les commandes sont faciles à apprendre et conviviales.
14
JEU 2048
CODE SOURCE :-
●[Link]
15
JEU 2048
16
JEU 2048
17
JEU 2048
●Affichage_de_jeu.py
18
JEU 2048
19
JEU 2048
20
JEU 2048
21
JEU 2048
●Fonctions_jeu.py
22
JEU 2048
23
JEU 2048
24
JEU 2048
25
JEU 2048
References:
[Link]
26