Debes determinar estados,
es decir tienes un array que puede ser el barco y puedes decir que el numero de casillas del array es 4 y que si el 4 campo es null, entonces que si el 4 campo es null, es que recibio un golpe, si el tercero tambien es otro golpe , y asi hasta llegar alprimer, en cuyo caso diras que si el campo1 es null es barco esta undido.
para moverlo, podrias utilizar otros campos del array por cada barco que te indiquen la posicion en x y la posicion en y del barco, de este modo para dibujarlos solo seria necesario leer estos campos de cada barco y dibujarlos en pantalla con la funcion gotoxy.
ejemplo
barco de 4 golpes:
primer campo = posicion en x
segundo campo = posicion en y
tercer a 6 campo(4 campos)= estado de impactos.
para dibujarlo...
gotoxy(barco[0], barco[1]);//ubicar el cursor de pantall..luego lo imprimes en pantalla.
para recibir un disparo.. por ejemplo el primero:
barco[5] = null;//o al numero que quierasque represente el impacto.
cuando se unda :
barco[2] =null//el ultimo campo de disparos se vuelve null, entonces es barco undido.
Suerte.