Skip to content

Latest commit

 

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# Jeu de Morpion en Réseau

Un jeu de morpion (Tic-Tac-Toe) avec modes local, contre l'IA et en réseau, développé en Java avec JavaFX.

![Logo Morpion](logo.png)

## Fonctionnalités

- **Trois modes de jeu :**
  - Mode Local (2 joueurs sur le même ordinateur)
  - Mode contre l'IA (algorithme intelligent avec différents niveaux de stratégie)
  - Mode Réseau (jouer contre d'autres joueurs via Internet)
  
- **Interface utilisateur moderne :**
  - Design épuré et convivial avec animations
  - Interface réactive grâce à JavaFX
  
- **Fonctionnalités réseau avancées :**
  - Chat intégré avec indicateur de frappe
  - Gestion des connexions et déconnexions
  - Sécurité et validation des mouvements côté serveur
  
- **Moniteur serveur :**
  - Interface graphique pour la gestion du serveur
  - Journalisation des événements et commandes
  - Suivi en temps réel des clients connectés

- **Effet Figlet au démarrage :**
  - Affichage stylisé au démarrage client et serveur
  - Utilisation de la commande Figlet de votre système

## Prérequis

- Java 11 ou supérieur
- JavaFX 17 ou supérieur
- Maven pour la compilation
- Figlet installé sur votre système (pour l'affichage stylisé)

## Installation

### Installation de Figlet (si nécessaire)

```bash
# Sous Ubuntu/Debian
sudo apt install figlet

# Sous macOS avec Homebrew
brew install figlet
```

### Compilation du projet

```bash
# Cloner le dépôt
git clone https://github.com/votre-repo/morpion-jeu.git
cd morpion-jeu

# Compiler avec Maven
mvn clean package
```

## Utilisation

### Démarrer le serveur

```bash
java -jar target/morpion-jeu-1.0-SNAPSHOT.jar server
```

Ou avec la commande Maven :

```bash
mvn javafx:run@run-server
```

### Démarrer le client

```bash
java -jar target/morpion-jeu-1.0-SNAPSHOT.jar client
```

Ou avec la commande Maven :

```bash
mvn javafx:run@run-client
```

## Structure du projet

```
morpion-jeu/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── morpion/
│   │   │           ├── client/         # Application client
│   │   │           ├── common/         # Classes communes
│   │   │           ├── model/          # Modèles de données
│   │   │           └── server/         # Application serveur
│   │   └── resources/
│   │       ├── css/                    # Styles CSS
│   │       └── fxml/                   # Layouts FXML
│   └── test/                           # Tests unitaires
└── pom.xml                             # Configuration Maven
```

## Mode d'emploi

### Mode local

1. Lancez l'application client
2. Sélectionnez "Mode Local" dans le menu principal
3. Jouez à tour de rôle sur le même écran

### Mode contre l'IA

1. Lancez l'application client
2. Sélectionnez "Jouer contre l'ordinateur" dans le menu principal
3. Jouez contre l'IA qui utilise différentes stratégies

### Mode Réseau

1. Lancez l'application serveur sur l'ordinateur qui servira de serveur
2. Notez l'adresse IP affichée dans l'interface du serveur
3. Lancez l'application client sur chaque ordinateur qui souhaite jouer
4. Sélectionnez "Jeu en Réseau" dans le menu principal
5. Entrez l'adresse IP du serveur et un nom d'utilisateur
6. Connectez-vous et jouez contre d'autres joueurs

## Fonctionnement du réseau

- Le serveur doit être démarré avant que les clients puissent se connecter
- Le serveur gère l'état du jeu et valide les mouvements des joueurs
- Tous les échanges entre clients passent par le serveur
- Un maximum de 2 joueurs peut jouer une partie à la fois
- D'autres joueurs peuvent se connecter mais devront attendre

## Personnalisation

### Changer la police Figlet

Modifiez les appels à `FigletUtils.printFiglet()` dans les classes `ClientMain` et `ServerMain` :

```java
// Utilisez une police différente
FigletUtils.printFiglet("Morpion Client", "banner");
```

Polices populaires disponibles avec Figlet :
- standard
- slant
- big
- banner
- block
- bubble
- digital
- ivrit
- mini
- script
- shadow
- small
- smscript
- smshadow
- standard
- term

## Dépannage

### Problèmes de connexion réseau

- Vérifiez que le serveur est démarré avant les clients
- Assurez-vous que le pare-feu ne bloque pas le port utilisé (par défaut 9876)
- Utilisez "localhost" comme adresse pour jouer en local

### Problèmes d'affichage Figlet

- Assurez-vous que Figlet est installé sur votre système
- Vérifiez que la commande `figlet` est disponible dans votre PATH
- Si Figlet n'est pas disponible, l'application fonctionnera quand même mais sans l'affichage stylisé

## Licence

Ce projet est distribué sous licence MIT. Voir le fichier LICENSE pour plus d'informations.

## Contributeurs

- Votre Nom - Développeur principal
- Autres contributeurs

## Remerciements

- L'équipe JavaFX pour leur excellent framework
- La communauté Java pour leur support
- Les développeurs de Figlet pour l'outil d'affichage ASCII art


## Contact
Pour toute question ou suggestion, veuillez contacter :
- abbassiadamou55@gmail.com

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages