Advertisement
Guest User

Untitled

a guest
Feb 20th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.42 KB | None | 0 0
  1. #include "es9.h"
  2.  
  3. int verifica_riga(int campo[][DIM], int riga) {
  4.     int occ[DIM] = {0};
  5.     int c;
  6.  
  7.     if (riga < 0 || riga >= DIM) {
  8.         return 0;
  9.     }
  10.     for (c = 0; c < DIM; c++) {
  11.         if (campo[riga][c] >= 1 && campo[riga][c] <= DIM) {
  12.             occ[campo[riga][c] - 1]++;
  13.         }
  14.     }
  15.     for (c = 0; c < DIM; c++) {
  16.         if (occ[c] != 1) {
  17.             return 0;
  18.         }
  19.     }
  20.     return 1;
  21. }
  22.  
  23. int verifica_colonna(int campo[][DIM], int colonna) {
  24.     int occ[DIM] = {0};
  25.     int c;
  26.  
  27.     if (colonna < 0 || colonna >= DIM) {
  28.         return 0;
  29.     }
  30.     for (c = 0; c < DIM; c++) {
  31.         if (campo[c][colonna] >= 1 && campo[c][colonna] <= DIM) {
  32.             occ[campo[c][colonna] - 1]++;
  33.         }
  34.     }
  35.     for (c = 0; c < DIM; c++) {
  36.         if (occ[colonna] != 1) {
  37.             return 0;
  38.         }
  39.     }
  40.     return 1;
  41. }
  42.  
  43. int verifica_riquadro(int campo[][DIM], int riga, int colonna) {
  44.     int occ[9] = {0};
  45.     int x, y, c;
  46.  
  47.     if (riga < 0 || riga > 6 || colonna < 0 || colonna > 6) {
  48.         return 0;
  49.     }
  50.  
  51.     for (x = riga; x < riga + 3; x++) {
  52.         for (y = colonna; y < colonna + 3; y++)
  53.             occ[campo[x][y] - 1]++;
  54.     }
  55.  
  56.     for (c = 0; c < DIM; c++) {
  57.         if(occ[c] != 1)
  58.             return 0;
  59.     }
  60.  
  61.     return 1;
  62. }
  63.  
  64. int verifica_campo(int campo[][DIM]) {
  65.     int flag = 1;
  66.     int x, y, c;
  67.  
  68.     for (c = 0; c < DIM; c++)
  69.         flag &= verifica_riga(campo, c) & verifica_colonna(campo, c);
  70.  
  71.     for (x = 0; x < DIM; x += 3) {
  72.         for (y = 0; y < DIM; y += 3)
  73.             flag &= verifica_riquadro(campo, x, y);
  74.     }
  75.  
  76.     return flag;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement