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

Changing output colours of specific chars in WinGHCi

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

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

或者对于如何表示棋子颜色还有其他建议吗?我首先想到的解决方法是为白人、白主教和黑国王做 wP、wB、bK,但我认为它看起来很混乱。

谢谢。

您可能会发现 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 ]