A geography-themed bluffing card game where two teams compete to get rid of their cards by placing them in order based on country statistics (configurable categories).
Objective: Be the first team to get rid of all your cards.
- A random category is chosen from the configured list
- A reference card is placed in the center
- Players take turns placing cards on the board
- Cards must be ordered from lowest value (left) to highest value (right)
- You can bluff by placing a card in the wrong position!
- If you think the order is wrong, call "BLUFF!"
- All cards are revealed
- If the order was correct: you draw 2 new cards
- If the order was wrong: your opponent draws 2 new cards
- A new round begins with a new category
- When you place your last card, you must name its capital
- Correct answer = Victory!
- Your opponent can accept close answers (e.g., "Pekin" instead of "Beijing")
- Wrong answer refused = you draw 2 new cards
pip install -r requirements.txtuvicorn main:app --reloadThen open http://localhost:8000
To regenerate country data from REST Countries API and World Bank API:
pip install requests
python generate_countries.pyThis creates countries.json with ~195 countries containing name, capital, flag emoji, and the configured categories.
Configure categories in categories_config.json.
geobluff/
├── main.py # FastAPI app and routes
├── game.py # Game logic
├── countries.json # Country data
├── generate_countries.py # Script to generate country data
├── static/
│ ├── style.css
│ └── app.js
├── templates/
│ └── index.html
└── requirements.txt
- Backend: FastAPI (Python)
- Frontend: Vanilla JS, CSS
- Data: REST Countries API, World Bank API
- Country information: REST Countries API
- Statistics: World Bank 2023