Il gioco consiste nel colpire un bersaglio su un campo di battaglia. L’obiettivo è visualizzato con una ‘O’ mentre il tuo mirino è ‘> <'.
==== ROUND 1 ====
>.< . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . O . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
Le coordinate del bersaglio sono inviate sulla pipe ‘shotPipeOut’ nel formato x,y# Ad esempio 7,6# indica che il bersaglio si trova alla riga 7 e colonna 6 (attento che la numerazione parte da 0). Se visualizziamo (da un altro terminale) il contenuto della pipe otteniamo:
$ cat shotPipeOut
7,6#
Il mirino è inizialmente in 0,0. Sulla pipe ‘shotPipeIn’ devi inviare lo spostamento RELATIVO del mirino per colpire l’obiettivo. Il formato è lo stesso di prima: x,y# Ad esempio se invii -4,3# stai spostando il mirino di tre righe in alto e 3 colonna a destra.
Ad esempio:
==== ROUND 2 ====
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . O . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . >.< . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
Inviando (da un altro terminale) lo shift -4,3:
$ cat > shotPipeIn
-4,3#
Si ottiene:
Shift: -4,3
... SHOOT!
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . >X< . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
Gotcha!! good!
Per vincere devi scrivere un programma in grado di superare 10 round di seguito!
Ecco il programma eseguibile shot per architetture 32 bit e 64 bit.
Salve, questa è la mia soluzione dell’esercizio, purtroppo non riesco a provarla in quanto nel momento in cui lancio shot (versione 32 bit) mi stampa “bash: ./shot: Permission denied”. Grazie mille
Evidentemente non hai reso il file eseguibile:
chmod +x ./shot