summaryrefslogtreecommitdiff
path: root/apps/plugins/sudoku/generator.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/sudoku/generator.c')
-rw-r--r--apps/plugins/sudoku/generator.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/apps/plugins/sudoku/generator.c b/apps/plugins/sudoku/generator.c
index 59bb9066cc..ba74fa5b08 100644
--- a/apps/plugins/sudoku/generator.c
+++ b/apps/plugins/sudoku/generator.c
@@ -1153,3 +1153,34 @@ bool sudoku_generate_board(struct sudoku_state_t* state, char** difficulty)
1153 *difficulty = classify( ); 1153 *difficulty = classify( );
1154 return true; 1154 return true;
1155} 1155}
1156
1157bool sudoku_solve_board(struct sudoku_state_t* state)
1158{
1159 bool ret;
1160 int r,c,i;
1161
1162 reset( );
1163 i=0;
1164 for (r=0;r<9;r++) {
1165 for (c=0;c<9;c++) {
1166 if( state->startboard[r][c]!='0' )
1167 {
1168 fill( i, state->startboard[r][c] - '0' );
1169 }
1170 i++;
1171 }
1172 }
1173
1174 ret = ( 0 == solve( ) && 81 == idx_history );
1175
1176 if (ret) {
1177 i=0;
1178 for (r=0;r<9;r++) {
1179 for (c=0;c<9;c++) {
1180 state->currentboard[r][c]='0'+GET_DIGIT( board[ i ] );
1181 i++;
1182 }
1183 }
1184 }
1185 return ret;
1186}