Validarea unui Sudoku complet
Validează un Sudoku complet de nouă pe nouă fără a rezolva celule lipsă.
def sudoku_complete(board):
if type(board) is not list or len(board) != 9:
raise ValueError("nine rows")
if any(type(row) is not list or len(row) != 9 or
any(type(v) is not int or not 1 <= v <= 9 for v in row) for row in board):
raise ValueError("nine integer digits per row")
target = set(range(1,10))
units = board + [list(col) for col in zip(*board)]
units += [[board[y+dy][x+dx] for dy in range(3) for dx in range(3)]
for y in (0,3,6) for x in (0,3,6)]
return all(set(unit) == target for unit in units)| Verifică înainte de aplicare | Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări. |
|---|---|
| Modele | Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat. |
| Proiect | Verifică rânduri, coloane și blocuri de trei pe trei, respingând forme greșite ori intrări neîntregi și întorcând fals pentru cifre repetate. |
def sudoku_complete(board):
if type(board) is not list or len(board) != 9:
raise ValueError("nine rows")
if any(type(row) is not list or len(row) != 9 or
any(type(v) is not int or not 1 <= v <= 9 for v in row) for row in board):
raise ValueError("nine integer digits per row")
target = set(range(1,10))
units = board + [list(col) for col in zip(*board)]
units += [[board[y+dy][x+dx] for dy in range(3) for dx in range(3)]
for y in (0,3,6) for x in (0,3,6)]
return all(set(unit) == target for unit in units)Separă o intrare completă de un rezultat valid
GridCoven este un spațiu de programare cu IA pentru Windows în care poți pune întrebări precise despre codul de validare. Începe cu distincția pe care trebuie să o facă aplicația, apoi adu sursa și exemplele relevante în conversație. Modelul conectat poate ajuta la discutarea unei propuneri, iar tu decizi ce stări acceptate și respinse aparțin contractului produsului.
O grilă Sudoku completată oferă o sarcină concretă de revizuire: fiecare celulă poate conține o valoare, iar grila poate totuși încălca o regulă de rând, coloană sau bloc. Cere validarea unei grile completate fără rezolvarea celulelor lipsă. Precizează diferența dintre intrarea cu formă incorectă și o grilă cu formă corectă, dar nevalidă, deoarece apelanții pot trata diferit aceste rezultate.
Folosește cazuri de test independente pentru a revizui modificarea. Unul poate încălca o regulă de coloană, trecând totuși verificările rândurilor; altul poate dezvălui omiterea regulii blocurilor. Rulează cazurile cu instrumentele existente ale proiectului și verifică dacă intrarea rămâne neschimbată. Scopul este să faci observabilă fiecare condiție necesară, nu să accepți un validator doar fiindcă recunoaște o soluție cunoscută.
GridCoven acceptă conexiuni la endpointuri compatibile cu OpenAI sau Anthropic, cu date de autentificare când sunt necesare. Dacă endpointul oferă un model IA nefiltrat, acesta rămâne supus capacităților sale reale și condițiilor serviciului. Modelul și serverul determină contextul și instrumentele; nici eticheta, nici o explicație sigură pe sine nu dovedesc caracterul complet al validării.
Definirea validării unei grile completate
Cum disting intrarea cu formă incorectă de o grilă nevalidă?
Precizează întâi forma și tipurile valorilor necesare, apoi descrie încălcările regulilor care pot apărea într-o grilă cu formă corectă. Specifică modul în care apelantul trebuie să observe fiecare rezultat. Astfel poți revizui tratarea erorilor separat de decizia booleană de validitate.
De ce nu este suficient un caz de test cu o soluție corectă?
Arată doar că un exemplu valid este acceptat. Adaugă cazuri care izolează încălcarea unui rând, a unei coloane și a unui bloc, pentru a face vizibile condițiile omise. Revizuiește independent rezultatele așteptate înainte de a verifica dacă implementarea propusă le reproduce în teste.
Pot cere spațiului de lucru să rezolve celulele lipsă?
Aceasta ar fi o altă sarcină de programare, cu alt contract. Exemplul de aici validează o intrare completată. Păstrează explicită tratarea celulelor lipsă, astfel încât validatorul propus să nu devină tacit un rezolvitor și să nu trateze o grilă incompletă drept soluție completă.
Ar trebui validarea să modifice grila trimisă?
Precizează acest lucru în cerință. Pentru acest exemplu de revizuire, păstrează intrarea originală și verific-o după validare. Modificarea ei poate afecta ulterior comportamentul interfeței chiar dacă rezultatul validării este corect; include codul care o folosește dacă acest risc contează.
GridCoven · Actualizat 2026-10-25