Jump to content
dtenente

Jogo da Baleia

Recommended Posts

dtenente

Bom dia

Estou  a fazer um jogo chamado "Jogo da Baleia" que tem como objetivo fazer com que a baleia consiga atravessar o mar, sendo que tem 2 obstaculos os piratas (P) e os surfistas (S), caso a baleia for contra um deles o utilizador perde o jogo, e estou com o erro ('.' não esperado!), alguém me consegue dar uma ajuda? Obrigado pela atenção!

Program Pzim ;
Var jogada,resp:string;
    Procedure baleia;
      Begin
            Writeln('O jogo vai começar! O objetivo é ajudares uma baleia que ficou encalhada na praia a regressar ao mar');
            Writeln('O "B" representa a baleia,o "S" representa os surfistas e o "P" representa os piratas,caso fores contra os surfistas ou contra os piratas,perdes');
            Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
            Writeln ('X X X X P P P');
            Writeln ('S S X X P P P');
            Writeln ('X X X S X X X');
            Writeln ('        B    ');
            Writeln('Para onde pretende ir?');
            read(jogada);
        End;
    
    Begin
        baleia;
        if (jogada='E') or (jogada='e') then
    
        
        
    Begin
        Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
        Writeln ('X X X X P P P');
        Writeln ('S S X X P P P');
        Writeln ('X X X S X X X');
        Writeln ('        B    ');
        Writeln('Para onde pretende ir?');
    read(jogada);
    if (jogada='F') or (jogada='f') then
    End;
    
    Begin
        Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
        Writeln ('X X X X P P P');
        Writeln ('S S X X P P P');
        Writeln ('X X X S B X X');
        Writeln('Para onde pretende ir?');
    read(jogada);
        Case jogada of
        'E':Writeln('O jogador foi contra os surfistas. Fim do Jogo.');
        'e':Writeln('O jogador foi contra os surfistas. Fim do Jogo.');
        'F':Writeln('O jogador foi contra os piratas. Fim do Jogo.');
        'f':Writeln('O jogador foi contra os piratas. Fim do Jogo.');
    Else
    If (jogada='D') or (jogada='d') then
    End;

    Begin
        Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
        Writeln ('X X X X P P P');
        Writeln ('S S X X P P P');
        Writeln ('X X X S X B X');
        Writeln('Para onde pretende ir?');
    read(jogada);
    If (jogada='F') or (jogada='f') then
        Writeln('O jogador foi contra os piratas. Fim do Jogo.')
    Else
    End;

    Begin
    If (jogada='D') or (jogada='d') then
        Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
        Writeln ('X X X X P P P');
        Writeln ('S S X X P P P');
        Writeln ('X X X S X X B');
        Writeln('Não tem escapatoria,deseja reiniciar o jogo? (s/n)');
    Read(resp);                   
    If resp= ('s'or'sim') then
    Else
    End;
    Begin
        baleia;
    If (jogada='E') or (jogada='e') then
    End;
    
    Begin
            Writeln('O "B" representa a baleia,o "S" representa os surfistas e o "P" representa os piratas,caso fores contra os surfistas ou contra os piratas,perdes');
            Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
            Writeln ('X X X X P P P');
            Writeln ('S S X X P P P');
            Writeln ('X X X S X X X');
            Writeln ('      B      ');
            Writeln('Para onde pretende ir?');
            read(jogada);
 If (jogada='F') or (jogada='f') then
    Writeln('O jogador foi contra o surfista. Fim do Jogo.')
    Else
 If (jogada='E') or (jogada='e') then
     End;

 Begin
            Writeln('O "B" representa a baleia,o "S" representa os surfistas e o "P" representa os piratas,caso fores contra os surfistas ou contra os piratas,perdes');
            Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
            Writeln ('X X X X P P P');
            Writeln ('S S X X P P P');
            Writeln ('X X X S X X X');
            Writeln ('    B        ');
            Writeln('Para onde pretende ir?');
            read(jogada);    
 If (jogada='F') or (jogada='f') then
      End;
 
 Begin
            Writeln('O "B" representa a baleia,o "S" representa os surfistas e o "P" representa os piratas,caso fores contra os surfistas ou contra os piratas,perdes');
            Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
            Writeln ('X X X X P P P');
            Writeln ('S S X X P P P');
            Writeln ('X X B S X X X');
            Writeln('Para onde pretende ir?');
            read(jogada);
 If (jogada='D') or (jogada='d') then
      End;
 
 Begin
 Writeln('O "B" representa a baleia,o "S" representa os surfistas e o "P" representa os piratas,caso fores contra os surfistas ou contra os piratas,perdes');
            Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
            Writeln ('X X X X P P P');
            Writeln ('S S X X P P P');
            Writeln ('X B X S X X X');
            Writeln('Para onde pretende ir?');
            read(jogada);
 Case jogada of
'F':Writeln('O jogador foi contra os surfistas. Fim do Jogo.');
'f':Writeln('O jogador foi contra os surfistas. Fim do Jogo.');
 Else
 If (jogada='D') or (jogada='d') then
   End;
 
 Begin
 Writeln('O "B" representa a baleia,o "S" representa os surfistas e o "P" representa os piratas,caso fores contra os surfistas ou contra os piratas,perdes');
            Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
            Writeln ('X X X X P P P');
            Writeln ('S S X X P P P');
            Writeln ('B X X S X X X');
            Writeln('Para onde pretende ir?');
            read(jogada);
  If (jogada='D') or (jogada='d') then
Writeln('O jogador foi contra os surfistas. Fim do Jogo.');
baleia;
If (jogada='E') or (jogada='e') then
    End;

Begin
            Writeln('O "B" representa a baleia,o "S" representa os surfistas e o "P" representa os piratas,caso fores contra os surfistas ou contra os piratas,perdes');
            Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
            Writeln ('X X X X P P P');
            Writeln ('S S X X P P P');
            Writeln ('X X X S X X X');
            Writeln ('      B      ');
            Writeln('Para onde pretende ir?');
            read(jogada);
 If (jogada='F') or (jogada='f') then
    Writeln('O jogador foi contra o surfista. Fim do Jogo.')
    Else
 If (jogada='E') or (jogada='e') then
     End;

 Begin
            Writeln('O "B" representa a baleia,o "S" representa os surfistas e o "P" representa os piratas,caso fores contra os surfistas ou contra os piratas,perdes');
            Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
            Writeln ('X X X X P P P');
            Writeln ('S S X X P P P');
            Writeln ('X X X S X X X');
            Writeln ('    B        ');
            Writeln('Para onde pretende ir?');
            read(jogada);
 If (jogada='F') or (jogada='f') then
     End;
 
 Begin
            Writeln('O "B" representa a baleia,o "S" representa os surfistas e o "P" representa os piratas,caso fores contra os surfistas ou contra os piratas,perdes');
            Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
            Writeln ('X X X X P P P');
            Writeln ('S S X X P P P');
            Writeln ('X X B S X X X');
            Writeln ('             ');
            Writeln('Para onde pretende ir?');
            read(jogada);
 If (jogada='F') or (jogada='f') then
     End;

Begin
            Writeln('O "B" representa a baleia,o "S" representa os surfistas e o "P" representa os piratas,caso fores contra os surfistas ou contra os piratas,perdes');
            Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
            Writeln ('X X X X P P P');
            Writeln ('S S B X P P P');
            Writeln ('X X X S X X X');
            Writeln ('             ');
            Writeln('Para onde pretende ir?');
            read(jogada);
            If (jogada='F') or (jogada='f') then
    End;

 Begin
            Writeln('O "B" representa a baleia,o "S" representa os surfistas e o "P" representa os piratas,caso fores contra os surfistas ou contra os piratas,perdes');
            Writeln('Para te moveres usa o E (Esquerda), F (Frente) ou D (Direita)');
            Writeln ('X X B X P P P');
            Writeln ('S S X X P P P');
            Writeln ('X X X S X X X');
            Writeln('Para onde pretende ir?');
            read(jogada);
            If (jogada='F') or (jogada='f') then
    End;

            Writeln('Parabéns, conseguiste ajudar a baleia a chegar ao seu objetivo!');
                                      
End.

 

Share this post


Link to post
Share on other sites
passarito

Assim de repente, não podes ter um if ... then end; sem nada entre o then e o end

Mais, isso que tu fizeste não é programação é simplesmente usar uma linguagem de programação para escrever no ecra.

Não desanimes, um dos meus primeiros programas foi a triângulo de pascal e caí exactamente no mesmo erro que tu.

 

Se quizeres fazer isso como deve de ser, tenho a certeza que o pessoal aqui te vai ajudar. Há pessoal muito porreiro aqui.

 

Edited by passarito
  • Vote 1

Share this post


Link to post
Share on other sites
dtenente

Obrigado pelo conselho, já corrigi o assunto em relação aos end's!

E acerca do programar, eu comecei a pouco tempo devido ao facto de que estou a ter programação no meu curso e estou a adorar,por isso tento sempre saber mais e mais. Mas este é o maior programa que eu fiz até agora e talvez isso tenha a ver com isso ahaha mas obrigado pela força, n vou perder o animo e vou continuar dar o meu maximo para melhorar!

Share this post


Link to post
Share on other sites
passarito

Eu para resolver este problema da forma mais fácil utilizava um array bidimensional e gotoxy para a movimentação.

O gotoxy é básico, mas arrays... conheces de arrays? sabes trabalhar com arrays?

Share this post


Link to post
Share on other sites
dtenente

Eu tenho conhecimento que dá para fazer utilizando array, o problema é que a minha professora ainda não nos ensinou e disse que para já para não utilizarmos

Share this post


Link to post
Share on other sites
passarito

Conselhos:

- Usa o movimento do jogo de cima para baixo para que o movimento da baleia vá ao encontro da numeração das linhas e das colunas.

- Usa duas constantes IniX e IniY (por exemplo) para a localização do jogo no ecrã.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.