gpt4 book ai didi

haskell - NCurses 不断更新 moveCursor 中的 x 和 y 坐标

转载 作者:行者123 更新时间:2023-12-02 10:50:01 25 4
gpt4 key购买 nike

我想制作某种带有类似蛇的机制的游戏,你可以使用箭头键来改变蛇的坐标。但由于变量的重新分配不是 haskell 中的事情,我不确定如何做到这一点。这是我的代码:

import Control.Monad
import UI.NCurses

main :: IO ()
main = runCurses $ do
w <- defaultWindow
forever $ do
e <- getEvent w Nothing
updateWindow w $ do
moveCursor 0 0
drawString (show e)
render

我希望它打印按下的键 (drawString (show e)),然后将光标更改为上一个 x+1、上一个 y+1,然后绘制下一个按下的键,然后更改光标等。

如何在 NCurses 中执行此操作?如果可以重新分配,那就很简单了,就像

loop forever:
moveCursor x y
print
x = x+1
y = y+1

但是重新分配不起作用,那么我该怎么办?

最佳答案

Curse、ncurse 和递归:

loop w x y = do
e <- getEvent w Nothing
updateWindow w $ do
moveCursor x y
drawString (show e)
render
loop w (x+1) (y+1)

main = runCurses $ do
w <- defaultWindow
loop w 0 0

关于haskell - NCurses 不断更新 moveCursor 中的 x 和 y 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55550659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com