Я работаю над своим третьим проектом Haskell для своего класса в этом семестре, и мы перешли от мира привет, к простой математике, к анимации символов ASCII с использованием Haskell, и я полностью ошеломлен для этого проекта. Мой профессор ничего не знает на своем веб-сайте об этом, и документация для System.Console.ANSI не очень полезна. Я не могу найти никаких примеров об этом в Интернете после обширного поиска.ASCII Animation Использование System.Console.ANSI
Кто-нибудь сделал это или, по крайней мере, сказал мне, если я пойду в правильном направлении?
Первый вопрос этот
[16] Используйте библиотеку System.Console.ANSI нарисовать цвет рамки на основе чертежа [4]. Это должно быть не менее 8 строк на 16 столбцов [4] и иметь как минимум 2 кадра [8], которые должны чередоваться бесконечно. Назовите этот цвет-comic.hs.
мой цвет-comic.hs выглядит следующим образом
module Main (
main
) where
import System.Console.ANSI
import System.IO
import Control.Concurrent
colorComic :: [IO()]
colorComic = [printBlock, flashBlue, flashRed]
main :: IO()
main = do
colorComic
pause :: IO()
pause = do
hFlush stdout
-- 1 second pause
threadDelay 1000000
flashRed :: IO()//change text color to red
flashRed = do
setSGR [SetColor Foreground Vivid Red]
pause
flashBlue :: IO()//change text color to blue
flashBlue = do
setSGR [SetColor Foreground Vivid Blue]
pause
printBlock :: IO()// print 8x16 block
printBlock = do
putStrLn "################"
putStrLn "################"
putStrLn "################"
putStrLn "################"
putStrLn "################"
putStrLn "################"
putStrLn "################"
putStrLn "################"
Я не понимаю, как позволить этому бежать бесконечно, и я получаю эту ошибку, и я не знаю, почему, putStrLn
всегда работал для меня. Правильно ли я это делаю?
цвет-comic.hs: 39: 5: Ошибка синтаксического анализа на входе
Второй вопрос «» putStrLn намного сложнее, но я думаю, что у меня есть идея, как сделать это
[32] Используйте библиотеку System.Console.ANSI для рисования цветной анимации в ASCII. Анимация должна составлять 25 строк x 60 столбцов [8], частота кадров 30 Гц [4], длятся не более 10 секунд [4], используйте по крайней мере три цвета [8], чтобы не было двух последовательных кадров в анимации одинаковы [8] и являются уникальными [-32].
Для приведенного выше вопроса, который я мог бы просто сделать блок # в правильных размерах, а затем изменить цвет каждой строки в последовательности, а затем перерисовывать весь блок с цветом толкнул вниз один и новый цвет добавлено и так далее. Я не уверен, как это сделать.
Любая помощь глубоко оценена, я просто пытаюсь учиться.
Если вы на самом деле компиляции строки 'printBlock :: IO() // печать 8х16 block' (и иже с ним), то, конечно, ваш код не может разобрать -' '// не Haskell синтаксис комментариев. [Здесь] (https://www.haskell.org/onlinereport/haskell2010/haskellch10.html) является ссылкой на синтаксис Haskell. – user2407038