> secondo voi è fattibile scrivere un "chess engine" in python. > > per quanto riguarda le prestazioni otterrei una riduzione notevole > rispetto ad un equivalente in c o c++?
esistono programmi e librerie per gli scacchi in python, e spesso riportano commenti per te poco incoraggianti tipo "scritta in python perché non mi interessava tanto l'efficienza..." Ciononostante: 1) se hai già in testa tutto il programma e devi solo tradurlo in codice sorgente in un qualche linguaggio, ti può convenire scriverlo, ad esempio, in C/C++. Se però vuoi prima di tutto provare, fare un po' di esperimenti, vedere che effetto hanno scelte diverse nell'engine, il solo fatto di avere codice più leggibile e facilmente modificabile ti può aiutare a fare un programma che funzioni sensibilmente meglio. La mia idea è che l'overhead del linguaggio di programmazione interpretato sia un fattore decisamente poco importante rispetto all'intelligenza degli algoritmi del confronto delle possibili mosse e della loro integrazione con tattiche ed eventualmente librerie di mosse. Insomma, programmi di scacchi che stracciano lo scacchista medio ci sono anche sui cellulari! 2) per quel poco che so di scacchi, la parte costosa di un programma è proprio la generazione delle possibili mosse, non tanto le considerazioni tattiche (a meno di non fare un engine che si basi massicciamente su librerie di partite e/o che impari a giocare "dinamicamente", cose comunque piuttosto avanzate), che si affronta tipicamente in modo ricorsivo (è vero che si può anche utilizzare anche solo l'iterazione, ma... insomma, se si usa il python è per avere codice leggibile!). Quindi forse dovresti informarti più specificamente sull'overhead che la generica chiamata a funzione ha nel python rispetto al C 3) siccome tutte queste cose te le dice uno che non è esperto né come scacchista né come pythonista, forse la cosa veramente interessante può essere per te questa: http://www.linuxlinks.com/Software/Games/Board/Chess/Engines/index.shtml - una lista di programmi di cui due sono scritti in Python: PyChess (proprio un chess engine) e Shatranj (che sembra più che altro un ambiente di sviluppo, per quel pochissimo che ne ho letto) ciao Pietro _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python