在9×9格的大九宫格中有9个3×3格的小九宫格,并提供一定数量的数字。根据这些数字,利用逻辑和推理,在其它的空格上填入1到9的数字。每个数字在每个小九宫格内只能出现一次,每个数字在每行、每列也只能出现一次。 这种游戏只需要逻辑思维能力,与数字运算无关。虽然玩法简单,但数字排列方式却千变万化,所以不少教育者认为数独是锻炼脑
基本的想法
最初的时候,每个格都有选择所有数字的机会,当相同行或相同列或相同块的其他格选择了某数字是,这个数字就不能再选。
当一个格的可选数字之剩一个时,就作为答案使用,这是这个结果又会影响其他的同行,同列及同块的格。有点递归的感觉。
当一个格里的可选数字都没有了的时候,判定失败。
为了在选错的时候,有取消的机会,通过Command设计模式实现的动作的记录和恢复。这里麻烦一点的是在某一格的数组决定以后,会对其他各有影响,需要记录所有的变化。