Newsgroup: it.hobby.scacchi
Titolo: regole abbinamento...

Dunque... 
<premessa>
visto che 
1) recentemente sono staro a Firenze alla conferenza sul linguaggio
di programmazione Python (no, il messaggio non e' OT, almeno non
del tutto... un attimo di pazienza) 
2) quanto al punto 1) mi ha un po' fatto tornare la voglia di mettermi
a imparare qualcosa a livello informatico (garantisco che non e' OT)
quale migliore occasione per imparare il Python (che per la verita' avevo
anche usato in modo professionale nel 1999-2000, anche se in modo
iperlimitatissimo) se non quella di provare a scrivere un programma di
abbinamento per tornei di scacchi :-), anche se mi serviranno mille 
miliardi di anni per ottenere qualcosa di forse minimamente funzionante...
</premessa>
in ogni caso... la domanda e' la seguente: avevo provato a iniziare
a scrivere il suddetto programma (per ora e' in grado di scrivere il
primo turno. Anzi, io pensavo che lo fosse ma...) e, 
come esempio per fare dei primi test, avevo considerato il torneo
bratto 2006. Il problema e' che, se ho capito bene quanto pubblicato
sul sito del torneo, c'e' stato un giocatore che al primo turno ha dato
forfait. Avevo scaricato tempo fa un documento che descriveva l'algoritmo
per il sistema svizzero (credo che quello che ho io sia lo svizzero
"olandese") pero' non riesco a capire se ci sono delle regole per gestire
i forfait (a questo punto direi sia quelli al primo turno che a quelli
successivi). L'unica cosa che ho trovato e' del tipo: se un giocatore
da' forfait senza avvertire l'arbitro, allora viene squalificato. O cose
simili 
Ciao,
Marco
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

simili 
Cerca la parola "bye" sul documento dell'olandese, e dovresti trovare
tutte le norme per gestire il forfeit.
Ciao!
Maurizio Mascheroni
P.S. auguri! ti stai buttando in una impresa ciclopica :-)

 miliardi di anni per ottenere qualcosa di forse minimamente funzionante...
Concordo con Maurizio, ti stai mettendo in un'impresa ciclopica. Ma queste
sono quelle piu' esaltanti, no?! :) Anni fa Roberto Montaruli aveva
pensato di implementare qualcosa usando il Perl. Troverai qualche
discussione cercando su Google-gruppi.
Prima di passare all'informatica dovresti pero' leggerti qualcosa sugli
algoritmi di accoppiamento. La pagina di Luigi Forlano potrebbe essere un
buon punto di partenza (non per niente, Luigi di programmi di abbinamento
ne sa qualcosa...).
Ciao, Bruno.


Caro Marco,
non solo l'impresa è ciclopica, come dice Maurizio, ma l'hai anche
affrontata male.
<suggerimento>
inizia a pensare al cuore del programma. Cioè scrivi la procedura che a
partire da un gruppo di n giocatori aventi gli stessi punti, con n pari,
elenca tutti gli abbinamenti possibili
</suggerimento>
Se hai questa procedura hai il 70% del programma. Poi passi al caso con n
dispari. Quindi all'interazione tra gruppi di giocatori aventi punti
diversi. Alla fine vorrai avere una interfaccia grafica e ti accorgerai che
forse il python non è stata una scelta molto felice e devi ricorrere a
qualche altro linguaggio (C++?) nel quale il tuo codice Python viene
inglobato in qualche modo come modulo.
In questo newsgroup ho visto partire altri che si sono fermati subito perché
avevano impostato male il problema. Per l'interfaccia non ci pensare al
momento. Ti presterò quella di Vega se non è un progetto commerciale.
Buona fortuna.
Luigi

--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 discussione cercando su Google-gruppi.
Vergognosamente naufragata.
Dopo un mesetto circa impiegato a raccogliere specifiche e ad aver messo 
a punto una struttura dati XML per accogliere giocatori, punteggio, 
avversari incontrati, colore, colore consecutivo, flottante, forfait 
incontrati, e un paio di migliaia di altri parametri, mi sono perso.
:-(
Dovendo scegliere se limitarmi a scrivere una procedura incompleta o 
abbandonare ho scelto la seconda ipotesi.
Resto comunque a disposizione se qualcuno arriva con nuovi stimoli e 
qualche idea.


Sperando di non dare il via all'usuale flame informatico/religioso sui
linguaggi di programmazione, ti chiederei qualche dettaglio in piu` su
questo punto.
Premesso che in python ho scritto alcune robette di piccolo cabotaggio per
le quali mi sono fatto bastare tkinter (che effettivamente forse e` un po' 
limitata come libreria grafica) in quali problemi potrei incorrere se
in futuro mi affidassi a una libreria per esempio come PyQt, il cui 
corrispettivo in C++ ho visto che e` stato scelto per esempio dagli
sviluppatori di chessx?
Al momento e` una domanda solo teorica ma in futuro, si sa mai (non per
fare un programma di abbinamenti di sicuro, comuque ;-)
Grazie
Andrea
-- 
Andrea Vinzoni 
andrea.vi...@fastwebnet.it
se vuoi scrivermi leva la menzogna dall'indirizzo

 sviluppatori di chessx?
Ciao Andrea,
occorre considerare molte cose, soprattutto quelle client side. Tra queste:
Il programma è open source? se no allora occorre pensare ad una libreria che
non sia GNU ed essere pronti ad un investimento (la Qt è ottima ma costosa e
non te la ripagherai mai con un programma di abbinamento scacchisico). Se sì
allora bisogna considerare che è rivolto ad un pubblico (penso agli arbitri)
che di professione non fanno gli informatici e potrebbero avere problemi a
scaricare ed installare interpreti python o simili. Per questo io evitai
Python, Java e simili. Basta che qualcuno fallisca l'installazione ed in men
che non si dica nell'ultimo igloo della lapponia si saprà che il programma è
di difficile installazione e nessuno lo vorrà provare.
Non solo, pensa a questa situazione: torneo in cui si rompe il computer, te
ne prestano un altro su cui non è installato l'interprete python (ed è la
regola) e non c'è una connessione internet ad alta velocità. Si rischia di
essere linciati da orde di scacchisti inferociti. Solo un arbitro
incosciente può affidarsi ad una soluzione così rischiosa.
Le esigenze di un programma di abbinamento sono diverse da quelle di un
database. Se il programma lo fai solo per te qualsiasi linguaggio e GUI
andrà bene. Ma non si può sperare di diffonderlo.
Io non partirei proprio da Python. Nel caso di Marco, però, pare che lo
stimolo principale è proprio usare python.
Alla fine scelsi un unico linguaggio che mi dava potenza, facilità di
scrivere una GUI accattivante e che fosse multipiattoforma: C++. Quando ho
dovuto riscrivere il tutto per non rischiare di far invecchiarre il
programma dopo 3 anni di vita, ho scelto quella che considero la migliore
soluzione disponibile al momento 
www.ultimatepp.org
. Se l'avessi conosciuta
in passato avrei risparmiato tanto tempo, non solo per le potenzialità della
GUI ma anche per le potenti librerie che si ritrova che migliorano le STL.
 
Luigi


 Luigi
Grazie dei consigli.


 GUI ma anche per le potenti librerie che si ritrova che migliorano le STL.
Vedro' di dare un'occhiata se avro' tempo.
Ciao,
Marco.


 ne sa qualcosa...).
Si mi ha gia' risposto qui. Probabilmente appena ho tempo cerchero' di
mettere in pratica il suo consiglio.
Ciao,
Marco.


 Il programma è open source? 
Dimenticavo.
A me la voglia di rimettermi a guardare qualcosa di informatica e'
tornata dopo aver partecipato ad una conference il cui primo giorno
si chiudeva con il keynote "il management tecnico dello sviluppo software e
la lezione dell'open source"
Ciao,
Marco.
[SNIP]


 
Adesso mi hai messo una pulce nell'orecchio, ci daro` un'occhiata, grazie
della chiacchierata.
Andrea
 

 tutte le norme per gestire il forfeit.
Ho guardato, pero' mi pare (almeno a occhio e croce) 
che ci siano dei casi che non so come gestire: ad esempio se un giocatore X
fosse impossibilitato a partecipare, diciamo al terzo turno, e avverte
l'arbitro prima del secondo turno => sembrerebbe che gli si possa assegnare
un bye a qeul giocatore per il terzo turno. Pero' se poi accade che
l'avversario di X non si presenta al secondo turno => X prende un bye al
secondo turno e per il punto B1.b (criterio di abbinamento assoluto) sembra
che poi X non possa ricevere un bye anche al terzo turno. E in quel caso
che si deve fare ?


 che ci siano dei casi che non so come gestire: ad esempio se un giocatore X
No, ho scritto una boiata, scusa.
Ciao,
Marco.
