Advertisement
Guest User

Codigo Principal

a guest
Oct 24th, 2014
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 10.76 KB | None | 0 0
  1. program project1;
  2.    
  3. uses copiaHidroMateus, crt;
  4.  
  5. var
  6.  
  7.     tabuleiro : matPos;     // Matriz de tipo "matPos", declarada na UNIT
  8.     comando   : char;       // Variável usada na função case
  9.     tamNav    : integer;    // Variável que guarda o tamanho do navio selecionado
  10.     confirmar : char;       // Variável usada para confirmar a escolha do navio
  11.    
  12.     //Variaveis para controle de quantidades de navios disponiveis
  13.     quantCo : integer;
  14.     quantCr : integer;
  15.     quantDe : integer;
  16.     quantSu : integer;
  17.     quantHi : integer;
  18.    
  19.     //Variaveis para controle de linhas e colunas, Iniciais e Finais
  20.     linhaI,linhaF   : integer;
  21.     colunaI,colunaF : char;
  22.    
  23. begin
  24.  
  25.     //Inicializando variaveis
  26.     quantCo := 1;
  27.     quantCr := 2;
  28.     quantDe := 3;
  29.     quantSu := 4;
  30.     quantHi := 4;
  31.     tamNav  := 0;
  32.  
  33.     // Inicio do Programa
  34.     write('Bem vindo ao jogo de Batalha Naval. Aperte ENTER para comecar...');  
  35.     readln;
  36.    
  37.     clrscr;
  38.    
  39.     zerarTab(tabuleiro);  
  40.     impTab(tabuleiro);
  41.    
  42.     writeln('Por favor, posicione seus navios no tabuleiro: ');
  43.    
  44.     infoNavDisp(quantCo,quantCr,quantDe,quantSu,quantHi);
  45.  
  46.     repeat
  47.         write('Selecione o navio que deseja posicionar (para info navios, digite "?"): ');
  48.         readln(comando);
  49.         comando:=upcase(comando);
  50.            
  51.         case comando of
  52.         'O':
  53.         begin
  54.             if (quantCo=0) then writeln('Voce ja posicionou o Couracado disponivel.')
  55.             else begin
  56.                 tamNav :=5;
  57.                 linhaF :=0;
  58.                 colunaF:='-';                  
  59.                
  60.                
  61.                 write('Couracado selecionado. Confirmar selecao?(s/n)');               
  62.                 readln(confirmar);             
  63.                
  64.                 if (confirmar = 's') then
  65.                 begin
  66.                     clrscr;
  67.                     impTab(tabuleiro);
  68.                     repeat
  69.                         verificarChar('Selecione a coluna inicial(de A ate O): ',colunaI);
  70.                    
  71.                         verificarInteger('Selecione a linha inicial do bloco do navio (01 ate 15): ',linhaI,15,1);
  72.                    
  73.                         if (tabuleiro[linhaI,colunaI]=1) then begin
  74.                             clrscr;
  75.                             impTab(tabuleiro);
  76.                             writeln('A posicao selecionada contem um navio proximo.')
  77.                         end
  78.                        
  79.                         else if(tabuleiro[linhaI,colunaI]>1) then begin
  80.                             clrscr;
  81.                             impTab(tabuleiro);
  82.                             writeln('A posicao selecionada esta ocupada.')
  83.                         end;
  84.                
  85.                     until(tabuleiro[linhaI,colunaI]=0);
  86.                    
  87.                     Dec(quantCo);
  88.                     tabuleiro[linhaI,colunaI]:=tamNav+1;
  89.                    
  90.                     clrscr;
  91.                     impTab(tabuleiro);
  92.                     writeln('Posicao inicial selecionada com sucesso!');
  93.                    
  94.                     posicoesPossiveis(tamNav,tabuleiro,linhaI,linhaF,colunaI,colunaF);
  95.                     regioesAdj(tamNav,linhaI,linhaF,colunaI,colunaF,tabuleiro);
  96.                    
  97.                 end;
  98.             end;  
  99.         end;
  100.    
  101.         'R':
  102.         begin
  103.             if (quantCr = 0) then writeln('Voce ja distribuiu todos os Cruzadores disponiveis.')
  104.             else begin
  105.                 tamNav  := 4;
  106.                 linhaF  := 0;
  107.                 colunaF := '-';
  108.                
  109.                 write('Cruzador selecionado. Confirmar selecao?(s/n)');            
  110.                 readln(confirmar);
  111.                
  112.                
  113.                 if (confirmar = 's') then
  114.                 begin
  115.                     clrscr;
  116.                     impTab(tabuleiro);
  117.                     repeat
  118.                         verificarChar('Selecione a coluna inicial(de A ate O): ',colunaI);
  119.                    
  120.                         verificarInteger('Selecione a linha inicial do bloco do navio (01 ate 15): ',linhaI,15,1);
  121.                    
  122.                         if (tabuleiro[linhaI,colunaI]=1) then begin
  123.                             clrscr;
  124.                             impTab(tabuleiro);
  125.                             writeln('A posicao selecionada contem um navio proximo.')
  126.                         end
  127.                        
  128.                         else if(tabuleiro[linhaI,colunaI]>1) then begin
  129.                             clrscr;
  130.                             impTab(tabuleiro);
  131.                             writeln('A posicao selecionada esta ocupada.')
  132.                         end;
  133.                    
  134.                     until(tabuleiro[linhaI,colunaI]=0);
  135.                    
  136.                     Dec(quantCr);
  137.                     tabuleiro[linhaI,colunaI]:=tamNav+1;
  138.                    
  139.                     clrscr;
  140.                     impTab(tabuleiro);
  141.                     writeln('Posicao inicial selecionada com sucesso!');
  142.                    
  143.                     posicoesPossiveis(tamNav,tabuleiro,linhaI,linhaF,colunaI,colunaF);
  144.                     regioesAdj(tamNav,linhaI,linhaF,colunaI,colunaF,tabuleiro);                
  145.                end;
  146.             end;  
  147.         end;
  148.        
  149.         'D':
  150.         begin
  151.             if (quantDe=0) then writeln('Voce ja distribuiu todos os Destroyers disponiveis.')
  152.             else begin         
  153.                
  154.                 tamNav:=2;
  155.                 linhaF:=0;
  156.                 colunaF:='-';
  157.                
  158.                 write('Destroyer selecionado. Confirmar selecao?(s/n)');
  159.                 readln(confirmar);
  160.                
  161.                 if (confirmar = 's') then
  162.                 begin
  163.                     clrscr;
  164.                     impTab(tabuleiro);
  165.                     repeat
  166.                         verificarChar('Selecione a coluna inicial(de A ate O): ',colunaI);
  167.                    
  168.                         verificarInteger('Selecione a linha inicial do bloco do navio (01 ate 15): ',linhaI,15,1);                    
  169.                    
  170.                         if (tabuleiro[linhaI,colunaI]=1) then begin
  171.                             clrscr;
  172.                             impTab(tabuleiro);
  173.                             writeln('A posicao selecionada contem um navio proximo.')
  174.                         end
  175.                        
  176.                         else if(tabuleiro[linhaI,colunaI]>1) then begin
  177.                             clrscr;
  178.                             impTab(tabuleiro);
  179.                             writeln('A posicao selecionada esta ocupada.')
  180.                         end;
  181.                
  182.                     until(tabuleiro[linhaI,colunaI]=0);
  183.                    
  184.                     Dec(quantDe);
  185.                     tabuleiro[linhaI,colunaI]:=tamNav+1;
  186.                    
  187.                     clrscr;
  188.                     impTab(tabuleiro);
  189.                     writeln('Posicao inicial selecionada com sucesso!');
  190.                    
  191.                     posicoesPossiveis(tamNav,tabuleiro,linhaI,linhaF,colunaI,colunaF);
  192.                     regioesAdj(tamNav,linhaI,linhaF,colunaI,colunaF,tabuleiro);
  193.                 end;
  194.             end;  
  195.         end;
  196.        
  197.         'S':
  198.         begin
  199.             if (quantSu=0) then writeln('Voce ja distribuiu todos os Submarinos disponiveis.')
  200.             else begin
  201.                 tamNav:=1;
  202.                 linhaF:=linhaI;
  203.                
  204.                 write('Submarino selecionado. Confirmar selecao?(s/n)');
  205.                 readln(confirmar);
  206.                
  207.                 if (confirmar = 's') then
  208.                 begin
  209.                     clrscr;
  210.                     impTab(tabuleiro);
  211.                     repeat
  212.                                            
  213.                         verificarChar('Selecione a coluna inicial (de A ate O): ',colunaI);
  214.          
  215.                         while (colunaI = 'A') or (colunaI = 'O') do
  216.                         begin
  217.                             write('Linha nao permitida. O submarino nao pode encostar na borda do tabuleiro.');
  218.                             verificarChar('Digite a coluna novamente: ',colunaI);
  219.                         end;
  220.                        
  221.                         verificarInteger('Selecione a linha inicial do bloco do navio (01 ate 15): ',linhaI,15,1);                     
  222.          
  223.                         while (linhaI = 1) or (linhaI = 15) do
  224.                         begin
  225.                             write('Linha nao permitida. O submarino nao pode encostar na borda do tabuleiro.');
  226.                             write('Digite novamente a linha: ');
  227.                             readln(linhaI);
  228.                         end;
  229.                    
  230.                         if (tabuleiro[linhaI,colunaI]=1) then begin
  231.                             clrscr;
  232.                             impTab(tabuleiro);
  233.                             writeln('A posicao selecionada contem um navio proximo.')
  234.                         end
  235.                        
  236.                         else if(tabuleiro[linhaI,colunaI]>1) then begin
  237.                             clrscr;
  238.                             impTab(tabuleiro);
  239.                             writeln('A posicao selecionada esta ocupada.')
  240.                         end;
  241.                    
  242.                     until(tabuleiro[linhaI,colunaI]=0);
  243.                    
  244.                     clrscr;
  245.                     impTab(tabuleiro);
  246.                     writeln('Posicao inicial selecionada com sucesso!');
  247.                     Dec(quantSu);
  248.                
  249.                     tabuleiro[linhaI,colunaI]:=2;
  250.                     regioesAdj(tamNav,linhaI,linhaF,colunaI,colunaF,tabuleiro);
  251.                
  252.                 end;
  253.             end;
  254.         end;
  255.         'H':
  256.                        begin
  257.                             if (quantHi=0) then writeln('Voce ja distribuiu todos os Hidro-avioes disponiveis.')
  258.                     else begin                
  259.                        
  260.                         tamNav:=3;
  261.                         linhaF:=0;
  262.                         colunaF:='-';
  263.                        
  264.                         write('Hidro-aviao selecionado. Confirmar selecao?(s/n)');
  265.                                         readln(confirmar);
  266.                                        
  267.                                         if (confirmar = 's') then
  268.                                         begin
  269.                                                 clrscr;
  270.                                                 impTab(tabuleiro);
  271.                                                //repeat
  272.                                                         verificarChar('Selecione a coluna inicial do bloco central(de A ate O): ',colunaI);
  273.                                                         writeln(colunaI);
  274.                                                         verificarInteger('Selecione a linha inicial do bloco central do navio (01 ate 15): ',linhaI,15,1);    
  275.                                                         writeln(linhaI);
  276.                                                        
  277.                                                                        
  278.                            
  279.                                                         if (tabuleiro[linhaI,colunaI]=1) then begin
  280.                                                                 clrscr;
  281.                                                                 impTab(tabuleiro);
  282.                                                                 writeln('A posicao selecionada contem um navio proximo.')
  283.                                                         end
  284.                                                        
  285.                                                         else if(tabuleiro[linhaI,colunaI]>1) then begin
  286.                                                                 clrscr;
  287.                                                                 impTab(tabuleiro);
  288.                                                                 writeln('A posicao selecionada esta ocupada.');
  289.                                                         end;
  290.                                                        
  291.                                                         tratamentoHi(tabuleiro,linhaI,linhaF,colunaI,colunaF);                                                  
  292.                                                        
  293.                                                 //until(tabuleiro[linhaI,colunaI]=0);
  294.                                                
  295.                                                 Dec(quantHi);
  296.                                                 //tabuleiro[linhaI,colunaI]:=tamNav+1;
  297.                                                
  298.                                                 clrscr;
  299.                                                 impTab(tabuleiro);
  300.                                                 writeln('Posicao inicial selecionada com sucesso!');
  301.                                                
  302.                                                 //regioesAdj(tamNav,linhaI,linhaF,colunaI,colunaF,tabuleiro);
  303.                                         end;
  304.                                 end;  
  305.                        end;
  306.        
  307.         '?':
  308.         begin
  309.             infoNavDisp(quantCo,quantCr,quantDe,quantSu,quantHi);
  310.         end;
  311.        
  312.     end;
  313.     clrscr;
  314.     impTab(tabuleiro);            
  315.     until(quantDe = 0) and (quantSu = 0) and (quantCo = 0) and (quantCr = 0);
  316.     readln;
  317. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement