Descrizione del problema
Immagina di essere una tartaruga su una griglia. Si è dato due numeri f e B , e il gioco è rivolto verso est. Esegui una marcia attraverso la griglia, contando ciascuna delle celle che incontri, secondo le seguenti regole:
- Per impostazione predefinita, scrivi il conteggio nella cella in cui ti trovi, quindi vai avanti.
- Se il conteggio è divisibile per f , scrivi
F
nella cella in cui ti trovi, quindi gira a destra, quindi cammina in avanti. - Se il conteggio è divisibile per b , scrivi
B
nella cella in cui ti trovi, quindi gira a sinistra, quindi cammina in avanti. - Se il conteggio è divisibile per due F e B , si scrive
FB
alla cella si è in, poi a piedi in avanti. - Se raggiungi una piazza in cui sei già stato, ti fermi.
Ad esempio, seguendo queste regole usando f = 3 eb = 5 genererà un modello come questo:
F 28 29 FB 1 2 F
26 4
F B B F
23 7
22 8
F B B F
19 11
F 17 16 FB 14 13 F
La sfida
Scrivi un programma o una funzione che accetta due numeri come input, corrispondenti a f e b , e produce come output il modello per questi numeri dato dalle regole precedenti.
Requisiti di formattazione:
- Ogni cella è larga due caratteri
- Il contenuto della cella è allineato a destra all'interno di questi due caratteri
- Le celle nella stessa riga sono delimitate da uno spazio
- La prima colonna di celle deve contenere una cella non vuota
- Tutte le righe devono contenere celle non vuote
- Gli spazi bianchi finali non sono richiesti, ma sono ammessi
- Tuttavia, la larghezza totale di ogni riga non deve superare 3 volte il numero di colonne non vuote
Il codice deve funzionare per i casi di test forniti.
Le scappatoie standard non sono ammesse.
Questo è il codice golf; vince la risposta più breve in byte.
Casi test
(f = 3, b = 5 caso ripetuto qui per comodità di cortesia).
f=3, b=5 ->
F 28 29 FB 1 2 F
26 4
F B B F
23 7
22 8
F B B F
19 11
F 17 16 FB 14 13 F
f=4, b=10 ->
F 25 26 27 F
23 29
22 1 2 3 F
21 5
FB 6
19 7
18 B 9 F
17 11
F 15 14 13 F
f=3, b=11 ->
F 16 17 F
14 19
13 1 2 F
F B 4
10 5
F 8 7 F
f=5, b=9 ->
F 41 42 43 44 1 2 3 4 F
39 6
38 7
37 8
F B B F
34 11
33 12
32 13
31 14
F 29 28 B B 17 16 F
26 19
F 24 23 22 21 F
f=5, b=13 ->
F 31 32 33 34 F
29 36
28 1 2 3 4 F
27 6
F B 7
24 8
23 9
22 B 12 11 F
21 14
F 19 18 17 16 F