El joc dels barquets es juga sobre un tauler de 10x10, on les files es numeren amb lletres (de l’a a la j), i les columnes es numeren amb números de l’1 al 10.
Cadascun dels dos jugadors que hi participen té un tauler.
Sobre les caselles del tauler cada jugador disposa un total de 10
vaixells, que ocupen 2, 3, 4 o 5 caselles contigües en línia recta.
En concret, cada jugador disposa d’una flota formada per:
1 vaixell de longitud 5,
2 de longitud 4,
3 de longitud 3, i
4 de longitud 2.
Els vaixells no es poden tocar entre ells ni es poden
posicionar de qualsevol forma: sempre han de definir una línia
contínua horitzontal o vertical, però mai diagonal. Sempre que es
compleixin aquestes restriccions, els jugadors poden disposar els seus
vaixells en qualsevol lloc del tauler.
Després, cada jugador intentaà enfonsar els vaixells de
l’altre jugador mitjançant ’trets’ directes a una coordenada
del tauler contrari.
Entrada
Per exemple, el vaixell definit per a1 3 h ocupa les caselles a1, a2, a3, mentre que el vaixell definit per a1 3 v ocupa les caselles a1, b1, c1.
Sortida
Seguiu el format indicat als exemples.
Observació
typedef vector< vector<bool> > Tauler;
distancia((i,j), (i′,j′)) = max{| i−i′|, |j−j′|} |
Input
a1 5 h a10 4 v g10 4 v j5 3 h j1 3 h f1 3 v c2 2 h e4 2 v h5 2 h a7 2 h a1 a5 a6 d8 e8 f8 e6 e7
Output
12345678910 a XXXXX.XX.X b .........X c .XX......X d .........X e ...X...... f X..X...... g X........X h X...XX...X i .........X j XXX.XXX..X a1 tocat! a5 tocat! a6 aigua! vaixell mes proper a distancia 1 d8 aigua! vaixell mes proper a distancia 2 e8 aigua! vaixell mes proper a distancia 2 f8 aigua! vaixell mes proper a distancia 2 e6 aigua! vaixell mes proper a distancia 2 e7 aigua! vaixell mes proper a distancia 3