PicChess (6 / 8 étapes)

Étape 6: Chess

Ici, c’est le cœur de ce projet, le jeu d’échecs. Il est divisé en deux parties, les routines de l’interface et le moteur d’échecs.

Moteur d’échecs
Je pourrais comprendre beaucoup de choses ici, mais c’est mieux expliqué dans des sites comme chessprogramming.wikispaces.com. Je vais juste aborder les bases.
Décrivant un programme simple comme celui-ci tant qu’il n’est pas juste car tout ce qu’il faire l’Intelligence artificielle est la recherche par force brute.

Un programme d’échecs est constitué des éléments suivants :

  • Générateur de mouvement : Étant donné un état initial de l’échiquier, il produit valides toutes les positions par les règles.
  • Évaluation : Retourne un Score d’un état de Conseil, peut être aussi simple que de compter le nombre de pièces avec des poids (un pion pèse 1 une reine 9). Plus le score le mieux cet État Conseil est pour le joueur qui a la main.
  • Marque/Unmake : Un moyen d’aplay un mouvement vers la variable de Conseil et tu l’annuler plus tard
  • Recherche : Un algorthm a sesch de tableaux de tous les mouvements génèrent par le générateur de mouvement, c’est la fonction de recherche. Un du type plus simple est le seach MinMax . J’ai utilisé un peu de recherche mieux l' élagage Alpha-beta, qui évitent la recherche inutiles branches de l’arbre de recherche.

La recherche fonctionne de cette façon : génère tous les coups vers le haut à une recherche profonde (un certain nombre de tours à regarder vers l’avant), donne un score pour chacun des mouvements à l’extrémité de l’arbre et ensuite retourner la branche qui garantit le meilleur résultat.

Il pourrait être amélioré beaucoup en y ajoutant une recherche quiesent , cette fonction serait serch quelques mouvements plus lorsqu’il y a une capture pour éviter evaluatin par erreur un de ces postes où un déchaînement de violence qui se passe.

Interface de jeu d’échecs
Toute l’interface utilisateur est géré par cette routine. Chose comme comment sélectionner un morceau et faire un geste... Il suffit de regarder le code si vous avez l’intérêt, il a tous basés dans une machine d’État afin que le code soit non bloquante.

Une belle chose à noter est que, pour vérifier si un geste que le joueur essaie de faire est valide, que j’ai utilisé le générateur de mouvement pour obtenir tous les valides se déplace, et ensuite vérifier si le joueur se déplacer est l’un d’eux.

Articles Liés