2017-07-09 4 views
0

J'essaie donc de créer un jeu d'échecs ASCII pour Haskell. Quand je pense à la façon de représenter les pièces d'échecs, je pense que donner des lettres de différentes couleurs serait une bonne façon de faire.Modification des couleurs de sortie de caractères spécifiques dans WinGHCi

Ainsi j'ai besoin d'une certaine manière, dans le code de haskell, pour spécifier quelle couleur un certain caractère de sortie devrait être. Y at-il un tel paquet prêt pour moi que je n'ai pas trouvé? Ou y a-t-il un moyen assez facile de le faire?

Ou y at-il d'autres suggestions sur la façon de faire cette représentation de chesspiececolor? Ma première idée d'une solution de contournement a été de faire wP, wB, bK pour le peon blanc, l'évêque blanc et le roi noir mais je pense que ça a l'air assez encombrant.

Merci.

Répondre

2

Vous pouvez trouver le package ansi-terminal intéressant. Il vous permet de changer facilement la couleur de premier plan, la couleur de fond, le style, etc. Par exemple, voici une fonction qui imprimera la chaîne que vous lui donnez en rouge vif, avec un fond vert.

import System.Console.ANSI 

earlyChristmas :: String -> IO() 
earlyChristmas s = do 
    setSGR [ SetConsoleIntensity BoldIntensity 
     , SetColor Foreground Vivid Red 
     , SetColor Background Dull Green 
     ] 
    putStr s 
    setSGR [ Reset ] 
+1

J'aimerais que plus de gens connaissent 'ansi-terminal'. Contrairement à la sortie des échappements ANSI codés en dur, le paquet 'ansi-terminal' fonctionne sous Windows et Linux de manière transparente. (Avec quelques mises en garde ...) – MathematicalOrchid

+0

Oui, cela semble quelque chose que je peux utiliser ... J'ai pris le temps de comprendre exactement comment faire tout cela installé ... Merci. –