Ayuda con Hundir la flota

Marc Carnero Tarazaga
14 de Marzo del 2013
¡Buenas tardes!
Veréis, en Catalunya al acabar el 2º de bachillerato se realiza un trabajo llamado Treball de Recerca (Trabajo de rebúsqueda, pondré TDR para abreviar) y se puede elegir la asignatura que se quiera (en mi caso programación).
Me gustaría dedicarme a esto ya que me gusta muchísimo y tal... pero vamos al problema.
Pues resulta que en clase tenemos que hacer este Proyecto final y a mí me ha tocado el juego de Hundir la flota. Al ser la asignatura de mi TDR, el profesor me otorga menos ayuda que al resto, pero mi trabajo a la vez es de los más difíciles.
Pues veréis, de momento está separado en 2 fases:
1ª fase: insertar los barcos del jugador (pidiendo filas y columnas) y presentar los tableros del jugador y de la máquina (los barcos se sitúan al azar).
2ª fase: empezar con el juego en sí. Preguntar puntos, insertarlos y que se diga si es agua o tocado y hundido (en este caso sólo se pueden insertar barcos individuales para facilitarlo por la falta de tiempo), así hasta derribar los 6 barcos situados en un tablero de 5x5.
De momento tengo hecha la primera fase, pero tengo un problema y es que a la hora de presentar los tableros el ejecutable se cierra debido a un crash. No logro averiguar qué es...
Aquí os dejo el código y espero recibir alguna ayuda por vuestra parte, estaría MUY agradecido.
Código:
[code type="C++"]//Nombre: Marc Carnero
//Proyecto final - Hundir la flota

#include
#include
#include
#include
#include
#include
using namespace std;

const int MaxFila=6;
const int MaxColumna=6;
const int NBarcos=6;
const char Barco=219;

//DESARROLLO DE FUNCIONES
void IntroducirBarcosUsuario(char [MaxFila][MaxColumna], int NBarcos);
//Esta función permite introducir dónde el jugador va a introducir sus barcos.
void IntroducirBarcosOrdenador(char [MaxFila][MaxColumna], int NBarcos);
//Esta función introduce aleatoriamente los barcos del ordenador.
void Rotulo(void);
//Esta función presenta en pantalla el título y las instrucciones de juego.
void IniciaTablero(char[MaxFila][MaxColumna]);
//Esta función vacía los tableros.
void PresentaTablero(char[MaxFila][MaxColumna]);
//Esta función presenta los tableros en pantalla.

int main() {
srand(time(0));
int f,c, contador=0;
char TU[MaxFila][MaxColumna];
char TO[MaxFila][MaxColumna];
char TJU[MaxFila][MaxColumna];
char TJO[MaxFila][MaxColumna];
Rotulo();
IniciaTablero(TU);
IniciaTablero(TO);
IniciaTablero(TJU);
IniciaTablero(TJO);
IntroducirBarcosUsuario(TU,NBarcos);
IntroducirBarcosOrdenador(TO,NBarcos);
cout

Marc Carnero Tarazaga
14 de Marzo del 2013
Veo que se ha cortado y no puedo editar. Aquí pongo el resto del código:
[code type="C++"]#include
#include
#include
#include
#include
#include
using namespace std;

const int MaxFila=6;
const int MaxColumna=6;
const int NBarcos=6;
const char Barco=219;

//DESARROLLO DE FUNCIONES
void IntroducirBarcosUsuario(char [MaxFila][MaxColumna], int NBarcos);
//Esta función permite introducir dónde el jugador va a introducir sus barcos.
void IntroducirBarcosOrdenador(char [MaxFila][MaxColumna], int NBarcos);
//Esta función introduce aleatoriamente los barcos del ordenador.
void Rotulo(void);
//Esta función presenta en pantalla el título y las instrucciones de juego.
void IniciaTablero(char[MaxFila][MaxColumna]);
//Esta función vacía los tableros.
void PresentaTablero(char[MaxFila][MaxColumna]);
//Esta función presenta los tableros en pantalla.

int main() {
srand(time(0));
int f,c, contador=0;
char TU[MaxFila][MaxColumna];
char TO[MaxFila][MaxColumna];
char TJU[MaxFila][MaxColumna];
char TJO[MaxFila][MaxColumna];
Rotulo();
IniciaTablero(TU);
IniciaTablero(TO);
IniciaTablero(TJU);
IniciaTablero(TJO);
IntroducirBarcosUsuario(TU,NBarcos);
IntroducirBarcosOrdenador(TO,NBarcos);
cout