Introduzione:
Diamo un'occhiata a una calcolatrice standard in Windows:
per questa sfida, esamineremo solo i seguenti pulsanti e ignoreremo tutto il resto:
7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
Sfida:
Input:
riceverai due input:
- Uno è qualcosa per indicare la rotazione con incrementi di 90 gradi
- L'altro è un elenco di coordinate che rappresentano i pulsanti premuti sul calcolatore ruotato.
Sulla base del primo input, ruotiamo il layout sopra menzionato in senso orario con incrementi di 90 gradi. Quindi, se l'input è 0 degrees
, rimane com'è; ma se l'ingresso è 270 degrees
, verrà ruotato tre volte in senso orario (o una volta in senso antiorario). Ecco i quattro possibili layout:
Default / 0 degrees:
7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
90 degrees clockwise:
0 1 4 7
0 2 5 8
. 3 6 9
+ - * /
180 degrees:
+ . 0 0
- 3 2 1
* 6 5 4
/ 9 8 7
270 degrees clockwise / 90 degrees counterclockwise:
/ * - +
9 6 3 .
8 5 2 0
7 4 1 0
Il secondo input è un elenco di coordinate in qualsiasi formato ragionevole † . Ad esempio (array di numeri interi 2D con indice 0):
[[1,2],[2,3],[0,3],[1,0],[1,1]]
Output:
produciamo sia la somma, sia il risultato (e un segno di uguale =
).
Esempio:
quindi se l'input è 270 degrees
e [[1,2],[2,3],[0,3],[1,0],[1,1]]
, l'output diventerà:
517*6=3102
Regole della sfida:
- † Gli ingressi possono essere in qualsiasi formato ragionevole. Il primo ingresso può essere
0-3
,1-4
,A-D
,0,90,180,270
, ecc Il secondo ingresso può essere una matrice 2D 0-indicizzato, matrice 1 indicizzati 2D, una stringa, Lista di punti-oggetti, ecc La chiamata. È anche possibile scambiare le coordinate xey rispetto agli input di esempio forniti. Indica quali formati di input hai utilizzato nella tua risposta! - Puoi aggiungere spazi (ad es.
517 * 6 = 3102
) Se lo desideri. - Puoi aggiungere zeri finali dopo la virgola, a un massimo di tre (ovvero
3102.0
/3102.00
/3102.000
anziché3102
o0.430
anziché0.43
). - Non è consentito aggiungere parentesi all'output, quindi
(((0.6+4)-0)/2)/4=0.575
non è un output valido. - Puoi usare altri simboli di operando per la tua lingua. Così
×
o·
invece di*
; o÷
invece di/
; eccetera. - Poiché una calcolatrice calcola automaticamente quando si introduce un operando, è necessario ignorare la precedenza dell'operatore! Quindi si
10+5*3
otterrà45
((10+5)*3=45
), non25
(10+(5*3)=25
)
(cioè10
→+
→5
→*
(ora visualizza 15 sul display) →3
→=
(ora visualizza la risposta45
)). Tienilo a mente quando usieval
e funzioni simili sulla somma risultante. - Non ci saranno casi di test per la divisione per 0.
- Non ci saranno casi di test con più di tre cifre decimali di conseguenza, quindi non è necessario arrotondare il risultato.
- Non ci saranno casi di test in cui più operandi si susseguono o in cui due punti si susseguono.
- Non ci saranno casi di test per numeri negativi. Il segno meno (
-
) verrà utilizzato solo come operando, non come negativo. - Non ci saranno casi di test
.##
senza un numero iniziale prima della virgola (cioè2+.7
non sarà un caso di test valido, ma2+0.7
potrebbe esserlo).
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice.
- Inoltre, si prega di aggiungere una spiegazione, se necessario.
Casi test:
Input: 270 degrees & [[1,2],[2,3],[0,3],[1,0],[1,1]]
Output: 517*6=3102
Input: 90 degrees & [[3,1],[0,0],[0,1],[3,3],[2,0],[0,3],[0,0],[0,2],[3,0],[2,1]]
Output: 800/4+0.75=200.75
Input: 0 degrees & [[0,0],[1,0],[2,0],[3,0],[1,2],[2,1],[2,2]]
Output: 789/263=3
Input: 180 degrees & [[3,0],[1,0],[1,2],[0,0],[3,2],[0,1],[2,0],[0,3],[2,1],[0,3],[3,2]]
Output: 0.6+4-0/2/4=0.575
1+-*/+-*/2
darà 0.5
su Windows (10) calcolatrice.
[1,3],
2+.7
?