Duarte Posted February 24, 2021 at 05:20 PM Report Share #621461 Posted February 24, 2021 at 05:20 PM (edited) Estou a criar um Jogo em Pascalzim com matrizes. Foi me pedido para fazer a batalha naval singleplayer para a escola mas quero fazxer com que haja outro jogador. Como Posso Fazer isso? Aqui esta o codigo: { 24-02-2021} Program Batalha_Naval ; {Jogo da batalha naval single player contra o computador} {Campo de 10 por 10} type Matriz=array[1..10, 1..10] of char; var batalha:matriz; li,c,contaS:integer; opc:char; {----------------------------------------------------------------- objectivo: preencher o tabuleiro com submarios em posicoes aleatorias. parâmetros: matriz -------------------------------------------------------------------} Procedure PreencheBatalha(var Jogo:matriz); var linha,coluna,sub:integer; begin {gerador de números aleatórios} randomize(); {Põe todos os elemntos a Agua} For linha:= 1 to 10 do For coluna:= 1 to 10 do {A=agua} jogo[linha,coluna]:='A' ; {Poe dois submarinos} for sub:=1 to 2 do {Poe os submarinos em posicoes aleatorias} jogo[random(9)+1,random(9)+1]:='S';{S=submarino} end; {----------------------------------------------------------------- objectivo: mostrar no ecrã o tabuleiro parâmetros: matriz -------------------------------------------------------------------} Procedure mostranoecra(jogo: matriz); var linha,coluna:integer; begin {Ciclo para percorrer todos os elementos da matriz} for linha:=1 to 10 do begin for coluna:=1 to 10 do begin Write(jogo[linha,coluna]); write(' '); end; writeln; end; end; {----------------------------------------------------------------- objectivo: pedir as coordenadas para afundar os submarinos parâmetros: matriz -------------------------------------------------------------------} procedure JogarBatalha(Jogo:matriz); var linha,coluna:integer; begin writeln('insira a linha e coluna.'); write('Linha:'); readln(linha); writeln; write('coluna:'); readln(coluna); writeln(linha, coluna); if batalha[linha,coluna]='S' then begin writeln('afundou'); contaS:=contaS-1; end else writeln('agua'); end; {----------------------------------corpo-principal----------------------------} begin {Contador para parar quando se afundou todos os submarinos} contaS:=2; PreencheBatalha(batalha); {Mostra No ecrã o tabuleiro mostranoecra(batalha);} //repete enquanto houver submarinos repeat JogarBatalha(batalha) until(contaS=0); writeln('Parabens! Afundou todos os Submarinos!'); End. Edited February 24, 2021 at 08:01 PM by nunopicado Syntax Highlight Link to comment Share on other sites More sharing options...
antseq Posted February 24, 2021 at 06:50 PM Report Share #621464 Posted February 24, 2021 at 06:50 PM 1 hora atrás, Duarte disse: Estou a criar um Jogo em Pascalzim com matrizes. Foi me pedido para fazer a batalha naval singleplayer para a escola mas quero fazxer com que haja outro jogador. Como Posso Fazer isso? Sem entrar em detalhes muito específicos.... 2 jogadores, implica 2 matrizes (1 para cada jogador), portanto bastaria acrescentar mais uma dimensão a "Matriz" que já tens algo tipo "array[1..2, 1..10, 1..10]" e depois adaptar as funções que já tens para efectuarem as operações numa "1" ou outra "2" dimensão da Matriz[10x10]. Terás também de adaptar a parte de "Contar os submarinos afundados" para se ajustar aos 2 jogadores. (mesmo agora single/player, assim a primeira vista, também não está a 100% => se o jogador, jogar 2x no mesmo sítio X,Y e afunda o submarino, afunda o mesmo 2x e ganha o jogo sem afundar o outro). cps e boa programação. 1 Report Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now