je suggère une série de 64 articles tels que:
byte [64] Squares;
De cette façon, il vous suffit de représenter une position de l'échiquier par un seul octet, il est beaucoup plus rapide.
Lorsque vous traitez un seul index pour référencer les positions de l'échiquier, il y a certaines choses que vous devez savoir pour vous faciliter la vie. Par exemple, comment savez-vous que deux positions sont sur la même ligne ou la même colonne? Il y a un truc facile à comprendre.
Row
Pour déterminer le rang d'une position on divise par la position 8 et de prendre la partie entière du résultat. Par exemple, la position 63 divisée par 8 est 7.875 ce qui est égal à la ligne 7. La position 3 divisée par 8 est 0.375 donc 0.En C# par coulée à un nombre entier vous obtiendrez toujours juste la partie entière du nombre, d'où:
Row = (int)(position/8)
Colonne
Pour comprendre la colonne d'une position que vous utilisez l'opérateur de module en effectuant module de position 8. par exemple la position 24 module 8 est la colonne 0. Position 15 module 8 est 7, donc
Column = position % 8
armé de ces deux concepts que nous pouvons convertir une position sur notre plateau carré 64 à une colonne et la ligne .
Si vous souhaitez en savoir plus sur la création de votre propre moteur d'échecs ont un oeil à http://www.chessbin.com
dupe de http://stackoverflow.com/questions/39874/how-do-i-model-a-chessboard -when-programmation-a-computer-to-play-chess –
@neil, je viens de regarder ce n'est pas un dupe .. le mien est une question spécifique et cette question vous lié ne répond pas – Fredou