Newsgroup: it.comp.programmare
Titolo: aiuto per scacchi

Scusate sto facendo un programma per giocare a scacchi in delphi e ho
già in mente come realizzare la grafica e le mosse ma non so far fare
al computer le mosse, cioè non so imparargli a giocare. Qualcuno mi
può aiutare?
Jacopo Sabbatini
sab...@libero.it

 al computer le mosse, cioè non so imparargli a giocare.
Questa è la parte FONDAMENTALE!!!
Devi costruirti l'albero del gioco con una tecnica DFS (Deep First Search),
costruirti una funzione di valutazione euristica per assegnare un valore ai
nodi, decidere se vuoi utilizzare una tecnica "lenta-giusto-per-capire",
come min-max (C. Shannon), o passare ad una tecnica di sfoltimento come l'
Alpha-Beta pruning, l' A-star ecc...
Se poi vuoi fargli fare dell'auto-apprendimento, dovresti utilizzare reti
neurali o altre tecniche.
Tutto questo non si può certo spiegare in un paio di messaggi sul NG. E'
come se dicessi: "ho costruito una macchina, manca solo il motore, che
cos'è?"...
Qualche punto di partenza:
http://games.eden.it/
poi leggi, se vuoi, un mio articolo:
Computer Programming, "Tecniche di intelligenza artificiale: tris, dama e
scacchi", Dicembre 97 (N° 64). Gli arretrati li puoi richiedere a
www.infomedia.it
Sul sito dell'Università di Catania mi sembra di aver visto una tesi sulle
tecniche utilizzate per il gioco degli scacchi, prova a postare su
it.hobby.scacchi e chiedere qualche link.
Fai una ricerca con "chess" AND "Alpha Beta Pruning" e troverai materiale
interessante (al 99% in inglese, ovviamente).
Tieni presente che, se non sai neanche da dove cominciare, dovrai dedicarci
diversi mesi, non sono algoritmi che puoi riutilizzare con un copia e
incolla.
Buon lavoro!
P.S. non rispondere in e-mail, non ho neanche il tempo di leggerle, grazie
:-)
--
Ciao, AntoGal
*************************************************
Gestione punti vendita (casse e pos NCR)
 
www.powerretail.it
-------------------------------------------------------------
per scaricare un gioco di DAMA ITALIANA
http://volftp.mondadori.com/italiani/galletta/
*************************************************

 
sab...@libero.it
Ti premetto che la prassi per fare le cose ben fatte e' quella che
descrive Antogal. Effettivamente il materiale in giro e' enorme e
richiederebbe nozioni quali Intelligenza Artificiale Ricerca veloce
negli alberi binari Euristiche per le scelte delle mosse ecc ecc.
A suo tempo anch'io ho affrontato un problema simile e l'algoritmo
semplice che ho utilzzato e' stato quello di min max.
Io comunque ho affrontato il problema nel 1990 ancora non era diffusa
internet e il linguaggio usato era pascal 5.0. Ora per te le cose
potrebbero andare meglio.
Ti spiego brevemente cio' che ho fatto e se hai qualche problema
contattami anche via mail.
Immaginiamo di avere una scacchiera e di poter creare una lista di
scacchiere.(In realta' viene creato un albero). Immaginiamo inoltre di
poter assegnare un valore ad ogni scacchiera: dipendera' ovviamente dal
numero di pezzi presenti sulla scacchiera , dal tipo
di pezzo sulla scacchiera ecc...
L'idea di base e' semplice : quando tocchera' al pc esso avra' a
disposizione un numero limitato di mosse (comunque molto grande visto la
mobilita' di ogni pezzo). Le eseguira' tutte calcolando ogni volta il
valore della scacchiera' cosi' generata. Alla fine dell'esecuzione di
tutte le mosse possibili scegliera' quella piu' conveniente da un punto
di vista di costo associato a una scacchiera. Questo e' ovviamente
l'algoritmo piu' stupido, per crearne di piu' furbi a questo punto il
computer dovrebbe simulare un mossa del giocatore e ricalcolare il costo
delle scacchiere cosi' trovate e cosi' via. 
Comunque per poter creare un algoritmo del genere bisogna avere delle
conoscenze della programmazione molto solide quali alberi come occupare
meno memoria, ottimizzazione di codice...
Spero di esserti stato di aiuto e se hai bisogno non esitare....
massi 
-- 
 Massimo Narizzano          laureando in Ingegneria Informatica         
===============================================================                
(DIST)- University of Genova       phone: +39.(0)10.353-2811
 Viale Causa 13,                   E-mail: 
m...@mrg.dist.unige.it
 
 16145 Genova, ITALY
=================================================================
                     Non credete nei miracoli.....
                       contateci ciecamente.