Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void le_tabuleiro (int tab[][9]) {
- int linha, coluna;
- for (linha=0; linha<9; linha++) {
- for (coluna=0; coluna<9; coluna++)
- scanf (" %d", &tab[linha][coluna]);
- }
- }
- int main() {
- int tabuleiro[9][9], tabuleiro_correto=1, soma=0, produto=1, jogada_invalida=0, contador_jogada=0, contador_invalidas=0, testa_coluna, testa_linha, x, y, v, a, b, m, n, z, w, s, t;
- le_tabuleiro(tabuleiro);
- while (1) {
- scanf (" %d %d %d", &x, &y, &v);
- if (x==-1 && y==-1 && v==-1)
- break;
- contador_jogada++;
- if (tabuleiro[x][y]!=0)
- jogada_invalida++;
- if (x<0 || y<0 || v<1 || x>8 || y>8 || v>9)
- jogada_invalida++;
- for (testa_coluna=0; testa_coluna<9; testa_coluna++) {
- if (tabuleiro[x][testa_coluna]==v && tabuleiro[x][y]!=v) {
- jogada_invalida++;
- break;
- }
- }
- for (testa_linha=0; testa_linha<9; testa_linha++) {
- if (tabuleiro[testa_linha][y]==v && tabuleiro[x][y]!=v) {
- jogada_invalida++;
- break;
- }
- }
- if ((x==0 || x==1 || x==2) && (y==0 || y==1 || y==2)) {
- for (a=0; a<3; a++) {
- for (b=0; b<3; b++) {
- if (v==tabuleiro[a][b] && tabuleiro[x][y]!=v) {
- jogada_invalida++;
- break;
- }
- }
- }
- }
- else if ((x==3 || x==4 || x==5) && (y==0 || y==1 || y==2)) {
- for (a=3; a<6; a++) {
- for (b=0; b<3; b++) {
- if (v==tabuleiro[a][b] && tabuleiro[x][y]!=v) {
- jogada_invalida++;
- break;
- }
- }
- }
- }
- else if ((x==6 || x==7 || x==8) && (y==0 || y==1 || y==2)) {
- for (a=6; a<9; a++) {
- for (b=0; b<3; b++) {
- if (v==tabuleiro[a][b] && tabuleiro[x][y]!=v) {
- jogada_invalida++;
- break;
- }
- }
- }
- }
- else if ((x==0 || x==1 || x==2) && (y==3 || y==4 || y==5)) {
- for (a=0; a<3; a++) {
- for (b=3; b<6; b++) {
- if (v==tabuleiro[a][b] && tabuleiro[x][y]!=v) {
- jogada_invalida++;
- break;
- }
- }
- }
- }
- else if ((x==3 || x==4 || x==5) && (y==3 || y==4 || y==5)) {
- for (a=3; a<6; a++) {
- for (b=3; b<6; b++) {
- if (v==tabuleiro[a][b] && tabuleiro[x][y]!=v) {
- jogada_invalida++;
- break;
- }
- }
- }
- }
- else if ((x==6 || x==7 || x==8) && (y==3 || y==4 || y==5)) {
- for (a=6; a<9; a++) {
- for (b=3; b<6; b++) {
- if (v==tabuleiro[a][b] && tabuleiro[x][y]!=v) {
- jogada_invalida++;
- break;
- }
- }
- }
- }
- else if ((x==0 || x==1 || x==2) && (y==6 || y==7 || y==8)) {
- for (a=0; a<3; a++) {
- for (b=6; b<9; b++) {
- if (v==tabuleiro[a][b] && tabuleiro[x][y]!=v) {
- jogada_invalida++;
- break;
- }
- }
- }
- }
- else if ((x==3 || x==4 || x==5) && (y==6 || y==7 || y==8)) {
- for (a=3; a<6; a++) {
- for (b=6; b<9; b++) {
- if (v==tabuleiro[a][b] && tabuleiro[x][y]!=v) {
- jogada_invalida++;
- break;
- }
- }
- }
- }
- else if ((x==6 || x==7 || x==8) && (y==6 || y==7 || y==8)) {
- for (a=6; a<9; a++) {
- for (b=6; b<9; b++) {
- if (v==tabuleiro[a][b] && tabuleiro[x][y]!=v) {
- jogada_invalida++;
- break;
- }
- }
- }
- }
- if (jogada_invalida>0) {
- contador_invalidas++;
- printf("Jogada Invalida!\n");
- }
- else if (jogada_invalida==0)
- tabuleiro[x][y]=v;
- jogada_invalida=0;
- }
- for (a=0; a<9; a++) {
- for (b=0; b<9; b++) {
- if (tabuleiro[a][b]==0)
- tabuleiro_correto=0;
- }
- }
- s=0;
- t=3;
- while (1) {
- for (m=s; m<t; m++) {
- for (n=s; n<t; n++) {
- for (z=s; z<t; z++) {
- for (w=s; w<t; w++) {
- if ((tabuleiro[m][n]==tabuleiro[z][w]) && (m!=z || n!=w)){
- tabuleiro_correto=0;
- }
- }
- }
- }
- }
- s+=3;
- t+=3;
- if (s==9)
- break;
- }
- for (m=0; m<9; m++) {
- for (n=0; n<9; n++) {
- produto*=tabuleiro[m][n];
- soma+=tabuleiro[m][n];
- }
- if (soma!=45 || produto!=362880)
- tabuleiro_correto=0;
- soma=0;
- produto=1;
- }
- for (m=0; m<9; m++) {
- for (n=0; n<9; n++) {
- produto*=tabuleiro[n][m];
- soma+=tabuleiro[n][m];
- }
- if (soma!=45 || produto!=362880)
- tabuleiro_correto=0;
- soma=0;
- produto=1;
- }
- if (tabuleiro_correto==0)
- printf ("TABULEIRO INCOMPLETO!\n");
- else
- printf ("TABULEIRO RESOLVIDO!\n");
- for (a=0; a<9; a++) {
- for (b=0; b<9; b++) {
- if (b<8)
- printf ("%d ", tabuleiro[a][b]);
- else
- printf ("%d", tabuleiro[a][b]);
- }
- printf ("\n");
- }
- printf ("NUMERO DE JOGADAS: %d\n", contador_jogada);
- printf ("JOGADAS VALIDAS: %d\n", contador_jogada-contador_invalidas);
- printf ("JOGADAS INVALIDAS: %d\n", contador_invalidas);
- return 0;
- }
Add Comment
Please, Sign In to add comment