From d0827310792d5b6abf887246bfdd9e27fef0793b Mon Sep 17 00:00:00 2001 From: SteJuventino95 Date: Mon, 19 Jan 2015 23:58:01 +0100 Subject: [PATCH] Soluzione simile a quella proposta in classe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prof, le posto una soluzione al Sudoku Solver che ha pubblicato lei. รจ simile, ma vi sono alcune differenze --- .../fondamenti/sudoku/sudoku_in_classe.c | 237 ++++++++++-------- 1 file changed, 131 insertions(+), 106 deletions(-) diff --git a/didattica/fondamenti/sudoku/sudoku_in_classe.c b/didattica/fondamenti/sudoku/sudoku_in_classe.c index 35017c4..729274e 100644 --- a/didattica/fondamenti/sudoku/sudoku_in_classe.c +++ b/didattica/fondamenti/sudoku/sudoku_in_classe.c @@ -1,134 +1,159 @@ -#include -#define ORDINE 2 -#define DIM (ORDINE*ORDINE) -int no_doppioni(int a[DIM]) +#include "stdafx.h" +#include "Math.h" + +#define dim 9 + +void stampa(int mat[dim][dim]) { - int trovato[DIM]; - int i; - for (i=0;i0 && j != i) + return 0; + } + } + return 1; } -int colonna_corretta(int s[DIM][DIM], int colonna) +int riga_corretta(int mat[dim][dim], int k) { - int a[DIM]; - int i; - for (i=0;i0 && j != i){ return 0; } + } + } + return 1; } -int riquadro_corretto(int s[DIM][DIM], int riquadro) +int individua_quadrotto(int x, int y) { - int x=(riquadro%ORDINE)*ORDINE; - int y=(riquadro/ORDINE)*ORDINE; - int i; - int a[DIM]; - for (i=0;i= dim){ x = 0; y++; } + + if (mat[y][x] != 0)return risolvi(mat, x + 1, y); + + else{ + for (int i = 1; i <= dim && y