introduzione
Scrivi un risolutore per i puzzle di Hitori usando meno byte.
Sfida
Il tuo compito è scrivere un risolutore per l'Hitori (ひ と り, la parola per "solo" in giapponese; il significato del nome del gioco è "Lasciami in pace") puzzle logici. Le regole sono le seguenti:
- Ti viene presentata una griglia di celle n-by-n, ogni cella contiene un numero intero compreso tra 1 e n (compreso).
- Il tuo obiettivo è assicurarti che nessun numero appaia più di una volta in ogni riga e ogni colonna della griglia, rimuovendo i numeri dalla griglia data, soggetto alla restrizione indicata nelle due regole successive,
- Non è possibile rimuovere due numeri da due celle adiacenti (orizzontalmente o verticalmente).
- Le celle numerate rimanenti devono essere tutte collegate tra loro. Significa che ogni due celle numerate rimanenti possono essere collegate con una curva composta esclusivamente da segmenti che collegano i numeri rimanenti adiacenti (in orizzontale o in verticale). (Grazie a @ user202729 per aver sottolineato che manca questo)
Spero che le regole siano chiare ormai. Se c'è qualcosa di poco chiaro nelle regole, controlla la pagina di Wikipedia .
Casi test
Le celle da cui vengono rimossi i numeri sono rappresentate con 0.
Input -> Output
4
2 2 2 4 0 2 0 4
1 4 2 3 -> 1 4 2 3
2 3 2 1 2 3 0 1
3 4 1 2 3 0 1 2
4
4 2 4 3 0 2 4 3
4 1 1 2 -> 4 1 0 2
3 1 2 1 3 0 2 1
4 3 1 3 0 3 1 0
5
1 5 3 1 2 1 5 3 0 2
5 4 1 3 4 5 0 1 3 4
3 4 3 1 5 -> 3 4 0 1 5
4 4 2 3 3 4 0 2 0 3
2 1 5 4 4 2 1 5 4 0
8
4 8 1 6 3 2 5 7 0 8 0 6 3 2 0 7
3 6 7 2 1 6 5 4 3 6 7 2 1 0 5 4
2 3 4 8 2 8 6 1 0 3 4 0 2 8 6 1
4 1 6 5 7 7 3 5 -> 4 1 0 5 7 0 3 0
7 2 3 1 8 5 1 2 7 0 3 0 8 5 1 2
3 5 6 7 3 1 8 4 0 5 6 7 0 1 8 0
6 4 2 3 5 4 7 8 6 0 2 3 5 4 7 8
8 7 1 4 2 3 5 6 8 7 1 4 0 3 0 6
9
8 6 5 6 8 1 2 2 9 8 0 5 6 0 1 2 0 9
5 6 2 4 1 7 9 8 3 5 6 2 4 1 7 9 8 3
5 8 2 5 9 9 8 2 6 0 8 0 5 0 9 0 2 0
9 5 6 6 4 3 8 4 1 9 5 6 0 4 3 8 0 1
1 1 6 3 9 9 5 6 2 -> 0 1 0 3 9 0 5 6 2
1 1 4 7 3 8 3 8 6 1 0 4 7 0 8 3 0 6
3 7 4 1 2 6 4 5 5 3 7 0 1 2 6 4 5 0
3 3 1 9 8 7 7 4 5 0 3 1 9 8 0 7 4 5
2 9 7 5 3 5 9 1 3 2 9 7 0 3 5 0 1 0
Questi casi di test sono tratti rispettivamente da Concept Is Puzzles , PuzzleBooks , Concept Is Puzzles , Wikipedia e Youtube .
Specifiche
Non è necessario preoccuparsi della gestione delle eccezioni.
È possibile supporre che l'ingresso è sempre un puzzle valida con una unica soluzione ed è possibile usufruire di questo nella scrittura del codice.
Questo è code-golf , vince il numero più basso di byte.
4 <= n <= 9 (16 originariamente, cambiato in 9 in seguito al suggerimento di Stewie Griffin, risparmiando anche qualche problema in IO)
Puoi prendere input e fornire output attraverso qualsiasi modulo standard e sei libero di scegliere il formato.
Alcuni suggerimenti per il formato di output sono (ma non sei limitato a questi)
- Emissione della griglia finale
- Emissione della griglia contenente tutti i numeri rimossi
- Emette un elenco di coordinate di una delle precedenti
Come al solito, qui si applicano scappatoie predefinite .
Correlato (ispirato a questa sfida): Verifica se tutti gli elementi in una matrice sono collegati
La mia ultima sfida: l' estensione del gioco dei sette
4 <= n <= 16
, ma il più grande caso di test è pern=9
. Ti suggerisco di pubblicare unn=16
caso di prova o di dirlo4 <= n <= 9
. Bella sfida a proposito :)