|
1 | | -# Imparare Python programmando giochi |
2 | | -Impara a sviluppare in Python sviluppando dei giochi con PyGame Zero. |
3 | | -Le risorse principali sono in lingua italiana. |
| 1 | +# 🎮 Imparare Python Programmando Giochi |
4 | 2 |
|
5 | | -I giochi presentati nei video: |
| 3 | +> *Impara Python divertendoti! Un percorso completo per trasformare la teoria in pratica attraverso la creazione di videogiochi.* |
6 | 4 |
|
7 | | -game01 - Colpisci l'alieno |
8 | | -game02 - Ape Golosa |
9 | | -game03 - Connetti i satelliti |
10 | | -game04 - Stella Rossa |
11 | | -game05 - Quiz |
12 | | -game06 - Mongolfiera |
13 | | -game07 - Flappy Bird |
14 | | -game08 - Karate Kid |
15 | | -game09 - Stelle |
16 | | -game10 - Invasione dallo spazio |
| 5 | +[](https://www.python.org/) |
| 6 | +[](https://pygame-zero.readthedocs.io/) |
| 7 | +[](LICENSE) |
| 8 | +[]() |
17 | 9 |
|
18 | | -Giochi non presentati nei video: |
| 10 | +--- |
19 | 11 |
|
20 | | -game02_1 - Tony alla ricerca della musica |
21 | | -game04_1 - Stranger Stars |
22 | | -game11 - La Battaglia Finale: Harry vs Voldemort |
| 12 | +## 📚 Cosa Troverai Qui |
23 | 13 |
|
24 | | -# Programma |
25 | | -Quattro sessioni video di circa 2h sono disponibili su YouTube. |
| 14 | +Questo repository contiene una **collezione progressiva di giochi** creati con **PyGame Zero**, pensati per insegnare Python in modo pratico e coinvolgente. Ogni gioco introduce nuovi concetti di programmazione, dalle basi fino a tecniche più avanzate. |
26 | 15 |
|
27 | | -1 - Introduzione al corso, a Python, basi |
28 | | -[link alla registrazione](https://youtu.be/zjXXappgQak) |
| 16 | +**Perfetto per:** |
| 17 | +- 🎓 Studenti delle scuole superiori |
| 18 | +- 👨🏫 Insegnanti che vogliono materiale didattico interattivo |
| 19 | +- 🚀 Autodidatti che vogliono imparare Python in modo divertente |
| 20 | +- 👨💻 Chiunque voglia capire la programmazione attraverso progetti concreti |
29 | 21 |
|
30 | | -2 - Introduzione a PyGame Zero e primi giochi |
31 | | -[link alla registrazione](https://youtu.be/qqv4d4IbOpM) |
| 22 | +**Risorse principali:** 🇮🇹 **Italiano** |
32 | 23 |
|
33 | | -3 - Tris di giochi a difficoltà crescente |
34 | | -[link alla registrazione](https://youtu.be/5BB3_hGxU9o) |
| 24 | +--- |
35 | 25 |
|
36 | | -4 - Altri quattro giochi a difficoltà crescente |
37 | | -[link alla registrazione](https://youtu.be/Mks0j17dv8g) |
| 26 | +## 🎯 I Giochi |
38 | 27 |
|
39 | | -5 - Bonus track - Intervista a Daniel Pope, il creatore di PyGameZero |
40 | | -[link alla registrazione](https://youtu.be/OXWRhpfB7mQ) |
| 28 | +### 📺 Presentati nei Video Tutorial |
41 | 29 |
|
42 | | -# Riferimenti |
| 30 | +| Gioco | Difficoltà | Concetti Chiave | |
| 31 | +|-------|-----------|----------------| |
| 32 | +| **game01** - Colpisci l'Alieno | ⭐ Facile | Eventi mouse, sprite, collisioni base | |
| 33 | +| **game02** - Ape Golosa | ⭐ Facile | Movimento, raccolta oggetti, punteggio | |
| 34 | +| **game03** - Connetti i Satelliti | ⭐⭐ Medio | Pathfinding, grafi, logica di gioco | |
| 35 | +| **game04** - Stella Rossa | ⭐⭐ Medio | Animazioni, timing, gestione stato | |
| 36 | +| **game05** - Quiz | ⭐ Facile | Input utente, logica condizionale, UI | |
| 37 | +| **game06** - Mongolfiera | ⭐⭐ Medio | Fisica semplice, gravità, controlli | |
| 38 | +| **game07** - Flappy Bird | ⭐⭐⭐ Difficile | Game loop, fisica, collision detection | |
| 39 | +| **game08** - Karate Kid | ⭐⭐ Medio | Combo, timing preciso, feedback visivo | |
| 40 | +| **game09** - Stelle | ⭐⭐ Medio | Generazione procedurale, pattern | |
| 41 | +| **game10** - Invasione dallo Spazio | ⭐⭐⭐ Difficile | Nemici multipli, proiettili, game over | |
43 | 42 |
|
44 | | -https://pygame-zero.readthedocs.io/en/stable/principles.html |
| 43 | +### 🎁 Giochi Bonus (Non nei Video) |
45 | 44 |
|
46 | | -https://buildmedia.readthedocs.org/media/pdf/pygame-zero/latest/pygame-zero.pdf |
| 45 | +| Gioco | Difficoltà | Highlight | |
| 46 | +|-------|-----------|-----------| |
| 47 | +| **game02_1** - Tony alla Ricerca della Musica | ⭐⭐ Medio | Ricerca file, debugging, percorsi | |
| 48 | +| **game04_1** - Stranger Stars | ⭐⭐⭐ Difficile | Debug avanzato, correzione errori | |
| 49 | +| **game11** - La Battaglia Finale: Harry vs Voldemort | ⭐⭐⭐⭐ Avanzato | 🔥 **CSV, Polars, DataFrames, AI base, sistema a turni** | |
47 | 50 |
|
48 | | -https://electronstudio.github.io/pygame-zero-book/ |
| 51 | +> 💡 **Novità!** Il game11 introduce concetti di **Data Science** e **AI/ML** usando Polars per gestire dati tabulari (incantesimi) e creare un'intelligenza artificiale per Voldemort! |
49 | 52 |
|
50 | | -https://github.com/rbricheno/pygamezero-workshop |
| 53 | +--- |
51 | 54 |
|
52 | | -https://github.com/TechnoVisual/Pygame-Zero/ |
| 55 | +## 🎥 Video Tutorial (YouTube) |
53 | 56 |
|
54 | | -https://simplegametutorials.github.io/pygamezero/ |
| 57 | +Un **corso completo gratuito** di circa 8 ore totali, suddiviso in sessioni tematiche: |
55 | 58 |
|
56 | | -https://blog.withcode.uk/2019/05/create-games-with-python-online-pygamezero-simulator/ |
| 59 | +| # | Titolo | Durata | Link | |
| 60 | +|---|--------|--------|------| |
| 61 | +| **1** | Introduzione a Python e basi della programmazione | ~2h | [▶️ Guarda](https://youtu.be/zjXXappgQak) | |
| 62 | +| **2** | Introduzione a PyGame Zero e primi giochi | ~2h | [▶️ Guarda](https://youtu.be/qqv4d4IbOpM) | |
| 63 | +| **3** | Tris di giochi a difficoltà crescente | ~2h | [▶️ Guarda](https://youtu.be/5BB3_hGxU9o) | |
| 64 | +| **4** | Quattro giochi avanzati | ~2h | [▶️ Guarda](https://youtu.be/Mks0j17dv8g) | |
| 65 | +| **BONUS** | Intervista a Daniel Pope (creatore di PyGame Zero) | ~30min | [▶️ Guarda](https://youtu.be/OXWRhpfB7mQ) | |
57 | 66 |
|
58 | | -https://github.com/markmillr/pgzero-teaching-resources/blob/master/pygame-zero-cheatsheet-pintman-en.pdf |
| 67 | +--- |
59 | 68 |
|
60 | | -https://www.mattlayman.com/blog/2019/teach-kid-code-pygame-zero/ |
| 69 | +## 🚀 Come Iniziare |
61 | 70 |
|
62 | | -# Altri esempi (tutti in inglese) |
| 71 | +### Prerequisiti |
63 | 72 |
|
64 | | -Esempi ufficiali della repo |
65 | | -https://github.com/lordmauve/pgzero/tree/master/examples |
| 73 | +```bash |
| 74 | +# Python 3.8 o superiore |
| 75 | +python --version |
66 | 76 |
|
67 | | -https://github.com/TechnoVisual/Pygame-Zero |
| 77 | +# Installa PyGame Zero |
| 78 | +pip install pgzero |
68 | 79 |
|
69 | | -https://github.com/rajasekaranap/pygamezero-examples |
| 80 | +# Per il game11 (Battaglia Harry vs Voldemort) |
| 81 | +pip install polars |
| 82 | +``` |
70 | 83 |
|
71 | | -https://github.com/Wireframe-Magazine/Code-the-Classics |
| 84 | +### Clona il Repository |
72 | 85 |
|
73 | | -https://github.com/Belgin-Android/PgZero_Game |
| 86 | +```bash |
| 87 | +git clone https://github.com/PythonBiellaGroup/LearningPythonWithGames.git |
| 88 | +cd LearningPythonWithGames |
| 89 | +``` |
74 | 90 |
|
75 | | -https://github.com/codecoach-joshua/PGZProjects |
| 91 | +### Esegui un Gioco |
76 | 92 |
|
77 | | -https://github.com/kantel/pygamezero |
| 93 | +```bash |
| 94 | +# Metodo 1: Con Python |
| 95 | +python game01.py |
78 | 96 |
|
79 | | -https://github.com/ScienceOxford/mediaeval_pygamezero |
| 97 | +# Metodo 2: Con pgzrun (se configurato) |
| 98 | +pgzrun game01.py |
| 99 | +``` |
80 | 100 |
|
81 | | -https://github.com/ericclack |
82 | | -Giochi non completi ma accompagnati da tutorial |
| 101 | +--- |
83 | 102 |
|
84 | | -# Libreria con funzioni aggiuntive per PGZ |
| 103 | +## 📖 Struttura del Progetto |
85 | 104 |
|
86 | | -https://www.aposteriori.com.sg/pygame-zero-helper/ |
87 | | -# Ambienti runtime dove provare online |
| 105 | +``` |
| 106 | +LearningPythonWithGames/ |
| 107 | +├── game01/ - game10/ # Giochi dei video tutorial |
| 108 | +├── game02_1/ # Tony alla ricerca della musica |
| 109 | +├── game04_1/ # Stranger Stars (debugging) |
| 110 | +├── game11/ # Harry vs Voldemort (CSV + Polars) |
| 111 | +│ ├── harry_voldemort.py |
| 112 | +│ ├── spells.csv # Database incantesimi |
| 113 | +│ └── images/ # Sprite e sfondi |
| 114 | +├── images/ # Risorse grafiche condivise |
| 115 | +├── sounds/ # Effetti sonori (se presenti) |
| 116 | +└── README.md |
| 117 | +``` |
88 | 118 |
|
89 | | -https://create.withcode.uk/ |
| 119 | +--- |
90 | 120 |
|
91 | | -https://repl.it/languages/pygame |
| 121 | +## 🎓 Percorso di Apprendimento Consigliato |
| 122 | + |
| 123 | +### 🟢 **Livello 1: Fondamentali** (Settimana 1-2) |
| 124 | +1. game01 - Colpisci l'Alieno |
| 125 | +2. game02 - Ape Golosa |
| 126 | +3. game05 - Quiz |
| 127 | + |
| 128 | +**Cosa impari:** Variabili, funzioni, eventi, sprite, collisioni |
| 129 | + |
| 130 | +--- |
| 131 | + |
| 132 | +### 🟡 **Livello 2: Intermedio** (Settimana 3-4) |
| 133 | +4. game03 - Connetti i Satelliti |
| 134 | +5. game04 - Stella Rossa |
| 135 | +6. game06 - Mongolfiera |
| 136 | +7. game08 - Karate Kid |
| 137 | + |
| 138 | +**Cosa impari:** Liste, dizionari, animazioni, fisica base, stato del gioco |
| 139 | + |
| 140 | +--- |
| 141 | + |
| 142 | +### 🔴 **Livello 3: Avanzato** (Settimana 5-6) |
| 143 | +8. game07 - Flappy Bird |
| 144 | +9. game09 - Stelle |
| 145 | +10. game10 - Invasione dallo Spazio |
| 146 | +11. game04_1 - Stranger Stars (debugging) |
| 147 | + |
| 148 | +**Cosa impari:** Game loop complessi, OOP, gestione errori, ottimizzazione |
| 149 | + |
| 150 | +--- |
| 151 | + |
| 152 | +### 🔵 **Livello 4: Data & AI** (Settimana 7+) |
| 153 | +12. game11 - Harry vs Voldemort |
| 154 | + |
| 155 | +**Cosa impari:** |
| 156 | +- 📊 Lavorare con CSV e DataFrames (Polars) |
| 157 | +- 🤖 Creare un'AI semplice |
| 158 | +- 🎯 Sistema a turni |
| 159 | +- 📈 Manipolazione dati tabulari |
| 160 | + |
| 161 | +--- |
| 162 | + |
| 163 | +## 🛠️ Strumenti e Tecnologie |
| 164 | + |
| 165 | +- **Python 3.8+** - Linguaggio di programmazione |
| 166 | +- **PyGame Zero** - Framework per creare giochi senza complessità |
| 167 | +- **Polars** (game11) - Libreria velocissima per DataFrames |
| 168 | +- **CSV** (game11) - Formato per salvare dati tabulari |
| 169 | + |
| 170 | +--- |
| 171 | + |
| 172 | +## 📚 Risorse Didattiche |
| 173 | + |
| 174 | +### 📖 Documentazione Ufficiale |
| 175 | + |
| 176 | +- [PyGame Zero - Documentazione](https://pygame-zero.readthedocs.io/en/stable/principles.html) |
| 177 | +- [PyGame Zero - PDF Completo](https://buildmedia.readthedocs.org/media/pdf/pygame-zero/latest/pygame-zero.pdf) |
| 178 | +- [Polars - Guida Rapida](https://docs.pola.rs/) |
| 179 | + |
| 180 | +### 📘 Libri e Guide |
| 181 | + |
| 182 | +- [PyGame Zero Book](https://electronstudio.github.io/pygame-zero-book/) - Libro interattivo gratuito |
| 183 | +- [Simple Game Tutorials](https://simplegametutorials.github.io/pygamezero/) - Tutorial step-by-step |
| 184 | +- [PyGame Zero Cheat Sheet](https://github.com/markmillr/pgzero-teaching-resources/blob/master/pygame-zero-cheatsheet-pintman-en.pdf) - Riferimento rapido |
| 185 | + |
| 186 | +### 🎯 Workshop e Tutorial |
| 187 | + |
| 188 | +- [PyGame Zero Workshop](https://github.com/rbricheno/pygamezero-workshop) |
| 189 | +- [Teaching Resources](https://github.com/markmillr/pgzero-teaching-resources) |
| 190 | +- [Teach Your Kid to Code](https://www.mattlayman.com/blog/2019/teach-kid-code-pygame-zero/) |
| 191 | + |
| 192 | +--- |
| 193 | + |
| 194 | +## 🌍 Altri Esempi e Progetti |
| 195 | + |
| 196 | +### Repository Ufficiali |
| 197 | + |
| 198 | +- [Esempi Ufficiali PyGame Zero](https://github.com/lordmauve/pgzero/tree/master/examples) |
| 199 | +- [Code the Classics](https://github.com/Wireframe-Magazine/Code-the-Classics) - Remake di giochi classici |
| 200 | + |
| 201 | +### Collezioni Community |
| 202 | + |
| 203 | +- [TechnoVisual Examples](https://github.com/TechnoVisual/Pygame-Zero) |
| 204 | +- [PyGame Zero Examples](https://github.com/rajasekaranap/pygamezero-examples) |
| 205 | +- [Eric Clack Tutorials](https://github.com/ericclack) - Giochi con tutorial completi |
| 206 | +- [Kantel Collection](https://github.com/kantel/pygamezero) |
| 207 | + |
| 208 | +--- |
| 209 | + |
| 210 | +## 🎮 Prova Online (Senza Installare) |
| 211 | + |
| 212 | +Non vuoi installare Python? Prova questi ambienti online: |
| 213 | + |
| 214 | +- [**WithCode.uk**](https://create.withcode.uk/) - Editor online per PyGame Zero |
| 215 | +- [**Repl.it**](https://repl.it/languages/pygame) - IDE completo nel browser |
| 216 | + |
| 217 | +--- |
| 218 | + |
| 219 | +## 🔧 Librerie Utili per PyGame Zero |
| 220 | + |
| 221 | +### PyGame Zero Helper |
| 222 | +Estensione con funzioni aggiuntive per semplificare lo sviluppo: |
| 223 | +- [Documentazione e Download](https://www.aposteriori.com.sg/pygame-zero-helper/) |
| 224 | + |
| 225 | +--- |
| 226 | + |
| 227 | +## 🤝 Come Contribuire |
| 228 | + |
| 229 | +Hai creato un nuovo gioco? Hai migliorato uno esistente? **Contribuisci!** |
| 230 | + |
| 231 | +1. Fai un **fork** del repository |
| 232 | +2. Crea un branch: `git checkout -b feature/mio-gioco` |
| 233 | +3. Aggiungi il tuo gioco con documentazione |
| 234 | +4. Commit: `git commit -m 'Add: Nuovo gioco X'` |
| 235 | +5. Push: `git push origin feature/mio-gioco` |
| 236 | +6. Apri una **Pull Request** |
| 237 | + |
| 238 | +### Idee per Contributi |
| 239 | + |
| 240 | +- ✨ Nuovi giochi con tutorial |
| 241 | +- 🐛 Correzione bug |
| 242 | +- 📚 Traduzione documentazione |
| 243 | +- 🎨 Nuovi asset grafici/sonori |
| 244 | +- 📝 Miglioramenti al README |
| 245 | + |
| 246 | +--- |
| 247 | + |
| 248 | +## 💬 Community e Supporto |
| 249 | + |
| 250 | +- 💬 **Discord**: [Python Biella Group](https://discord.gg/pythonbiella) *(link da aggiornare)* |
| 251 | +- 🐦 **Twitter**: [@PythonBiella](https://twitter.com/pythonbiella) *(link da aggiornare)* |
| 252 | +- 📧 **Email**: info@pythonbiellagroup.it *(email da verificare)* |
| 253 | + |
| 254 | +--- |
| 255 | + |
| 256 | +## 📜 Licenza |
| 257 | + |
| 258 | +Questo progetto è distribuito sotto licenza **MIT** - vedi il file [LICENSE](LICENSE) per dettagli. |
| 259 | + |
| 260 | +--- |
| 261 | + |
| 262 | +## 🙏 Ringraziamenti |
| 263 | + |
| 264 | +- **Daniel Pope** - Creatore di PyGame Zero |
| 265 | +- **Python Biella Group** - Community e supporto |
| 266 | +- **Tutti i contributori** - Grazie per rendere questo progetto migliore! |
| 267 | + |
| 268 | +--- |
| 269 | + |
| 270 | +## ⭐ Ti Piace Questo Progetto? |
| 271 | + |
| 272 | +Se trovi utile questo repository: |
| 273 | +- ⭐ Lascia una **stella** su GitHub |
| 274 | +- 🔄 Condividi con amici e studenti |
| 275 | +- 🐛 Segnala bug o suggerisci miglioramenti |
| 276 | +- 💻 Contribuisci con il tuo codice! |
| 277 | + |
| 278 | +--- |
| 279 | + |
| 280 | +<div align="center"> |
| 281 | + |
| 282 | +**Fatto con ❤️ da [Python Biella Group](https://github.com/PythonBiellaGroup)** |
| 283 | + |
| 284 | +*"Il miglior modo per imparare è creare qualcosa di divertente!"* |
| 285 | + |
| 286 | +</div> |
0 commit comments