c++ - 如何在 ncurses 中填充数独(9x9)网格?
问题描述
我有一个使用 ncurses 的 (mvw)hline/vline 函数绘制的 9x9 数独网格,现在我正在尝试使用 9x9 数组中的数字填充它。我的问题是最有效/最有效的方法是什么?
如果有帮助,我正在使用 ncurses v6.1-r2 和 C++17(使用 g++ 编译)。我已经完成了遍历数组(将从中填充板),但在那之后我想不出一种方法来填充每个正方形。
这是我用来绘制网格的代码。
WINDOW *create_board(int x, int y, int width, int height) {
WINDOW *local_win;
local_win = newwin(height, width, y, x);
mvwaddch(local_win, 0, 0, '+');
mvwaddch(local_win, 0, width - 1, '+');
mvwaddch(local_win, height - 1, 0, '+');
mvwaddch(local_win, height - 1, width - 1, '+');
mvwhline(local_win, 0, 1, '-', width - 2);
mvwhline(local_win, height - 1, 1, '-', width - 2);
mvwvline(local_win, 1, 0, '|', height - 2);
mvwvline(local_win, 1, width - 1, '|', height - 2);
for (int i = 0; i < 9; i++) {
mvwvline(local_win, 1, (10 * i), '|', height - 2);
mvwhline(local_win, (4.2 * i), 1, '-', width - 2);
}
wrefresh(local_win);
return local_win;
}
如果措辞尴尬,我深表歉意,英语不是我的第一语言。
编辑:为清楚起见,我不想生成数独板,我只想用数组中的预定义数字填充现有网格。例如:
int board[9][9] =
{{0,0,0,7,0,0,0,0,0},
{1,0,0,0,0,0,0,0,0},
{0,0,0,4,3,0,2,0,0},
{0,0,0,0,0,0,0,6,0},
{0,0,5,0,9,0,0,0,0},
{0,0,0,0,0,4,1,8,0},
{0,0,0,8,1,0,0,0,0},
{0,2,0,0,0,0,5,0,0},
{4,0,0,0,0,3,0,0,0}};
解决方案
推荐阅读
- webapi - .Net 5 自定义响应缓存
- amazon-web-services - 如何连接到在 AWS 工作区上运行的 Web 应用程序?
- javascript - How to make clearInterval() work in JavaScript
- flutter - Flutter FutureBuilder 返回空错误
- android - 如何使用 Android 中的 Retrofit 在 json 对象中调用具有命名数组键的 API?
- localtime - 如何在 php/laravel/js 中获取计算机时间
- python - 在 geoTIFF 中获取所有唯一颜色时,如何知道 PIL 指的是什么颜色?
- function - 使用 FnMut 发送函数作为参数
- java - Java 执行 wscript - createobject(word.application 权限被拒绝
- dendrogram - 如何更改每个集群的树状图线的颜色?