[Python] R: La matrice immortale.
Germano Carella
germano.carella a gmail.com
Mar 8 Lug 2014 22:49:18 CEST
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-bounces a lists.python.it [mailto:python-bounces a 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" <justorius a 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 a lists.python.it
http://lists.python.it/mailman/listinfo/python
Maggiori informazioni sulla lista
Python