Existe-t-il une API de jeu d'échecs, purement écrite en JavaScript? Pas de flash! Quelqu'un connaît l'algorithme (en général) utilisé dans les parties d'échecs?
Réponses
Trop de publicités?Comment fonctionne un jeu d'échecs de l'algorithme de travail?:
Ce qu'est un ordinateur d'échecs essaie de faire est de générer le conseil d'administration de la position de l'arbre à cinq ou 10 ou 20 se déplace dans l'avenir. En supposant qu'il y a environ 20 déplacement possible pour tout poste au conseil d'administration cinq niveaux de l'arborescence de 3,200,000 postes au conseil d'administration. 10-niveau de l'arbre contient environ 10,000,000,000,000 (10 milliards de dollars) positions. La profondeur de la arbre qu'un ordinateur peut calculer est contrôlé par la vitesse de la ordinateur en jouant le jeu. La manière la plus rapide d'échecs des ordinateurs permettent de générer et de évaluer des millions de postes au conseil d'administration par seconde.
Une fois qu'il génère de l'arbre, puis le ordinateur a besoin "d'évaluer le conseil d'administration les positions." Qui est, l'ordinateur a à regarder les pièces sur le plateau et décider que la disposition de les morceaux de "bon" ou "mauvais". La façon dont il c'est à l'aide d'une évaluation fonction. La plus simple possible la fonction peut juste compter le nombre de pièces de chaque côté. Si l' l'ordinateur joue blanche et une certains poste au conseil d'administration a 11 blanc pièces et neuf pièces noires, l' la plus simple de la fonction d'évaluation peuvent être:
11 - 9 = 2
Évidemment, pour le jeu d'échecs qu'est la formule trop simple, parce que certains morceaux sont plus utiles que d'autres. De sorte que le la formule pourrait s'appliquer un poids à chaque type de pièce. En tant que programmeur pense à ce sujet, il ou elle fait le la fonction d'évaluation de plus en plus et compliqué en ajoutant des choses comme poste au conseil d'administration, le contrôle du centre, la vulnérabilité du roi de vérifier, la vulnérabilité de l'adversaire de la reine, et des tonnes d'autres paramètres. Pas de qu'en soit la complexité de la fonction obtient, cependant, il est condensée en bas à un numéro unique qui représente l' la "bonté" de la poste au conseil d'administration.
Pour la construction de votre propre javascript "moteur" qui est capable de jouer aux échecs à un niveau de base vérifier , étape par Étape, Javascript Échecs avec CPU oppo
Si vous faites défiler vers le bas il contient le code source de cette, dois dire très limité, moteur d'échecs purement basé sur javascript. Il dispose également d'une version de travail du jeu à essayer et toutes les ressources nécessaires pour la construction de votre propre.
Quelques ressources utiles:
- Première mise en œuvre d'un moteur d'échecs en Javascript
- L'Anatomie de Les Programmes d'échecs, par Tony Marsland, est une belle intro sur la façon dont les les échecs des programmes de travail.
- Les Échecs De L'Espace
- Paul Verhelst - questions et Réponses
- Bibliographie sur Minimax Algorithmes (nouvelle version).
- Crafty est un programme fort dont le code source est librement disponible et, pour un programme d'échecs, tout à fait lisibles.
- Beaucoup de Travail et de Défis pour les Programmeurs d'Échecs
- Est-il un parfait algorithme pour le jeu d'Échecs? Discussion ici sur donc
- Comment les Ordinateurs Jouent aux Échecs Le meilleur livre que j'ai trouvé décrivant la théorie derrière les échecs des algorithmes d'IA
Pour algorithmiques discussion, essayez de la Programmation du jeu d'Échecs Wiki.
Des Techniques adaptées à de graves échecs moteurs ne sont pas nécessairement basé sur le web jeux. Véritables moteurs d'échecs exécuter les ordres de grandeur plus rapide, en utilisant le multi-mégaoctet de l'ouverture des livres et des dépenses de minutes ou d'heures sur chaque tour. Un vrai jeu d'échecs, le moteur de recherche de plus de 12 plis, tandis que javascript n'ira pas bien loin des 6 derniers plis dans le raisonnable web temps. Donc quelque chose comme un morceau carré oracle, qui a diminuer et, éventuellement, des retours négatifs que la recherche s'approfondit et que, par conséquent, de la mode dans la programmation du jeu d'échecs cercles, est sans doute bien adapté à un moteur javascript. Si vous faites ce que les gens faisaient dans les années 80, vous allez vous retrouver avec un vif et maniable moteur qui va battre la plupart des visiteurs.
Et bien sûr, vous n'avez pas vraiment envie de regarder ce que les autres font. Assurez-vous d'avoir une certaine variation d'un alpha-bêta de recherche, puis d'ajuster votre fonction d'évaluation et tout ce que vous voyez l'ajustement.
En 2002 et en 2012 j'ai alors écrit réécrit p4wn, un petit domaine public du moteur javascript. Il utilise l'alpha-bêta et un morceau carré oracle. Il est probablement plus faible que Garbochess-JS, mais alors Garbochess a un livre d'ouverture qui est plus grand que l'ensemble de la p4wn moteur.
L' Ordinateur d'Échecs Blog de documents, la création en C# d'un moteur d'échecs. Ce n'est pas du JavaScript mais la syntaxe est assez similaire que vous pourriez avoir une bonne compréhension des différents échecs des composants du moteur.
Aussi, si vous voulez que votre moteur d'échecs pour être exploitable sur le web, vous pouvez envisager d'utiliser C# avec Silverlight GUI. Vous obtiendrez de meilleures performances à partir .NET que vous le feriez avec JavaScript. Comme vous l'apprendrez ceci se traduira par une plus forte (plus profond de la recherche) programme d'échecs. Un bon exemple de Silverlight Échecs peut être trouvé à GeeksWithChess.com