Il mio robot ha cortocircuitato in qualche modo ed è fuggito a caso da qualche parte dal mio laboratorio!
Fortunatamente, ogni volta che lo fa, inizia la sua sequenza di spegnimento, dandogli abbastanza tempo per girare a casaccio e correre nella direzione in cui è rivolto per cinque round prima che si spenga. Le sue funzioni giroscopiche e accelerometriche stanno ancora trasmettendo i dati al laboratorio mentre è ancora acceso.
I dati verranno sempre sotto forma di cinque serie di due numeri, ad esempio.
12:234,-135:47,-68:230,140:324,127,87
La tua missione, i golfisti è di a) simulare la corsa frenetica del robot e girare la sequenza visualizzando cinque serie di numeri sotto forma di a1:d1,a2:d2,a3:d3,a4:d4,a5:d5 cui a(n) è l'angolo in senso orario (in gradi) in modo -179<=a<=+180che il robot si giri dalla sua direzione corrente ( inizialmente si trova a zero prima di girare di traverso e gira per la prima volta), e d(n) è la distanza in piedi percorsa prima del successivo cambio di rotta che è tale che i 0<=d<=500piedi; e b) un'intestazione calcolata dal laboratorio (che si trova anche di fronte a un'intestazione di zero), distanza in piedi (l'accuratezza fino a 3 decimali è fortemente incoraggiata, -5 byte se lo si fa) e la direzione di orientamento (in gradi) di dove è rivolto il mio robot quando si è spento.
Esempio semplice:
Data: 0:1,45:1,90:1,90:1,90:1
Heading: 0
Distance: 1
Orientation: -45
Le svolte e le distanze casuali sono proprio questo, casuali. Nessun valore impostato deve essere codificato, dobbiamo vedere la casualità in azione all'interno del codice.
Restrizioni alla casualità: nessun riferimento basato su orologio o data, dobbiamo vedere un nativo random riferimento all'interno del codice. Ogni volta che si esegue questo codice, la casualità deve presentarsi con la possibilità di mostrare 1 di 360 possibili angoli di svolta ad ogni giro di giro. Quindi il robot può girare di -36 gradi in un turno e può girare di +157 gradi il successivo, seguito da un altro giro di +2 gradi da un altro giro di -116 gradi e un giro finale di +42 gradi nell'ultimo turno. Almeno 360 valori distinti devono essere possibili (tra -179 e +180 gradi inclusi) con ogni generazione di angoli casuali.
Restrizioni per la corsa a distanza: impostate allo stesso modo, ci sono 501 possibili distanze che il robot può percorrere (tra 0 e 500 piedi inclusi), quindi mi aspetto che la casualità sia disponibile anche nel determinare la distanza di corsa del robot. Il robot potrebbe teoricamente correre 45, 117, 364, 27 e 6 piedi con ciascuno dei rispettivi giri ...
I dati forniti saranno sempre in valori interi ... il robot ruoterà in intervalli interi di gradi e verrà eseguito in intervalli interi di distanza. I valori di output tuttavia saranno float ...
Questo è code-golf. Il codice più corto vince ... Ora vai a trovare il mio robot!
PS: in riferimento alla mia "Precisione fino a 3 posizioni decimali", se è possibile fornire la direzione (in gradi, a un MINIMO di 3 posizioni decimali) e una distanza in piedi (precisa anche anche a un minimo di 3 posizioni decimali) riceverà un bonus di -5 byte).
-180 < a <= +180come<segno da solo meno di ma non compreso AFAIK ...