File size: 2,248 Bytes
a61ba58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# Don't Look Up - Server

Backend du jeu "Don't Look Up", un jeu narratif post-apocalyptique généré par IA.

## 🛠️ Installation

1. Assurez-vous d'avoir Python 3.10+ et Poetry installés
2. Clonez le repository
3. Installez les dépendances :

```bash
cd server
poetry install
```

4. Créez un fichier `.env` à la racine du dossier `server` avec :

```env
MISTRAL_API_KEY=votre_clé_api_mistral
```

## 🚀 Lancement du serveur

```bash
poetry run dev
```

Le serveur démarrera sur `http://localhost:8000`

## 🎮 Tests du jeu

Le projet inclut un script de test qui permet de jouer au jeu en mode console et de tester la génération d'histoire.

### Modes de lancement

1. Mode interactif (normal) :

```bash
poetry run test-game
```

2. Mode automatique (pour les tests) :

```bash
poetry run test-game --auto
```

3. Mode automatique avec nombre de tours personnalisé :

```bash
poetry run test-game --auto --max-turns 20
```

4. Mode automatique avec affichage du contexte complet :

```bash
poetry run test-game --auto --show-context
```

### Codes de retour

En mode automatique, le script retourne :

- Code 0 : Victoire
- Code 1 : Défaite, erreur ou timeout (> 15 tours par défaut)

### Exemple d'utilisation dans un script

```bash
# Lancer 5 tests automatiques d'affilée
for i in {1..5}; do
    echo "Test run $i"
    poetry run test-game --auto || echo "Test $i failed"
done
```

## 📚 Structure du projet

```
server/
├── api/            # Routes et modèles FastAPI
├── core/           # Logique métier et générateurs
│   ├── generators/ # Générateurs (histoire, univers, etc.)
│   └── prompts/    # Templates de prompts pour l'IA
├── scripts/        # Scripts utilitaires
└── services/       # Services externes (Mistral, etc.)
```

## 🔄 Workflow de génération

1. Génération de l'univers (`UniverseGenerator`)

   - Style graphique
   - Genre
   - Époque
   - MacGuffin
   - Histoire de base

2. Génération des segments d'histoire (`StoryGenerator`)

   - Texte narratif
   - Choix
   - Prompts d'images
   - Métadonnées (temps, lieu)

3. Gestion de l'état du jeu (`GameState`)
   - Progression de l'histoire
   - Historique des choix
   - État du monde