コード例 #1
0
ファイル: sudoku.c プロジェクト: schiermike/algo_puzzles
boolean simplify(unsigned short* sudoku, int recursionLevel)
{
	boolean success = false;
	boolean roundSuccess = true;
	while(roundSuccess && !guessConflict[recursionLevel])
	{
		roundSuccess = false;
		roundSuccess |= solvedCellSimplifiesUnit(sudoku, recursionLevel);
		roundSuccess |= findSingles(sudoku, recursionLevel);
		

		success |= roundSuccess;
	}
	return success;
}
コード例 #2
0
ファイル: sudoku.c プロジェクト: michaelromero/c
void main(){
    int i;
    struct sudokuboard board;
    struct sudokuboard* pBoard;
    pBoard = &board;
    //struct sudokuboard test1;
    //struct sudokuboard test2;

    //board = &test1;
    //loadValues(board);
    //print(board);
    //printf("\n");
    STACK *init = new_stack();
    STACK **stack = &init;

    //push(stack, board);

    //board = &test2;
    //loadValues(board);
    //board->cell[0][0].value = 1;
    //print(board);
    //push(stack, board);

    //print(pop(stack));
    //printf("\n");
    //print(pop(stack));
        
    //free(init);
    loadValues(pBoard);
    push(stack, pBoard);
    while(!is_empty(stack)){ 
        do{
            pBoard = pop(stack);
            flagColumns(pBoard);
            flagRows(pBoard);
            flagSquares(pBoard);
        } while(findSingles(pBoard));
    }
    print(pBoard);
    
}