À partir de la position de deux dames sur un échiquier, indique si elles sont placées de manière à pouvoir s'attaquer l'une l'autre.
Au jeu d'échecs, une dame peut attaquer les pièces qui se trouvent sur la même rangée, la même colonne ou la même diagonale.
On peut représenter un échiquier par un tableau de 8 par 8.
Ainsi, si on te dit que la dame blanche se trouve en c5 (colonne 2, rangée 3, en comptant à partir de zéro) et la dame noire en f2 (colonne 5, rangée 6, en comptant à partir de zéro), tu sais alors que la disposition est la suivante :
Tu peux aussi déterminer si les dames peuvent s'attaquer l'une l'autre. Dans ce cas, la réponse serait oui, elles le peuvent, car les deux pièces partagent une diagonale.
L'image de l'échiquier a été réalisée par habere-et-dispertire avec LaTeX et le paquet chessboard d'Ulrike Fischer.
Pour terminer cet exercice, tu dois implémenter les fonctions suivantes :
boardStringcanAttackTu trouveras les signatures de type déjà en place, mais c'est à toi de définir les fonctions.
Les positions sont indiquées sous forme de tuples de deux éléments :
Inscris-toi sur Exercism pour apprendre et maîtriser Haskell avec 107 exercices, et un vrai mentorat humain, le tout gratuitement.