Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "es9.h"
- int verifica_riga(int campo[][DIM], int riga) {
- int occ[DIM] = {0};
- int c;
- if (riga < 0 || riga >= DIM) {
- return 0;
- }
- for (c = 0; c < DIM; c++) {
- if (campo[riga][c] >= 1 && campo[riga][c] <= DIM) {
- occ[campo[riga][c] - 1]++;
- }
- }
- for (c = 0; c < DIM; c++) {
- if (occ[c] != 1) {
- return 0;
- }
- }
- return 1;
- }
- int verifica_colonna(int campo[][DIM], int colonna) {
- int occ[DIM] = {0};
- int c;
- if (colonna < 0 || colonna >= DIM) {
- return 0;
- }
- for (c = 0; c < DIM; c++) {
- if (campo[c][colonna] >= 1 && campo[c][colonna] <= DIM) {
- occ[campo[c][colonna] - 1]++;
- }
- }
- for (c = 0; c < DIM; c++) {
- if (occ[colonna] != 1) {
- return 0;
- }
- }
- return 1;
- }
- int verifica_riquadro(int campo[][DIM], int riga, int colonna) {
- int occ[9] = {0};
- int x, y, c;
- if (riga < 0 || riga > 6 || colonna < 0 || colonna > 6) {
- return 0;
- }
- for (x = riga; x < riga + 3; x++) {
- for (y = colonna; y < colonna + 3; y++)
- occ[campo[x][y] - 1]++;
- }
- for (c = 0; c < DIM; c++) {
- if(occ[c] != 1)
- return 0;
- }
- return 1;
- }
- int verifica_campo(int campo[][DIM]) {
- int flag = 1;
- int x, y, c;
- for (c = 0; c < DIM; c++)
- flag &= verifica_riga(campo, c) & verifica_colonna(campo, c);
- for (x = 0; x < DIM; x += 3) {
- for (y = 0; y < DIM; y += 3)
- flag &= verifica_riquadro(campo, x, y);
- }
- return flag;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement