comando verifica
unknown
plain_text
3 days ago
2.2 kB
2
Indexable
bool verificar(char cmd, char *arg, ESTADO *e) { if (cmd != 'v' || arg != NULL) return false; bool valido = true; int total_violacoes = 0; // Verificar linhas for (int i = 0; i < e->linhas; i++) { for (int j = 0; j < e->colunas; j++) { char celula = e->tabuleiro[i][j]; if (isSupper(celula)) { // Se é branca char minuscula = toLower(celula); // verifica na LINHA for (int k = j + 1; k < e->colunas; k++) { if (e->tabuleiro[i][k] == celula) { printf("Atenção: Símbolo '%c' tem múltiplas brancas na linha %d\n", celula, i+1); valido = false; total_violacoes++; } if (k != j && toLower(e->tabuleiro[i][k]) == minuscula && e->tabuleiro[i][k] != '#') { // k!=j garante que não compara com a pŕopria célula printf("Atenção: Réplica '%c' não riscada na linha %d, coluna %c\n", minuscula, i+1, 'a'+k); valido = false; total_violacoes++; } } // verifica na COLUNA for (int k = i + 1; k < e->linhas; k++) { if (e->tabuleiro[k][j] == celula) { printf("Atenção: Símbolo '%c' tem múltiplas brancas na coluna %c\n", celula, 'a'+j); valido = false; total_violacoes++; } if (k != i && toLower(e->tabuleiro[k][j]) == minuscula && e->tabuleiro[k][j] != '#') { printf("Atenção: Réplica '%c' não riscada na linha %d, coluna %c\n", minuscula, k+1, 'a'+j); valido = false; total_violacoes++; } } } } } if (valido) printf("Tabuleiro válido! Nenhuma restrição violada.\n"); else printf("Total de violações encontradas: %d\n", total_violacoes); return true; }
Editor is loading...
Leave a Comment