mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-12-24 07:27:49 +08:00
63 lines
2.7 KiB
C
63 lines
2.7 KiB
C
|
/*====================================================================*
|
||
|
- Copyright (C) 2001 Leptonica. All rights reserved.
|
||
|
- This software is distributed in the hope that it will be
|
||
|
- useful, but with NO WARRANTY OF ANY KIND.
|
||
|
- No author or distributor accepts responsibility to anyone for the
|
||
|
- consequences of using this software, or for whether it serves any
|
||
|
- particular purpose or works at all, unless he or she says so in
|
||
|
- writing. Everyone is granted permission to copy, modify and
|
||
|
- redistribute this source code, for commercial or non-commercial
|
||
|
- purposes, with the following restrictions: (1) the origin of this
|
||
|
- source code must not be misrepresented; (2) modified versions must
|
||
|
- be plainly marked as such; and (3) this notice may not be removed
|
||
|
- or altered from any source or modified source distribution.
|
||
|
*====================================================================*/
|
||
|
|
||
|
#ifndef SUDOKU_H_INCLUDED
|
||
|
#define SUDOKU_H_INCLUDED
|
||
|
|
||
|
/*
|
||
|
* sudoku.h
|
||
|
*
|
||
|
* The L_Sudoku holds all the information of the current state.
|
||
|
*
|
||
|
* The input to sudokuCreate() is a file with any number of lines
|
||
|
* starting with '#', followed by 9 lines consisting of 9 numbers
|
||
|
* in each line. These have the known values and use 0 for the unknowns.
|
||
|
* Blank lines are ignored.
|
||
|
*
|
||
|
* The @locs array holds the indices of the unknowns, numbered
|
||
|
* left-to-right and top-to-bottom from 0 to 80. The array size
|
||
|
* is initialized to @num. @current is the index into the @locs
|
||
|
* array of the current guess: locs[current].
|
||
|
*
|
||
|
* The @state array is used to determine the validity of each guess.
|
||
|
* It is of size 81, and is initialized by setting the unknowns to 0
|
||
|
* and the knowns to their input values.
|
||
|
*/
|
||
|
struct L_Sudoku
|
||
|
{
|
||
|
l_int32 num; /* number of unknowns */
|
||
|
l_int32 *locs; /* location of unknowns */
|
||
|
l_int32 current; /* index into @locs of current location */
|
||
|
l_int32 *init; /* initial state, with 0 representing */
|
||
|
/* the unknowns */
|
||
|
l_int32 *state; /* present state, including inits and */
|
||
|
/* guesses of unknowns up to @current */
|
||
|
l_int32 nguess; /* shows current number of guesses */
|
||
|
l_int32 finished; /* set to 1 when solved */
|
||
|
l_int32 failure; /* set to 1 if no solution is possible */
|
||
|
};
|
||
|
typedef struct L_Sudoku L_SUDOKU;
|
||
|
|
||
|
|
||
|
/* For printing out array data */
|
||
|
enum {
|
||
|
L_SUDOKU_INIT = 0,
|
||
|
L_SUDOKU_STATE = 1
|
||
|
};
|
||
|
|
||
|
#endif /* SUDOKU_H_INCLUDED */
|
||
|
|
||
|
|