Newsgroup: it.hobby.scacchi
Titolo: Sorgente C/C++ per gioco scacchi

Ciao a tutti,
	ero indeciso se postare qui o in un NG di programmazione. Eventualmente 
mi sposterò se risultassi OT.
	Sto cercando un semplice sorgente C/C++ (di pubblico dominio) che 
accetti in ingresso:
+ posizione dei pezzi sulla scacchiera
+ alcuni flag per indicare:
	+ chi ha il tratto
	+ per ognuno dei due giocatori se è già stato mosso il Re
	+ numero di mosse trascorse senza che si sia verificato uno scacco o 
una presa
e vorrei che mi restituisse, sotto forma di array per esempio, tutte le 
possibile mosse *formalmente* valide. Non mi interessa assolutamente che 
scelga la migliore, vorrei proprio avere tutte le mosse possibili (per 
questo è necessario sapere se il Re è già stato mosso).
Altre caratteristiche:
+ in caso di promozione dovrebbe restituirmi una possibile "mossa" (la 
promozione in effetti) per ogni pezzo, ovviamente tranne Re e pedone.
+ deve segnalare il caso in cui la mossa porta in condizione di scacco 
matto.
+ deve anche segnalare le condizioni di patta (il flag del numero di 
mosse è proprio per la patta da 50 mosse)
Potrei scrivermi io il codice ma non ho abbastanza tempo per mettermi 
dietro. Immagino si trovino sorgenti, visto che non è certo un segreto 
come si muovono i pezzi :)
Ciao e grazie!
Marco / iw2nzm

 presa
http://e4e6.com/g6/
frengo 

 
http://e4e6.com/g6/
Ciao, grazie della risposta.
A quale software ti riferisci in particolare?
C'è una raccolta sterminata di link su quel sito :)
Marco / iw2nzm

Ho controllato velocemente la documentazione di Crafty e con mia sorpresa
non ho trovato un comando per mostrare le mosse disponibili in una
posizione. Ho provato qualche altro programma open source e ho visto che
Scorpio, tramite il comando "moves", lo fa. Lo puoi trovare qui:
http://wbec-ridderkerk.nl/html/details/Scorpio.html
Le posizioni si settano, in quasi tutti i programmi, tramite la notazione
FEN.
---
UAF
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 C'è una raccolta sterminata di link su quel sito :)
Puoi visitare i siti dei motori italiani linkati sulla parte medio-bassa a 
destra. Diversi sono scritti in C e hanno il sorgente pubblico. Dal sorgente 
estrai il generatore di mosse legali e hai risolto il tuo problema. Se vuoi 
vedere i sorgenti anche dei motori di gioco stranieri, il sito di 
riferimento per tutti è 
http://wbec-ridderkerk.nl
.
Alex

Alex Brunetti wrote:

Ciao Alex,
grazie per le indicazioni. Vado a spulciare i sorgenti :)
Marco / iw2nzm

 FEN.
Perfetto, grazie mille del suggerimento.
Ciao!
Marco / iw2nzm

 mi sposterò se risultassi OT.
Visto le tante risposte che hai racimolato ... il minimo è metterci al
corrente sul software che vorresti realizzare.
Magari qualcuno è disponibile a darti delle idee.
Ciao

 Ciao
D'accordo, nessun problema. Lo avrei fatto una volta individuato il 
sorgente più adatto.
In realtà è niente di più che un semplicissimo programmino didattico per 
"bimbi" o comunque principianti. Partendo da una posizione qualsiasi 
sulla scacchiera visualizzare con i famosi (almeno per me!) bollini blu 
tutte le mosse valide. Questo per abituarsi a vedere tutte le 
possibilità prima di passare a selezionare la mossa corretta. Vedo 
infatti nei principianti la tendenza a considerare solo le prime 3-4 
mosse più immediate, senza sondare tutte quelle legali.
In pratica, data una posizione l'utente deve per ogni pezzo cliccare su 
tutte le caselle in cui può muoversi.
Ovviamente ha poco senso nelle primissime fasi della partita, mentre - a 
mio avviso - può essere interessante durante la fase centrale, più 
intricata.
Ciao!
Marco / iw2nzm

 mosse è proprio per la patta da 50 mosse)
Solo un'osservazione: la patta dopo 50 mosse si può chiedere se non si
sono verificate prese o SPINTE DI PEDONE, non prese e scacchi.
Sono sicuro si sia trattato di un lapsus manus e comunque leggendo la
documentazione della notazione FEN te ne saresti accorto in ogni caso da
solo (spero).
Ciao,
Paolo


 mosse è proprio per la patta da 50 mosse)
Occhio che segnalare questa condizione di patta non significa imporre la
patta.
A parte lo stallo, la patta e' sempre su richiesta di uno dei due
giocatori.
 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 solo (spero).
La stavo leggendo in questo momento:
http://en.wikipedia.org/wiki/Forsyth-Edwards_Notation
5. Halfmove clock: This is the number of halfmoves since the last pawn 
advance or capture. This is used to determine if a draw can be claimed 
under the fifty move rule.
Ho confuso lo scacco con la spinta, mea culpa.
Una curiosità: dal momento che la patta viene sempre richiesta (a meno 
che non sia più possibile condurre in scacco matto) da un punto 
puramente speculativo una partita potrebbe non avere termine?
Ciao!
Marco / iw2nzm

 giocatori.
Certo, mi sono espresso male (sarà la febbre a 38 che mi rende piuttosto 
idiota oggi :) ) intendevo dire segnalare una possibile condizione di patta.
Pare che skorpio faccia al caso mio. Ora sto guardando i sorgenti per 
capire cosa significano i campi del comando moves: non mi sembra ci sia 
della documentazione (per lo meno non sul suo sito).
Ciao e grazie
Marco / iw2nzm

 speculativo una partita potrebbe non avere termine?
Sė.
Alex

 puramente speculativo una partita potrebbe non avere termine?
No, ovviamente.