[[https://docs.google.com/forms/d/e/1FAIpQLScUT5aQUIZYIQGU-4p7GMX2eXlpqfpET4ezmf-BUKtOnX--Xw/viewform?usp=sf_link|Introduzione a Python (corso People@DEIB)]] === Python === Per avvicinarsi a Python, è possibile avvalersi di vari testi liberamente disponibili in formato pdf o html, fra cui: * Mark Pilgrim, [[http://www.diveintopython.net/|Dive Into Python]]: molto completo; * Allen B. Downey, Jeffrey Elkner and Chris Meyers [[http://www.greenteapress.com/thinkpython/|How to Think Like a Computer Scientist - Learning with Python]]: testo introduttivo alla programmazione, va bene se avete bisogno di un ripasso dei concetti fondamentali di programmazione. Inoltre, ho raccolto quanto visto a lezione in questo [[http://nbviewer.jupyter.org/url/home.deib.polimi.it/agosta/files/IntroPython.ipynb|notebook Jupyter]]. Qui le [[http://nbviewer.jupyter.org/format/slides/url/home.deib.polimi.it/agosta/files/IntroPython.ipynb#/|slide]] corrispondenti. ==== Python: Space-themed 3x turn-based strategy game ==== Nel caso di Python si tratta un gioco di strategia a turni. Qui c'è {{teaching:space_0.1.1.zip|l'ultima versione}}, in cui ho implementato un modo standard per aggiungere nuove varianti dell'intelligenza artificiale. Potete provare a implementare nuove AI, e testarle con il programma ''main.py'', che vi consente di far giocare varie AI le une contro le altre in combinazioni casuali. ==== Python: Saucers, a real time shoot 'em up ==== Un {{teaching:saucers.tgz|secondo gioco}}, piu' semplice, dimostra come si possono realizzare applicazioni grafiche real time. Presento sei diverse versioni. La prima, che non fa uso di costrutti avanzati di Python, è molto semplice ma non include un vero e proprio gameplay (semplicemente, mostra un disco volante che puo' muoversi in uno spazio bidimensionale). La versione piu' avanzata consente non solo di colpire i dischi nemici con proiettili, ma anche di conservare traccia dei punteggi realizzati in un apposito file.