La fisarmonica è un gioco di carte solitario di recente in cui mi sono imbattuto in quasi tutti i layout, ma incredibilmente difficile. Puoi giocarci qui .
Regole
52 carte scoperte vengono piazzate scoperte in ordine casuale. Ad ogni turno, sostituisci una carta con una carta successiva, dove le due carte :
- Condividi un seme o un numero e
- Sono ad una distanza di 1 (adiacente) o 3 (due carte in mezzo).
Il gioco si vince quando rimane solo 1 carta . Si può presumere che ogni input sia risolvibile. La carta sostituita deve sempre precedere la carta sostitutiva.
Esempio
Ad esempio, considera il seguente layout:
2H,2S,1S,2D (H: Hearts, S: Spades, D: Diamonds)
Ci sono 3 possibili mosse qui:
- Sostituisci il
2H
con l'adiacente2S
, quindi finiamo con2S,1S,2D
- Sostituisci il
2S
con l'adiacente1S
, quindi finiamo con2H,1S,2D
- Sostituisci
2H
con2D
(a una distanza di 3), quindi finiamo con2D,2S,1S
Di quelle 3 mosse, solo l'ultima ha la possibilità di vincere (vinci sostituendo 2D <- 2S
, quindi 2S <- 1S
).
Input Output
Il tuo compito è scrivere un risolutore di fisarmoniche . Hai superato un elenco di carte e devi restituire un elenco di mosse per risolvere il gioco.
Viene passato un elenco di carte come una stringa delimitata da virgole, in cui ogni carta viene passata come numero intero che rappresenta il loro valore numerico, quindi un personaggio che rappresenta il loro seme.
È necessario restituire un elenco di sostituzioni come stringa delimitata da virgole, in cui ogni sostituzione è nel formato Card <- Card
(seguendo il formato della scheda sopra descritto). La prima carta di ogni coppia è la carta che viene sostituita.
Casi test:
5H,1C,12S,9C,9H,2C,12C,11H,10C,13S,3D,8H,1H,12H,4S,1D,7H,1S,13D,13C,7D,12D,6H,10H,4H,8S,3H,5D,2D,11C,10S,7S,4C,2H,3C,11S,13H,3S,6C,6S,4D,11D,8D,8C,6D,5C,7C,5S,9D,10D,2S,9S
5H,9C,11H,7S,7D,12D,6H,10S,3H,4D,12C,2S,3C,5C,7H,6S,1H,8S,2H,11S,4C,10D,12H,9H,2D,4H,6C,13H,11C,2C,10H,8C,1S,11D,3S,12S,7C,5D,13S,8D,4S,6D,13C,3D,8H,13D,1D,9D,9S,1C,5S,10C
7H,11C,8C,7S,10D,13H,4S,10C,4D,2C,4H,13D,3C,2H,12C,6C,9H,4C,12H,11H,9S,5H,8S,13S,8H,6D,2S,5D,11D,10S,1H,2D,5C,1C,1S,5S,3H,6S,7C,11S,9C,6H,8D,12S,1D,13C,9D,12D,3D,7D,10H,3S
Mentre questa competizione è un code-golf , sono particolarmente interessato a soluzioni efficienti in termini di tempo e probabilmente ricompenserò soluzioni ingegnose con taglie. Detto questo, le soluzioni che richiedono tempi astronomici sono ancora accettabili (consiglierei di provare con un mazzo più piccolo, come un mazzo da 16 carte, 4 semi).