You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/fr/6-space-game/6-end-condition/assignment.md

164 lines
9.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Créez un Jeu Exemple
## Aperçu de la Mission
Maintenant que vous avez maîtrisé les conditions de fin de jeu et la fonctionnalité de redémarrage dans votre jeu spatial, il est temps d'appliquer ces concepts à une expérience de jeu complètement nouvelle. Vous allez concevoir et créer votre propre jeu qui démontre différents types de conditions de fin et de mécanismes de redémarrage.
Cette mission vous pousse à penser de manière créative à la conception de jeux tout en pratiquant les compétences techniques que vous avez apprises. Vous explorerez différents scénarios de victoire et de défaite, mettrez en œuvre la progression du joueur, et créerez des expériences de redémarrage engageantes.
## Exigences du Projet
### Fonctionnalités Principales du Jeu
Votre jeu doit inclure les éléments essentiels suivants :
**Variété de conditions de fin** : Implémentez au moins deux façons différentes dont le jeu peut se terminer :
- **Victoire basée sur les points** : Le joueur atteint un score cible ou collecte des objets spécifiques
- **Défaite basée sur la vie** : Le joueur perd toutes ses vies ou points de santé disponibles
- **Achèvement dobjectif** : Tous les ennemis sont vaincus, des objets spécifiques sont collectés ou des objectifs sont atteints
- **Basé sur le temps** : Le jeu se termine après une durée définie ou un compte à rebours atteint zéro
**Fonctionnalité de redémarrage** :
- **Effacer létat du jeu** : Supprimez tous les objets de jeu précédents et réinitialisez les variables
- **Réinitialiser les systèmes** : Recommencez avec de nouvelles statistiques de joueur, ennemis, et objectifs
- **Commandes conviviales** : Fournissez des instructions claires pour redémarrer le jeu
**Retour dinformation pour le joueur** :
- **Messages de victoire** : Célébrez les succès du joueur avec des retours positifs
- **Messages de défaite** : Fournissez des messages encourageants qui motivent à rejouer
- **Indicateurs de progression** : Affichez le score actuel, les vies, ou le statut des objectifs
### Idées et Inspirations pour le Jeu
Choisissez un de ces concepts ou créez le vôtre :
#### 1. Jeu dAventure Console
Créez une aventure textuelle avec des mécaniques de combat :
```
Hero> Strikes with broadsword - orc takes 3p damage
Orc> Hits with club - hero takes 2p damage
Hero> Kicks - orc takes 1p damage
Game> Orc is defeated - Hero collects 2 coins
Game> ****No more monsters, you have conquered the evil fortress****
```
**Fonctionnalités clés à implémenter :**
- **Combat au tour par tour** avec différentes options dattaque
- **Points de santé** pour le joueur et les ennemis
- **Système d'inventaire** pour collecter pièces ou objets
- **Multiples types dennemis** avec des niveaux de difficulté variés
- **Condition de victoire** lorsque tous les ennemis sont vaincus
#### 2. Jeu de Collection
- **Objectif** : Collecter des objets spécifiques en évitant des obstacles
- **Conditions de fin** : Atteindre un nombre cible de collectes ou perdre toutes les vies
- **Progression** : Les objets deviennent plus difficiles à atteindre au fil du jeu
#### 3. Jeu de Puzzle
- **Objectif** : Résoudre des puzzles de difficulté croissante
- **Conditions de fin** : Terminer tous les niveaux ou manquer de coups/temps
- **Redémarrage** : Revenir au premier niveau avec la progression effacée
#### 4. Jeu de Défense
- **Objectif** : Protéger votre base contre des vagues dennemis
- **Conditions de fin** : Survivre à toutes les vagues (victoire) ou voir la base détruite (défaite)
- **Progression** : Les vagues ennemies augmentent en difficulté et en nombre
## Directives de Mise en Œuvre
### Pour Commencer
1. **Planifiez votre conception de jeu** :
- Esquissez la boucle de jeu de base
- Définissez clairement vos conditions de fin
- Identifiez les données à réinitialiser lors dun redémarrage
2. **Mettez en place la structure de votre projet** :
```
my-game/
├── index.html
├── style.css
├── game.js
└── README.md
```
3. **Créez votre boucle de jeu principale** :
- Initialisez létat du jeu
- Gérez les entrées utilisateur
- Mettez à jour la logique du jeu
- Vérifiez les conditions de fin
- Affichez létat actuel
### Exigences Techniques
**Utilisez JavaScript Moderne** :
- Employez `const` et `let` pour les déclarations de variables
- Utilisez des fonctions fléchées quand cest approprié
- Implémentez les fonctionnalités ES6+ comme les littéraux de gabarit et la déstructuration
**Architecture Événementielle** :
- Créez des gestionnaires dévénements pour les interactions utilisateur
- Implémentez les changements détat du jeu via des événements
- Utilisez des écouteurs dévénements pour la fonctionnalité de redémarrage
**Bonnes Pratiques de Code** :
- Écrivez des fonctions à responsabilités uniques
- Utilisez des noms descriptifs pour variables et fonctions
- Ajoutez des commentaires expliquant la logique et les règles du jeu
- Organisez le code en sections logiques
## Exigences de Soumission
### Livrables
1. **Fichiers complets du jeu** : Tous les fichiers HTML, CSS, et JavaScript nécessaires à lexécution de votre jeu
2. **README.md** : Documentation expliquant :
- Comment jouer à votre jeu
- Quelles conditions de fin vous avez implémentées
- Les instructions pour redémarrer
- Toute fonctionnalité ou mécanique spéciale
3. **Commentaires dans le code** : Explications claires de la logique et des algorithmes du jeu
### Liste de Contrôle pour les Tests
Avant de soumettre, vérifiez que votre jeu :
- [ ] **Sexécute sans erreurs** dans la console du navigateur
- [ ] **Implémente plusieurs conditions de fin** comme spécifié
- [ ] **Redémarre correctement** avec une réinitialisation propre de létat
- [ ] **Fournit un retour clair** aux joueurs sur létat du jeu
- [ ] **Utilise une syntaxe JavaScript moderne** et des meilleures pratiques
- [ ] **Inclut une documentation complète** dans le README.md
## Grille dÉvaluation
| Critères | Exemplaire (4) | Compétent (3) | En Développement (2) | Débutant (1) |
|----------|----------------|---------------|---------------------|--------------|
| **Fonctionnalité du Jeu** | Jeu complet avec multiples conditions de fin, redémarrage fluide, et expérience soignée | Jeu complet avec conditions de fin basiques et mécanisme de redémarrage fonctionnel | Jeu partiel avec quelques conditions de fin implémentées, redémarrage peut présenter de légers soucis | Jeu incomplet avec fonctionnalités limitées et bogues importants |
| **Qualité du Code** | Code propre, bien organisé utilisant des pratiques modernes JavaScript, commentaires complets et excellente structure | Bonne organisation avec syntaxe moderne, commentaires adéquats, et structure claire | Organisation de code basique avec quelques pratiques modernes, commentaires minimaux | Mauvaise organisation, syntaxe obsolète, manque de commentaires et structure |
| **Expérience Utilisateur** | Jouabilité intuitive avec instructions claires, excellent retour, et expérience de fin/redémarrage engageante | Bonne jouabilité avec instructions et retours adéquats, fin/redémarrage fonctionnels | Jouabilité basique avec instructions minimales, retours limités sur létat du jeu | Jouabilité confuse avec instructions peu claires et mauvais retour utilisateur |
| **Implémentation Technique** | Maîtrise des concepts de développement de jeux, gestion des événements, et gestion détat | Bonne compréhension des concepts de jeu avec bonne implémentation | Compréhension basique avec implémentation acceptable | Compréhension limitée avec mauvaise implémentation |
| **Documentation** | README complet avec instructions claires, code bien documenté, et preuves de tests approfondis | Bonne documentation avec instructions claires et commentaires suffisants | Documentation basique avec instructions minimales | Documentation pauvre ou manquante |
### Barème de notation
- **Exemplaire (16-20 points)** : Dépasse les attentes avec des fonctionnalités créatives et une implémentation soignée
- **Compétent (12-15 points)** : Répond à toutes les exigences avec une exécution solide
- **En Développement (8-11 points)** : Répond à la plupart des exigences avec quelques problèmes mineurs
- **Débutant (4-7 points)** : Répond à certaines exigences mais nécessite une amélioration significative
## Ressources dApprentissage Supplémentaires
- [Guide de Développement de Jeux MDN](https://developer.mozilla.org/en-US/docs/Games)
- [Tutoriels de Développement de Jeux JavaScript](https://developer.mozilla.org/en-US/docs/Games/Tutorials)
- [Documentation de lAPI Canvas](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)
- [Principes de Conception de Jeu](https://www.gamasutra.com/blogs/)
> 💡 **Astuce Pro** : Commencez simple et ajoutez des fonctionnalités progressivement. Un jeu simple bien peaufiné est mieux quun jeu complexe avec des bugs !
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Avertissement** :
Ce document a été traduit à laide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforcions dassurer lexactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des imprécisions. Le document original dans sa langue dorigine doit être considéré comme la source faisant foi. Pour les informations critiques, il est recommandé de recourir à une traduction professionnelle réalisée par un humain. Nous déclinons toute responsabilité en cas de malentendus ou de mauvaises interprétations résultant de lutilisation de cette traduction.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->