寒假回国后用着一台小破笔记本电脑(X250),只能连回宿舍的台式机玩耍一把。
Linux下有个程序叫做QQWing,可以用于生成不同难度的数独并且解开他们。
配合Vim用于解数独,diff用来判断数独结果,简直是天作之合。
基本流程
- 用QQWing来生成一个数独,放进文本文件,完成生成步骤。
- 然后用Vim、NeoVim打开文件并且人工解完数独,
- 最后调用diff来判断前11行结果是否一致(12行之后的空间可用作草稿)。
效果如图:
- 运行./sudoku.sh
- 把它
想办法解完 - 退出Vim (
:wq
) 后自动调用diff比对结果
是不是想想都有点偷税:)
代码如下,10行Bash
#!/usr/bin/env bash
qqwing --generate $@ > original.sudoku
qqwing --solve < original.sudoku > solution.sudoku
cp original.sudoku staging.sudoku
echo "↓↓↓↓↓↓Draft Area↓↓↓↓↓↓" >> staging.sudoku
nvim staging.sudoku
diff -w -B -u12 <(head -n 11 staging.sudoku) <(head -n 11 solution.sudoku)
if (($? != 0)); then
echo "Your solution is different"
else
echo "Your solution is correct"
fi