Version web simple de Pierre-Feuille-Ciseaux : backend Flask (Python) + frontend HTML/CSS/JS.
PFC-PYTHON/
├── src/
│ ├── game/
│ │ ├── __init__.py
│ │ └── game.py
│ ├── logic/
│ │ ├── __init__.py
│ │ └── logic.py
│ └── menu/
│ ├── __init__.py
│ └── menu.py
├── static/
│ ├── style.css
│ └── script.js
├── templates/
│ └── index.html
├── app.py
├── main.py
└── README.md
app.py
: application Flask et routes (/
,/state
,/play
,/reset
,/regles
), sessions pour stocker l’état.src/
: logique Python réutilisée (comparaison des coups, règles, boucle de manche).templates/index.html
: structure de la page.static/script.js
: appelsfetch
vers l’API et mise à jour du DOM.static/style.css
: styles (effet “verre”/glass).
- Python 3.9+
- pip Conseillé : environnement virtuel.
macOS / Linux:
cd PFC-PYTHON
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install flask
Windows (PowerShell):
cd PFC-PYTHON
py -m venv .venv
. .venv\Scripts\Activate.ps1
py -m pip install --upgrade pip
py -m pip install flask
Depuis la racine du projet:
macOS / Linux:
source .venv/bin/activate
python3 app.py
Windows (PowerShell):
. .venv\Scripts\Activate.ps1
py app.py
Ouvrir: http://127.0.0.1:5000/
GET /state
: état courant (scores, égalités, fin de partie)GET /regles
: règlesPOST /play
: body JSON{ "choix": "pierre" | "feuille" | "ciseaux" }
POST /reset
: réinitialise la partie
ModuleNotFoundError: No module named 'src'
Vérifier que les modules sont danssrc/
et que vous lancezapp.py
depuis la racine.ModuleNotFoundError: No module named 'server'
Lancer depuis la racine (python3 app.py
oupy app.py
), pas depuistemplates/
oustatic/
.- Chemins
templates
/static
app.py
doit déclarertemplate_folder="templates"
etstatic_folder="static"
si nécessaire.
- Remplacer la clé de session de développement dans
app.py
par une clé forte en production. - Adapter le design dans
static/style.css
. - Étendre
src/logic/logic.py
etsrc/menu/menu.py
selon vos règles.