Ciao Gabriele, Da quello che mi sembra di ricordare, la scacchiera è composta da caselle bianche e caselle nere. Nelle caselle bianche vanno gli scacchi, le caselle nere sono inutilizzate. In termini informatici, le caselle nere dovrebbero essere soltanto visive. Ammettendo che le volessimo rappresentare tutte, la matrice dovrebbe essere 16 x 16, dove le caselle bianche sono dei numeri, le caselle nere solo dei trattini. Perché dei numeri? Perché gli scacchi sono dei pezzi che devono essere spostati nella matrice. Il modo migliore per identificare i pezzi è usando una notazione numerica. Prendiamo i pezzi bianchi: abbiamo due torri, due cavalli, due alfieri, un re e una regina. Sono tutti simmetricamente disposti, tranne il re e la regina che sono vicini. Dunque, la torre 1 sta sulla prima colonna, la torre 2 sta sull'ultima. I cavalli e gli alfieri vengono di seguito. Dunque, partiamo dalla matrice. Per costruire una matrice 16 x 16 che abbia numeri e trattini, la possiamo inizializzare così: scacchiera = [[0,'-']*8,['-',0]*]*8 Noterai che scacchiera[0] inizia con 0, scacchiera[1] inizia con trattino. In realtà non servirebbe, basterebbe costruire una matrice 8 x 8 con tutti 0, poi si penserà a come rappresentare visivamente la scachiera con le caselle nere.
Naturalmente bisognerà scrivere una classe, perché bisogna implementare i metodi di mossa degli scacchi, identificare i pezzi etc. Però così dovrebbe funzionare... -----Messaggio originale----- Da: python-boun...@lists.python.it [mailto:python-boun...@lists.python.it] Per conto di Gabriele Battaglia Inviato: mercoledì 2 luglio 2014 11:04 A: Discussioni generali sul linguaggio Python Oggetto: Re: [Python] La matrice immortale. From: "Alberto de prezzo" <justor...@linuxmail.org> Parti da un concetto: il filename di un modulo è disponibile nella variabile global "__name__". Giusto per capirci, tale "name" è quello che usi per importare un modulo: >>>import mio_modulo >>>mio_modulo.__name__ 'mio_modulo' Nota che il modulo è eseguito nel *suo* namespace. Considera il namespace come semplicemente uno "spazio" in cui due moduli possono avere lo stesso metodo fai_qualcosa(), senza che ci sia confusione tra i due. Quando esegui invece il modulo da <STDIN>, prompt oppure come script, lo fai invece nello spazio di nomi "globale", cioè appunto nello spazio "main". All'atto pratico, la riga di codice in questione (if __name__ == '__main__') controlla proprio questo aspetto, cioè lo spazio in cui "vive" il codice, ed evita che sia eseguito nel caso in cui tale modulo è solamente importato. Spero di essere stato chiaro. GB: giorno. Sì, grazie mille. Gabriele. _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python