0% ont trouvé ce document utile (0 vote)
12 vues5 pages

Puissance 4 avec IA en JavaFX

Ce TP consiste à créer un jeu de Puissance 4 en JavaFX, où un joueur affronte une IA. Le projet doit être structuré avec Git, en utilisant des branches pour chaque fonctionnalité, et doit être rendu avant le 27 janvier 2025. Les étapes incluent l'initialisation du projet, la création de la grille, l'implémentation de la logique de jeu, la gestion des tours, l'ajout de l'IA, et l'amélioration de l'interface utilisateur.

Transféré par

yass SixNueve
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
12 vues5 pages

Puissance 4 avec IA en JavaFX

Ce TP consiste à créer un jeu de Puissance 4 en JavaFX, où un joueur affronte une IA. Le projet doit être structuré avec Git, en utilisant des branches pour chaque fonctionnalité, et doit être rendu avant le 27 janvier 2025. Les étapes incluent l'initialisation du projet, la création de la grille, l'implémentation de la logique de jeu, la gestion des tours, l'ajout de l'IA, et l'amélioration de l'interface utilisateur.

Transféré par

yass SixNueve
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP JavaFX : Création d'un Puissance 4

Objectif du TP
L'objectif de ce TP est de réaliser un jeu de Puissance 4 en utilisant JavaFX. Le nom du
joueur sera demandé au début du jeu via un menu principal. Il affrontera une IA que
vous développerez vous-même. Ce nom sera utilisé tout au long du jeu pour afficher les
tours du joueur. Le projet sera structuré en utilisant Git, avec une gestion des branches
pour chaque fonctionnalité.

Il devra être rendu au 27 janvier 2025 13h sur la Github Classroom du projet.

Étape 1 : Initialisation du projet


1. Créer un nouveau projet JavaFX avec IntelliJ IDEA comme ci-dessous :

2. Initialiser un dépôt Git : Créez un dépôt Git local avec git init.
3. Créez la branche principale dev : ici toutes les nouvelles fonctionnalités
seront développées avant d'être fusionnées dans la branche principale.
4. Configurer un fichier .gitignore pour Java.
5. Faire un push pour envoyer le projet sur le repo en ligne.
Étape 2 : Création de la grille de jeu
1. Créer une branche pour cette fonctionnalité :
• Créez la branche feat/grid pour implémenter cette fonctionnalité.
2. Implémenter la structure de la grille de jeu : Créez la logique nécessaire pour
la grille de Puissance 4.
3. Valider et pousser les changements dans dev :
• Après avoir créé la grille, validez vos changements avec un commit et
poussez-les dans la branche dev.

Étape 3 : Implémentation de la logique du gameplay


1. Créer une branche pour cette fonctionnalité :
• Créez une branche dédiée pour la logique du jeu : feat/gameplay.
2. Ajouter la logique du gameplay : Implémentez les éléments suivants :
• Gestion du placement des jetons : le jeton se positionne en bas de la
colonne quand on clique sur celle-ci.
• Mise à jour de l'état du plateau à chaque action.
3. Valider et pousser dans dev : Après avoir terminé la logique du gameplay,
effectuez un commit et poussez dans la branche dev.

Étape 4 : Implémentation de la gestion des tours


1. Créer une branche pour cette fonctionnalité :
• Créez une branche dédiée pour la gestion des tours : feat/turn-based.
2. Ajouter la gestion des tours : Implémentez la gestion des tours des joueurs :
• Alterner entre le joueur et l'IA.
• Gérer le passage d'un tour à l'autre (fin de tour, attente du joueur, etc.).
3. Valider et pousser dans dev : Après avoir implémenté la gestion des tours,
effectuez un commit et poussez dans la branche dev.
Étape 5 : Implémentation de l'IA
1. Créer une branche pour cette fonctionnalité : feat/ia.
2. Ajouter l'IA comme adversaire : Implémentez une IA qui choisit le meilleur
coup en fonction des critères suivants :
• Vérifier la jouabilité : S'assurer que la colonne n'est pas pleine.
• Simuler un coup : Copier le plateau et tester le coup de l'IA dans une
colonne.
• Évaluer le plateau :
o Analyser les alignements horizontaux, verticaux et diagonaux de 4
cases.
o Attribuer un score positif pour les alignements de l'IA (2, 3 ou 4 jetons)
et un score négatif pour ceux de l'adversaire.
• Choisir le meilleur coup : L'IA sélectionne la colonne avec le score le plus
élevé.

3. Valider et pousser les changements dans dev :


• Après avoir créé la grille, validez vos changements avec un commit et
poussez-les dans la branche dev.

Étape 6 : Conditions de victoire et de défaite


1. Créer des branches pour ces fonctionnalités :
• feat/victory pour la gestion des conditions de victoire.
• feat/defeat pour la gestion des conditions de défaite (égalité ou victoire de
l'IA).
2. Ajouter les règles de victoire et de défaite :
• Implémentez les conditions qui vérifient si un joueur a gagné.
• Implémentez les conditions qui vérifient si un joueur a perdu ou qu’il y a une
égalité.
3. Valider et pousser les changements dans dev :
• Après avoir créé la grille, validez vos changements avec un commit et
poussez-les dans la branche dev.
Étape 7 : Création du menu principal
1. Créer une branche pour cette fonctionnalité :
• feat/menu-principal pour le développement de l'écran de menu.
• feat/add-player-name pour la gestion de l'entrée du nom du joueur.
2. Créer l'écran de menu principal :
• Créez une interface où le joueur peut entrer son nom avant de commencer la
partie.
• L'écran doit avoir un bouton pour démarrer le jeu après que le nom du joueur
a été saisi.
3. Valider et pousser les changements dans dev :
• Après avoir créé la grille, validez vos changements avec un commit et
poussez-les dans la branche dev.

Étape 8 : Amélioration visuelle de l'UI


1. Créer une branche pour cette fonctionnalité :
• feat/ui pour l'amélioration visuelle de l'interface.
2. Améliorer le design du menu principal et de la grille de jeu :
• Améliorez l'interface graphique pour rendre le jeu plus agréable à jouer. Cela
peut inclure l'ajout de couleurs, ou d'autres éléments visuels pour améliorer
l'expérience utilisateur.
• Pensez à la disposition des éléments et à la lisibilité de l'interface.
3. Valider et pousser les changements dans dev :
• Après avoir créé la grille, validez vos changements avec un commit et
poussez-les dans la branche dev.

Étape 9 : Finalisation
1. Tester l'application dans dev :
• Vérifiez que toutes les fonctionnalités sont correctement implémentées et
qu'elles fonctionnent ensemble : menu, gameplay, IA, victoire, défaite, et UI.
2. Fusionner dev dans main :
• Une fois que tout fonctionne correctement, fusionnez la branche dev dans la
branche principale main.
3. Taguer une version stable :
• Taguez la version stable de votre projet (par exemple, v1.0) qui servira de
version finale pour la correction.
Récapitulatif des branches Git
• main : Branche principale contenant les versions stables.
• dev : Branche de développement, où toutes les nouvelles fonctionnalités sont
intégrées avant d'être fusionnées dans main.
• feat/* : Branches pour chaque fonctionnalité (par exemple, feat/grid,
feat/gameplay, feat/ia, feat/ui).

Vous aimerez peut-être aussi