Ir para conteúdo
Fórum Script Brasil
  • 0

Batalha Naval em Pascal


lucasayres

Pergunta

alguém pode me ajudar a desenvolver o jogo de Batalha Naval em Pascal?

Nesse link tem todas as especificações: Especificações do Batalha Naval

ESSE É O CÓDIGO QUE EU ESTOU FAZENDO:

program Batalha_Naval;

uses crt;

var Batalha,Batalha2: array[0..9, 'A'..'J'] of char;

i: integer;

j: char;

Jogador1:String[10];

Jogador2:String[10];

procedure Inicializar_Batalha;

var Conta: integer;

begin

Writeln('BATALHA NAVAL:');

Writeln('Digite o nome do Jogador 1');

Readln(Jogador1);

Writeln('Digite o nome do Jogador 2');

Readln(Jogador2);

for i := 0 to 9 do

for j := 'A' to 'J' do Batalha[i, J]:='0';

for i := 0 to 9 do

for j := 'A' to 'J' do Batalha2[i, J]:='0';

{ Cria 2 (dois) Porta-Avioes. }

writeln('Porta-Avião');

for Conta := 1 to 1 do

begin

repeat

i := random(6);

j := chr(random(7)+65);

until (Batalha[i, j] = '0') and (Batalha[i, succ(j)] = '0') and

(Batalha[i, succ(succ(j))] = '0');

Batalha[i, j] := 'P';

Batalha[i, succ(j)] := 'P';

Batalha[i, succ(succ(j))] := 'P';

end;

{ Cria 3 (tres) Destroyer. }

for Conta := 1 to 3 do

begin

repeat

i := random(6)+1;

j := chr(random(8)+65);

until (Batalha[i, j] = '0') and (Batalha[i, succ(j)] = '0');

Batalha[i, j] := 'D';

Batalha[i, succ(j)] := 'D';

end;

{ Cria 5 (cinco) Submarinos. }

for Conta := 1 to 5 do

begin

repeat

i := random(6);

j := chr(random(9)+65);

until Batalha[i, j] = '0';

Batalha[i, j]:='S';

end;

{ Cria 2 (dois) Porta-Avioes. }

for Conta := 1 to 1 do

begin

repeat

i := random(6);

j := chr(random(7)+65);

until (Batalha2[i, j] = '0') and (Batalha2[i, succ(j)] = '0') and

(Batalha2[i, succ(succ(j))] = '0');

Batalha2[i, j] := 'P';

Batalha2[i, succ(j)] := 'P';

Batalha2[i, succ(succ(j))] := 'P';

end;

{ Cria 3 (tres) Destroyer. }

for Conta := 1 to 3 do

begin

repeat

i := random(6)+1;

j := chr(random(8)+65);

until (Batalha2[i, j] = '0') and (Batalha2[i, succ(j)] = '0');

Batalha2[i, j] := 'D';

Batalha2[i, succ(j)] := 'D';

end;

{ Cria 5 (cinco) Submarinos. }

for Conta := 1 to 5 do

begin

repeat

i := random(6);

j := chr(random(9)+65);

until Batalha2[i, j] = '0';

Batalha2[i, j]:='S';

end;

end;

begin

Inicializar_Batalha;

clrscr;

gotoxy(03, 01); write('** ',Jogador1,' **');

gotoxy(01, 02); write('# A B C D E F G H I J');

for i := 0 to 9 do

begin

gotoxy(01, 03+i); write(i:1,' ');

end;

gotoxy(30, 01); write('** ',Jogador2,' **');

gotoxy(28, 02); write('# A B C D E F G H I J');

for i := 0 to 9 do

begin

gotoxy(28, 03+i); write(i:1,' ');

end;

repeat

repeat

gotoxy(01, 13); write('Direção__[ ]');

gotoxy(01, 14); write('Coordenadas_[ , ]');

gotoxy(14, 14); readln(J);

if j <> '*'

then begin

gotoxy(16, 14); readln(i);

gotoxy(28+02*(ord(j)-64), 03+i);

if Batalha[i, j] <> '0'

then write(Batalha[i, j]) { acerto }

else write('x'); { erro, ou agua }

end

until Batalha[i, j] ='0';

repeat

gotoxy(28, 13); write('Direção__[ ]');

gotoxy(28, 14); write('Coordenadas_[ , ]');

gotoxy(41, 14); readln(J);

if j <> '*'

then begin

gotoxy(43, 14); readln(i);

gotoxy(01+02*(ord(j)-64), 03+i);

if Batalha2[i, j] <> '0'

then write(Batalha2[i, j]) { acerto }

else write('x'); { agua }

end

until Batalha2[i, j] = '0';

until J = '*';

readln;

end.

Editado por lucasayres
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      652k
×
×
  • Criar Novo...