Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program project1;
- uses copiaHidroMateus, crt;
- var
- tabuleiro : matPos; // Matriz de tipo "matPos", declarada na UNIT
- comando : char; // Variável usada na função case
- tamNav : integer; // Variável que guarda o tamanho do navio selecionado
- confirmar : char; // Variável usada para confirmar a escolha do navio
- //Variaveis para controle de quantidades de navios disponiveis
- quantCo : integer;
- quantCr : integer;
- quantDe : integer;
- quantSu : integer;
- quantHi : integer;
- //Variaveis para controle de linhas e colunas, Iniciais e Finais
- linhaI,linhaF : integer;
- colunaI,colunaF : char;
- begin
- //Inicializando variaveis
- quantCo := 1;
- quantCr := 2;
- quantDe := 3;
- quantSu := 4;
- quantHi := 4;
- tamNav := 0;
- // Inicio do Programa
- write('Bem vindo ao jogo de Batalha Naval. Aperte ENTER para comecar...');
- readln;
- clrscr;
- zerarTab(tabuleiro);
- impTab(tabuleiro);
- writeln('Por favor, posicione seus navios no tabuleiro: ');
- infoNavDisp(quantCo,quantCr,quantDe,quantSu,quantHi);
- repeat
- write('Selecione o navio que deseja posicionar (para info navios, digite "?"): ');
- readln(comando);
- comando:=upcase(comando);
- case comando of
- 'O':
- begin
- if (quantCo=0) then writeln('Voce ja posicionou o Couracado disponivel.')
- else begin
- tamNav :=5;
- linhaF :=0;
- colunaF:='-';
- write('Couracado selecionado. Confirmar selecao?(s/n)');
- readln(confirmar);
- if (confirmar = 's') then
- begin
- clrscr;
- impTab(tabuleiro);
- repeat
- verificarChar('Selecione a coluna inicial(de A ate O): ',colunaI);
- verificarInteger('Selecione a linha inicial do bloco do navio (01 ate 15): ',linhaI,15,1);
- if (tabuleiro[linhaI,colunaI]=1) then begin
- clrscr;
- impTab(tabuleiro);
- writeln('A posicao selecionada contem um navio proximo.')
- end
- else if(tabuleiro[linhaI,colunaI]>1) then begin
- clrscr;
- impTab(tabuleiro);
- writeln('A posicao selecionada esta ocupada.')
- end;
- until(tabuleiro[linhaI,colunaI]=0);
- Dec(quantCo);
- tabuleiro[linhaI,colunaI]:=tamNav+1;
- clrscr;
- impTab(tabuleiro);
- writeln('Posicao inicial selecionada com sucesso!');
- posicoesPossiveis(tamNav,tabuleiro,linhaI,linhaF,colunaI,colunaF);
- regioesAdj(tamNav,linhaI,linhaF,colunaI,colunaF,tabuleiro);
- end;
- end;
- end;
- 'R':
- begin
- if (quantCr = 0) then writeln('Voce ja distribuiu todos os Cruzadores disponiveis.')
- else begin
- tamNav := 4;
- linhaF := 0;
- colunaF := '-';
- write('Cruzador selecionado. Confirmar selecao?(s/n)');
- readln(confirmar);
- if (confirmar = 's') then
- begin
- clrscr;
- impTab(tabuleiro);
- repeat
- verificarChar('Selecione a coluna inicial(de A ate O): ',colunaI);
- verificarInteger('Selecione a linha inicial do bloco do navio (01 ate 15): ',linhaI,15,1);
- if (tabuleiro[linhaI,colunaI]=1) then begin
- clrscr;
- impTab(tabuleiro);
- writeln('A posicao selecionada contem um navio proximo.')
- end
- else if(tabuleiro[linhaI,colunaI]>1) then begin
- clrscr;
- impTab(tabuleiro);
- writeln('A posicao selecionada esta ocupada.')
- end;
- until(tabuleiro[linhaI,colunaI]=0);
- Dec(quantCr);
- tabuleiro[linhaI,colunaI]:=tamNav+1;
- clrscr;
- impTab(tabuleiro);
- writeln('Posicao inicial selecionada com sucesso!');
- posicoesPossiveis(tamNav,tabuleiro,linhaI,linhaF,colunaI,colunaF);
- regioesAdj(tamNav,linhaI,linhaF,colunaI,colunaF,tabuleiro);
- end;
- end;
- end;
- 'D':
- begin
- if (quantDe=0) then writeln('Voce ja distribuiu todos os Destroyers disponiveis.')
- else begin
- tamNav:=2;
- linhaF:=0;
- colunaF:='-';
- write('Destroyer selecionado. Confirmar selecao?(s/n)');
- readln(confirmar);
- if (confirmar = 's') then
- begin
- clrscr;
- impTab(tabuleiro);
- repeat
- verificarChar('Selecione a coluna inicial(de A ate O): ',colunaI);
- verificarInteger('Selecione a linha inicial do bloco do navio (01 ate 15): ',linhaI,15,1);
- if (tabuleiro[linhaI,colunaI]=1) then begin
- clrscr;
- impTab(tabuleiro);
- writeln('A posicao selecionada contem um navio proximo.')
- end
- else if(tabuleiro[linhaI,colunaI]>1) then begin
- clrscr;
- impTab(tabuleiro);
- writeln('A posicao selecionada esta ocupada.')
- end;
- until(tabuleiro[linhaI,colunaI]=0);
- Dec(quantDe);
- tabuleiro[linhaI,colunaI]:=tamNav+1;
- clrscr;
- impTab(tabuleiro);
- writeln('Posicao inicial selecionada com sucesso!');
- posicoesPossiveis(tamNav,tabuleiro,linhaI,linhaF,colunaI,colunaF);
- regioesAdj(tamNav,linhaI,linhaF,colunaI,colunaF,tabuleiro);
- end;
- end;
- end;
- 'S':
- begin
- if (quantSu=0) then writeln('Voce ja distribuiu todos os Submarinos disponiveis.')
- else begin
- tamNav:=1;
- linhaF:=linhaI;
- write('Submarino selecionado. Confirmar selecao?(s/n)');
- readln(confirmar);
- if (confirmar = 's') then
- begin
- clrscr;
- impTab(tabuleiro);
- repeat
- verificarChar('Selecione a coluna inicial (de A ate O): ',colunaI);
- while (colunaI = 'A') or (colunaI = 'O') do
- begin
- write('Linha nao permitida. O submarino nao pode encostar na borda do tabuleiro.');
- verificarChar('Digite a coluna novamente: ',colunaI);
- end;
- verificarInteger('Selecione a linha inicial do bloco do navio (01 ate 15): ',linhaI,15,1);
- while (linhaI = 1) or (linhaI = 15) do
- begin
- write('Linha nao permitida. O submarino nao pode encostar na borda do tabuleiro.');
- write('Digite novamente a linha: ');
- readln(linhaI);
- end;
- if (tabuleiro[linhaI,colunaI]=1) then begin
- clrscr;
- impTab(tabuleiro);
- writeln('A posicao selecionada contem um navio proximo.')
- end
- else if(tabuleiro[linhaI,colunaI]>1) then begin
- clrscr;
- impTab(tabuleiro);
- writeln('A posicao selecionada esta ocupada.')
- end;
- until(tabuleiro[linhaI,colunaI]=0);
- clrscr;
- impTab(tabuleiro);
- writeln('Posicao inicial selecionada com sucesso!');
- Dec(quantSu);
- tabuleiro[linhaI,colunaI]:=2;
- regioesAdj(tamNav,linhaI,linhaF,colunaI,colunaF,tabuleiro);
- end;
- end;
- end;
- 'H':
- begin
- if (quantHi=0) then writeln('Voce ja distribuiu todos os Hidro-avioes disponiveis.')
- else begin
- tamNav:=3;
- linhaF:=0;
- colunaF:='-';
- write('Hidro-aviao selecionado. Confirmar selecao?(s/n)');
- readln(confirmar);
- if (confirmar = 's') then
- begin
- clrscr;
- impTab(tabuleiro);
- //repeat
- verificarChar('Selecione a coluna inicial do bloco central(de A ate O): ',colunaI);
- writeln(colunaI);
- verificarInteger('Selecione a linha inicial do bloco central do navio (01 ate 15): ',linhaI,15,1);
- writeln(linhaI);
- if (tabuleiro[linhaI,colunaI]=1) then begin
- clrscr;
- impTab(tabuleiro);
- writeln('A posicao selecionada contem um navio proximo.')
- end
- else if(tabuleiro[linhaI,colunaI]>1) then begin
- clrscr;
- impTab(tabuleiro);
- writeln('A posicao selecionada esta ocupada.');
- end;
- tratamentoHi(tabuleiro,linhaI,linhaF,colunaI,colunaF);
- //until(tabuleiro[linhaI,colunaI]=0);
- Dec(quantHi);
- //tabuleiro[linhaI,colunaI]:=tamNav+1;
- clrscr;
- impTab(tabuleiro);
- writeln('Posicao inicial selecionada com sucesso!');
- //regioesAdj(tamNav,linhaI,linhaF,colunaI,colunaF,tabuleiro);
- end;
- end;
- end;
- '?':
- begin
- infoNavDisp(quantCo,quantCr,quantDe,quantSu,quantHi);
- end;
- end;
- clrscr;
- impTab(tabuleiro);
- until(quantDe = 0) and (quantSu = 0) and (quantCo = 0) and (quantCr = 0);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement