Ir para o conteúdo
becoming-me

programa tipo spaceship - Help!

Mensagens Recomendadas

becoming-me

Bom dia,

estou a desenvolver um programa estilo nave espacial (daqueles que todos jogamos cujo unico objectivo é disparar sobre naves inimigas) em pascal, com o compilador dev pascal, mas o meu programa tem um bug que não consigo encontrar.

O codigo não esta completo, tem apenas os movimentos da nave e um procedimento para os tiros.

program spaceship;

uses crt;
type componentes=record
          cx:integer;
          cy:integer;
          tempo:integer;
          end;
     coisas=array[1..500] of componentes;

var x, y, vez, f: integer;
    tecla: char;
    locais: coisas;

procedure Nave(var x,y : integer);
begin
window(x-1,y-1,x+1,y+2);
textcolor(red);
gotoxy(x,y);
write(' A ');
gotoxy(x,y+1);
write('AAA');
gotoxy(x,y+2);
write('A A');
end;

procedure Tiro(local: componentes);
begin
with local do begin
if tempo>0 then begin
gotoxy(cx,cy-(tempo+1));
write(' ');
end;
gotoxy(cx,cy-tempo);
write('.');
tempo:=tempo+1
end;
end;

begin
x:=39;
y:=23;
vez:=0;
Nave(x,y);
repeat
repeat
  tecla:=readkey;
  if tecla=#0 then begin
   tecla:=readkey;
   case tecla of
    #72:y:=y-1;
    #75:x:=x-1;
    #77:x:=x+1;
    #80:y:=y+1;
   end;
  end;
until(x>0) and (y>0) and (x<81) and (y<26);
clrscr;
Nave(x,y);
window(1,1,80,25);
if keypressed then begin
tecla:=readkey;
if tecla=#32 then begin
vez:=vez+1;
with locais[vez] do begin
cx:=x+1;
cy:=y-1;
tempo:=0;
end;
end;
end;
if vez>0 then
for f:=vez downto 1 do
   Tiro(locais[f]);
until tecla=#27;
end.

ele corre bem, mas não está a escrever os tiros...

alguem me consegue descobrir onde esta o problema? estou a horas com isto e nada  :wallbash:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Olá,

Primeiro que nada, tens de te habituar a

[*]Indentar como deve ser;

[*]Comentar o programa.

Vou-te dar umas dicas para o teu problema:

  • Esta linha está aqui a estragar a coisa

if keypressed then

  • Os tiros estão a seguir na horizontal e não na vertical - é suposto ser assim?

Cumprimentos. ;)


Knowledge is free! | Occasional Fortnite player

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.