c++ - Ncurses 和 C++ 屏幕保护程序

标签 c++ arrays ncurses

我正在尝试编写一个小程序来使用 ncurses 制作一种动画。我对这一切都很陌生,主要是 ncurses。

我想使用 bool 二维数组用具有特定前景色和背景色的 X 随机填充屏幕。 True(开放)表示 X 可以写入该位置。在 X 写入那里后,点值变为 False(闭合/填充)并继续寻找 True 点。在填满整个屏幕后,它将循环遍历 ncurses 中可用的所有颜色对,直到我按下 ctrl+c。我尝试了很多事情,但大多数都失败了,或者部分工作或编译了,什么也没做。我对这一切都很陌生,尤其是 ncurses。我遇到了一些我非常坚持的问题。 Google 提供了一些帮助,但我仍然卡住了。

如何使用 ncurses“getyx”命令并将这些坐标放入二维数组中以检查每个元素?或者我应该使用不同的方法来获取屏幕坐标并将它们放入我的二维数组中吗?

我想使用“int rand()”函数生成一个随机数/数组元素来检查和填充或不填充。我以为我只是将所有内容都加 1,所以它只检查所有内容。 10/1 = 10、3/1 = 3 等等……这行得通吗?

我试图让它在向屏幕写入彩色 X 之间“休眠”,但它在开始时暂停,然后只执行第一个颜色对。我不确定如何解决这个问题,也许有很多嵌套循环?

COLOR_PAIR(1);
attron(COLOR_PAIR(1));

move(10, 20);

addstr("Hello");

sleep(5);

COLOR_PAIR(2);

attron(COLOR_PAIR(2));

addstr("Hello");

refresh();

sleep(5);

endwin();

一般来说,我对 ncurses 和一些循环逻辑感到困惑。我问过经验丰富的程序员、开发人员、软件人员……大多数人甚至都没有听说过 ncurses 库。

对于这些类型的事情,是否有一些关于 ncurses 的好的教程?我应该查看类似程序的任何其他示例或资源吗?我以前玩过井字游戏,但这是整个屏幕,而不仅仅是一个由孤独的二维数组绘制的框。

如有任何帮助,我们将不胜感激!

最佳答案

您应该将游戏状态保存在内部结构中,而不是依赖终端屏幕并尝试将其读回以进入下一个状态。终端只是渲染工具,而不是状态本身。

关于c++ - Ncurses 和 C++ 屏幕保护程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33980579/

相关文章:

c++ - 如何制作 char 数组和 std::string "in a relationship"?

c++ - 带有 1 个参数的成员函数上的 std::for_each

c++ - 使用 avrdude 上传 Arduino hex 文件

arrays - 使用 React Native 将数组发送到服务器以获取一些数据

python - 如何从数据库列中的 python 数组中仅选择元素

c++ - 将流转换为函数参数以使用 Telnet 和 Ncurses

c++ - 为什么这会产生损坏的输出? (ncurses 菜单)

c - 多线程文本输出无不闪烁

C++ 入门 : Exercises involving Sales_item. h

c++ - 为什么编译结果是 "undefined reference to ' function'”?