# Sudoku **Repository Path**: final_java_2017/Sudoku ## Basic Information - **Project Name**: Sudoku - **Description**: 数独终盘生成问题 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-05-03 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数独终盘生成问题 ### 1、背景 > 数独是源自18世纪瑞士的一种数学游戏。是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复。 数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。 ——百度百科 [数独](http://baike.baidu.com/link?url=xXCvZbzh-HQzl_BFBLIrAgp0IbMXjHXpMzpoEDx9iR_IiseBNF3tm5_fxJeZmyVRefd9BVnVBNXpKHbayAmANDAZUb2kHowF_61YtqC25Wu) 我们这周课题的要研究的是,如何尽快的随机生成数独终盘。 ### 2、概念 #### 1)方格(Box) 水平方向有九横行,垂直方向有九纵列的矩形,画分八十一个小正方形,其中每一个小正方形称为方格,每一个方格中填一个小于10的正整数。方格所在的列编号记为X,行编号记为Y。 #### 2)行(Row) 水平方向有九横行,每一横行有九个方格,其中每一横行称为行。每行编号从上至下递增,从0至8。 #### 3)列(Column) 垂直方向有九纵列,每一纵列有九个方格,其中每一纵列称为列。每列编号从左至右递增,从0至8. #### 4)宫(Block) 每三行与三列相交之处有九方格,这九方格称为宫。每宫编号左上为0,右下为8。 #### 5)盘(Grid) 81个方格总体上称为盘。 #### 5)终盘(Final Grid) 81个方格全部填满,且均符合数独规则的盘称为终盘。 ### 3、任务 实现builder.SudokuBuilder接口。 实现entity.SudokuGrid接口(可选,使用DefaultSudokuGridImpl也可以,但是设计DefaultSudokuGridImpl时没有考虑效率问题) ### 4、评价标准 运行程序,耗时少者优。