Walidacja kompletnego Sudoku
Sprawdź wypełnione Sudoku dziewięć na dziewięć bez rozwiązywania pustych pól.
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)| Sprawdź przed zastosowaniem | Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami. |
|---|---|
| Modele | Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie. |
| Projekt | Sprawdź wiersze, kolumny i bloki trzy na trzy, odrzucając błędny kształt lub niecałkowite dane i zwracając fałsz dla powtórzeń cyfr. |
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)Odróżnij kompletne dane od poprawnego wyniku
GridCoven to środowisko programowania z AI dla Windows do zadawania precyzyjnych pytań o kod walidacji. Zacznij od rozróżnienia potrzebnego aplikacji, a następnie dołącz odpowiednie źródła i przykłady do rozmowy. Podłączony model może pomóc omówić propozycję, a Ty zdecydujesz, jakie stany akceptowane i odrzucane należą do kontraktu produktu.
Wypełniona plansza Sudoku to konkretne zadanie do przeglądu: każda komórka może zawierać wartość, mimo że plansza narusza regułę wiersza, kolumny lub bloku. Poproś o walidację kompletnej planszy bez rozwiązywania brakujących pól. Określ różnicę między danymi o błędnej strukturze a planszą o poprawnym kształcie, lecz nieprawidłową, ponieważ kod wywołujący może różnie obsługiwać te wyniki.
Przeglądaj poprawkę przy użyciu niezależnych przypadków testowych. Jeden może naruszać regułę kolumny przy zachowaniu poprawnych wierszy, a inny ujawniać pominięcie reguły bloków. Uruchom je istniejącymi narzędziami projektu i sprawdź, czy dane wejściowe pozostają niezmienione. Celem jest uwidocznienie każdego wymaganego warunku, a nie akceptacja walidatora tylko dlatego, że rozpoznaje jedno znane rozwiązanie.
GridCoven obsługuje połączenia z punktami końcowymi zgodnymi z OpenAI lub punktami Anthropic, z uwierzytelnianiem w razie potrzeby. Jeśli Twój punkt końcowy oferuje model AI bez filtrów, nadal podlega on swoim rzeczywistym możliwościom i warunkom usługi. Model i serwer określają kontekst i narzędzia; ani etykieta, ani pewne siebie wyjaśnienie nie dowodzą kompletności walidacji.
Określanie zadania walidacji kompletnej planszy
Jak odróżnić dane o błędnej strukturze od nieprawidłowej planszy?
Najpierw określ wymagany kształt i typy wartości, a potem opisz naruszenia reguł możliwe na planszy o prawidłowym kształcie. Określ, jak kod wywołujący ma rozpoznawać każdy wynik. Pozwala to przeglądać obsługę błędów oddzielnie od logicznej decyzji o poprawności.
Dlaczego przypadek testowy z poprawnym rozwiązaniem nie wystarcza?
Pokazuje tylko, że akceptowany jest jeden poprawny przykład. Dodaj przypadki izolujące naruszenia wiersza, kolumny i bloku, aby ujawnić pominięte warunki. Niezależnie oceń oczekiwane wyniki, zanim sprawdzisz w testach zgodność proponowanej implementacji.
Czy mogę poprosić środowisko o rozwiązanie brakujących pól?
To inne zadanie programistyczne z innym kontraktem. Ten przykład waliduje kompletne dane. Jawnie określ obsługę brakujących pól, aby proponowany walidator nie stał się po cichu solverem ani nie uznawał niepełnej planszy za kompletne rozwiązanie.
Czy walidacja powinna modyfikować przekazaną planszę?
Określ to w wymaganiu. W tym przykładzie przeglądu zachowaj pierwotne dane i sprawdź je po walidacji. Modyfikacja może wpływać na późniejsze zachowanie interfejsu nawet przy poprawnym wyniku walidacji, więc dołącz kod korzystający z danych, jeśli to ryzyko ma znaczenie.
GridCoven · Zaktualizowano 2026-10-25