Ingresso
- Una matrice binaria rappresenta le pareti di un sotterraneo.
- La posizione del giocatore all'interno del sotterraneo.
- La direzione che il giocatore sta attualmente affrontando (0 = Nord, 1 = Est, 2 = Sud, 3 = Ovest)
Produzione
Una rappresentazione pseudo-3D delle pareti che si trovano nel campo visivo del giocatore, come un'arte ASCII di caratteri.
Di seguito sono riportati alcuni possibili frame di output, insieme alla mappa e alla bussola corrispondenti per aiutarti a capire come funziona (ma disegnare la mappa e la bussola non fa parte della sfida).
specificazione
Campo visivo
Il giocatore ha muri nel suo campo visivo, etichettati dalla alla . Di seguito sono riportate le posizioni delle pareti rispetto al giocatore (in giallo), in tutte le direzioni possibili.
Disegnare le pareti
Le pareti dovrebbero essere disegnate da a in questo preciso ordine, dato che qualsiasi parte disegnata in precedenza può essere sovrascritta da pareti più vicine. Ovviamente puoi implementarlo in modo diverso purché il risultato finale sia lo stesso.
L'intera produzione è disegnato con 7 caratteri distinti: " "
, "'"
, "."
, "|"
, "-"
, "_"
e ":"
.
Poiché dettagliare le forme delle pareti nel corpo di questa sfida la renderebbe troppo lunga, sono invece fornite nel seguente link TIO:
I personaggi che non fanno parte di un determinato muro sono contrassegnati con a "?"
in questi diagrammi. Devono essere trattati come caratteri 'trasparenti' che non vengono affatto disegnati. D'altra parte, tutti gli spazi all'interno di un muro sono "solidi" e devono sovrascrivere qualsiasi altro personaggio che potrebbe essere stato precedentemente disegnato lì.
Regole
Informazioni sull'input
- Puoi prendere , , e in qualsiasi formato ragionevole.
- È possibile utilizzare coordinate 0-indicizzate o 1-indicizzate.
- È possibile utilizzare 4 valori distinti a scelta per le indicazioni.
- La matrice è garantita per essere almeno .
- Si può presumere che ci saranno sempre muri circostanti sui bordi.
- Il giocatore è garantito per essere posizionato su un quadrato vuoto.
- L'input è garantito per essere valido.
Informazioni sull'output
- Le pareti devono essere disegnate esattamente come descritto.
- Tuttavia, anche il formato di output è flessibile: stringa singola, matrice di stringhe, matrice di caratteri, ecc.
- Gli spazi bianchi iniziali e finali sono accettabili purché siano coerenti.
Questo è code-golf .
Casi test
Tutti i casi di test utilizzano la seguente matrice:
[ [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ],
[ 1, 0, 1, 1, 1, 0, 0, 0, 0, 1 ],
[ 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 ],
[ 1, 0, 0, 0, 0, 0, 1, 1, 0, 1 ],
[ 1, 0, 0, 1, 0, 0, 0, 1, 0, 1 ],
[ 1, 0, 0, 1, 1, 0, 1, 1, 0, 1 ],
[ 1, 1, 1, 1, 0, 0, 0, 0, 0, 1 ],
[ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ]
x=3, y=3, d=0
x=6, y=4, d=3
x=4, y=4, d=1
x=1, y=5, d=2
x=7, y=7, d=3
x=6, y=6, d=1
x=8, y=1, d=2
x=7, y=6, d=1
Uscite attese:
------------------------------ ------------------------------
x=3, y=3, d=0: x=6, y=4, d=3:
------------------------------ ------------------------------
__ __ '. .'
|'. .'| | |
| '.--------------.' | |----. |
| | | | | | '.--------. |
| | | | | | | | |
| | | | | | | | |
| | | | | | .'--------' |
| .'--------------'. | |----' |
__|.' '.|__ | |
.' '.
------------------------------ ------------------------------
x=4, y=4, d=1: x=1, y=5, d=2:
------------------------------ ------------------------------
.' __ ________________________ .'
| | |
-------. .----| | |
| '.--------.' | | | |
| | | | | | |
| | | | | | |
| .'--------'. | | | |
-------' '----| | |
| __|________________________|
'. '.
------------------------------ ------------------------------
x=7, y=7, d=3: x=6, y=6, d=1:
------------------------------ ------------------------------
'. '.
|'. |'.
| '. | '.
| | '. .- | |--.--------.--------.-
| | |: :| | | | | |
| | |: :| | | | | |
| | .' '- | |--'--------'--------'-
| .' | .'
|.' |.'
.' .'
------------------------------ ------------------------------
x=8, y=1, d=2: x=7, y=6, d=1:
------------------------------ ------------------------------
'. __ '.
|'. .'| |
| '. .' | |----.--------------.-------
| | '. .' | | | | |
| | |: :| | | | | |
| | |: :| | | | | |
| | .' '. | | | | |
| .' '. | |----'--------------'-------
|.' '.|__ |
.' .'
Sfida correlata:
Questa sfida del 2013 è strettamente correlata. Ma ha un diverso criterio vincente (code-challenge), una specifica molto più libera dell'output e richiede I / O interattivi.