Autore: Matteo Morreale
Un gioco web interattivo per indovinare le bandiere dei paesi del mondo, con sistema di punteggi, medaglie e animazioni in stile tech/spionaggio.
- Quiz interattivo: Mostra una bandiera e 4 opzioni di risposta
- Feedback immediato: Evidenzia la risposta corretta/sbagliata con colori
- Suggerimenti: Ogni bandiera include un tip per memorizzarla meglio
- Animazione mappa: Effetti tech/spionaggio che mostrano la posizione del paese
- Contatori: Risposte corrette e sbagliate
- Moltiplicatore: Aumenta con le risposte consecutive corrette (max x10)
- Punti bonus: Calcolati come risposte corrette × moltiplicatore
- Medaglie: 6 livelli di achievement (5, 10, 20, 50, 100, 200 bandiere)
- localStorage: Tutti i progressi salvati localmente
- Persistenza: I dati rimangono tra le sessioni
- Avviso cookie: Notifica all'utente sulla perdita dati se cancella i cookie
- Tema scuro: Interfaccia moderna con colori tech
- Responsive: Funziona su desktop e mobile
- Animazioni: Effetti fluidi e feedback visivo
- Stile tech: Radar, griglia, effetti di scansione
flag_game/
├── api/ # API PHP
│ ├── random_flag.php # Endpoint per bandiera casuale
│ └── check_answer.php # Endpoint per verifica risposta
├── assets/ # Risorse frontend
│ ├── css/
│ │ └── style.css # Stili principali
│ └── js/
│ ├── game.js # Logica principale del gioco
│ ├── map-animation.js # Animazioni mappa tech
│ └── storage.js # Gestione localStorage
├── config/
│ └── database.php # Configurazione database SQLite
├── data/
│ └── flag_game.db # Database SQLite
├── models/ # Modelli PHP
│ ├── Country.php # Modello paesi
│ ├── Flag.php # Modello bandiere
│ └── Tip.php # Modello suggerimenti
├── public/ # Directory web root
│ └── index.html # Pagina principale
└── setup_database.php # Script inizializzazione DB
- PHP 8.1+ con estensioni:
- php-sqlite3
- php-json
- php-mbstring
- Server web (Apache/Nginx) o PHP built-in server
-
Clona o scarica il progetto
git clone [repository] flag_game cd flag_game -
Installa le dipendenze PHP (Ubuntu/Debian)
sudo apt update sudo apt install php php-cli php-sqlite3 php-json php-mbstring
-
Inizializza il database
php setup_database.php
-
Avvia il server
php -S localhost:8080 -t public
-
Apri il browser Vai su
http://localhost:8080
Restituisce una bandiera casuale con opzioni di risposta.
Risposta:
{
"flag_id": 123,
"image_url": "https://flagsapi.com/IT/flat/64.png",
"options": [
{"name": "Italia", "is_correct": true},
{"name": "Francia", "is_correct": false},
{"name": "Germania", "is_correct": false},
{"name": "Spagna", "is_correct": false}
],
"tip": "Il tricolore italiano è ispirato alla bandiera francese."
}Verifica la risposta dell'utente e restituisce dati geografici.
Richiesta:
{
"flag_id": 123,
"selected_country_name": "Italia"
}Risposta:
{
"is_correct": true,
"correct_country_name": "Italia",
"country_data": {
"name": "Italia",
"capital": "Roma",
"latitude": 41.87194,
"longitude": 12.56738,
"geojson": null
}
}id(INTEGER PRIMARY KEY)name(VARCHAR) - Nome del paesecapital(VARCHAR) - Capitaleiso2_code(VARCHAR) - Codice ISO a 2 lettereiso3_code(VARCHAR) - Codice ISO a 3 letterelatitude(DECIMAL) - Latitudinelongitude(DECIMAL) - Longitudinegeojson_data(JSON) - Dati geografici (opzionale)
id(INTEGER PRIMARY KEY)country_id(INTEGER) - FK verso countriesimage_url(VARCHAR) - URL dell'immagine bandiera
id(INTEGER PRIMARY KEY)country_id(INTEGER) - FK verso countriestip_text(TEXT) - Suggerimento per memorizzare la bandiera
- PHP 8.1+: Linguaggio server-side
- SQLite: Database leggero e portatile
- PDO: Astrazione database per sicurezza
- HTML5: Struttura semantica
- CSS3: Stili moderni con variabili CSS e animazioni
- JavaScript ES6+: Logica client-side moderna
- Fetch API: Comunicazione asincrona con il backend
- FlagsAPI: Immagini delle bandiere (https://flagsapi.com/)
- Font Awesome: Icone
- Google Fonts: Tipografia (Inter)
✅ Core Gameplay
- Quiz bandiere con 4 opzioni
- Feedback visivo immediato
- Sistema di punteggi e moltiplicatori
- Medaglie e achievement
✅ Interfaccia Utente
- Design responsive
- Tema scuro moderno
- Animazioni fluide
- Feedback audio (medaglie)
✅ Backend API
- Endpoint per bandiere casuali
- Verifica risposte
- Database con 10 paesi di esempio
✅ Persistenza Dati
- Salvataggio localStorage
- Gestione errori storage
- Avvisi utente
✅ Animazioni Tech
- Radar con scansione
- Griglia tech animata
- Effetti di zoom e pulse
- Stile spionaggio/militare
- 🌍 Più paesi: Espandere il database con tutti i paesi del mondo
- 🗺️ Mappa interattiva: Integrazione con Leaflet o Google Maps
- 🎵 Audio: Suoni per feedback e atmosfera
- 👥 Multiplayer: Sfide tra giocatori
- 📊 Statistiche avanzate: Grafici e analisi prestazioni
- 🌐 Localizzazione: Supporto multilingua
- 🏅 Classifiche: Leaderboard globali
- 🎯 Modalità gioco: Tempo limitato, difficoltà variabile
Questo progetto è rilasciato sotto licenza proprietaria con le seguenti condizioni:
- ✅ Uso Personale: È consentito l'uso del software per scopi personali e didattici
- ✅ Modifica: È possibile modificare il codice per uso personale
- ✅ Studio: È consentito studiare il codice per scopi educativi
- ✅ Fork: È possibile creare fork del progetto su GitHub per contribuire
- ❌ Uso Commerciale: È vietato qualsiasi uso commerciale del software
- ❌ Redistribuzione: È vietata la redistribuzione del software senza autorizzazione
- ❌ Vendita: È vietata la vendita del software o di sue parti
- ❌ Rimozione Copyright: È vietata la rimozione delle informazioni di copyright
- 📋 Attribuzione: L'autore originale (Matteo Morreale) deve essere sempre citato
- 📋 Copyright: Tutte le opere derivate devono mantenere questa licenza
- 📋 Disclaimer: Il software è fornito "così com'è" senza garanzie
Indovina la Bandiera! - Interactive Flag Guessing Game
Copyright (C) 2025 Matteo Morreale
Questo software e il relativo codice sorgente sono di proprietà esclusiva di
Matteo Morreale. È vietato l'uso commerciale, la redistribuzione non autorizzata
o la rimozione di questo avviso di copyright.
Per richieste di licenze commerciali o permessi speciali, contattare l'autore.
IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIE DI ALCUN TIPO, ESPLICITE O
IMPLICITE, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ
PER UN PARTICOLARE SCOPO E NON VIOLAZIONE.
Per richieste di licenze commerciali o permessi speciali per l'uso del software, contattare l'autore del progetto.
Per problemi tecnici, bug report o domande sul progetto, contattare:
Matteo Morreale - Autore e Proprietario del Progetto
Questo software utilizza il servizio FlagsAPI (https://flagsapi.com/) per le immagini delle bandiere. Le immagini delle bandiere potrebbero essere soggette a diritti d'autore separati. L'uso delle bandiere è limitato al contesto educativo e non commerciale di questo gioco.