改变WinGHCi中特定字符的输出颜色

时间:2017-07-09 20:13:09

标签: haskell colors winghci

所以我正在尝试为Haskell制作一个ASCII国际象棋游戏。在考虑如何代表国际象棋时,我认为给不同颜色的字母是一种很好的方式。

因此,我需要在haskell代码中指定某个输出字符应该是哪种颜色。我有没有找到这样的包裹,我还没找到?或者有一些非常简单的方法吗?

或者是否有关于如何进行chesspiececolor表示的其他建议?我第一次想到一个解决方法是为白色的peon,白色的主教和黑色的国王做wP,wB,bK,但我觉得它看起来很杂乱。

感谢。

1 个答案:

答案 0 :(得分:2)

您可能会发现ansi-terminal包有趣。它可以让您轻松更改前景色,背景色,样式等。例如,这里有一个函数,它将以粗体红色打印出的字符串,背景为绿色。

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 ]