• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

marco_iku

Pascal - WordKill

3 mensagens neste tópico

Titulo do Projecto: WordKill

Última Versão : 0.1

Licença: GPL

Líder do Projecto: marco_iku

Descrição do Projecto: É um jogo em que o utilizador pratica a velocidade de teclar, vão aparecendo letras a descer na janela e o utilizador tem que carregar nas respectivas letras no teclado. É inspirado num jogo daquelas consolas que os chineses vendiam.

Foi desenvolvido em PascalZIM.

Download executável: http://www.mediafire.com/download.php?myn1lwxtntg

screencn1.th.jpg

Program WordKill;

const borda=1;
          lancador=2;

var 
        a                                 :char;
        score,nivel,teste,i,l,m,pontos    :integer; 
        grupo_letras                      :array[1..7] of char;
        posX                              :array[1..30] of integer;
        letra                             :char;
continuar, Xpos                   :boolean;
  

Procedure tab_nivel;
begin
clrscr;
Writeln('________________________________');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|              %               |');
Writeln('______________#',#1,'#_______________');
Writeln('');
Writeln('--------------------------------');
Writeln('');
Writeln('Nivel:');
Writeln('Pontuação:');
end;






Procedure jogo;

begin 
  nivel:=1;
  randomize;  
  score:=0;
  continuar:=true;
  Xpos:=false;
  m:=0;
  
Repeat
     gotoxy(8,27);
write(nivel);
    
    for i:=1 to 7 do
     begin
     l:=random(25)+65;
     grupo_letras[i] :=chr(l);
     end;
         
   Repeat
     for i:=1 to 7 do
	posX[i]:=random(30)+2;

	m:=1;
	for i:=1 to 7 do
	begin
		for l:=1 to 7 do
		begin
			if i<>l then
			begin
				if posX[i]=posX[l] then m:=m+1;					
	          end;
          end;
     end;
  Until m=1;  
          
for i:=1 to 7 do
     begin
     gotoxy(posX[i],2);
     write(grupo_letras[i]);
     end;

     for i:=1 to 20 do
     begin
	  
          gotoxy(11,28);
       	write(score); 

	 	if keypressed then
          begin
          letra :=Upcase(readkey);             
		      for  teste:=1 to 7 do
                     begin
                        
			    if letra= grupo_letras[teste] then
                        begin
                   score:=score+10;
                        grupo_letras[teste]:=' ';
                        gotoxy(posX[i]+2,2+i);
                        write (' ');
                        letra:=' ';
                   end;
                     end;	
               end;
	  
	gotoxy(11,28);
       	write(score);   

	  for l:=1 to 7 do
            begin
       gotoxy(posX[l],1+i);
       write(' ');
       gotoxy(posX[l],2+i);
            write (grupo_letras[l]);
            end; 
       
  
          if keypressed then
          begin
          letra :=Upcase(readkey);             
		      for  teste:=1 to 7 do
                     begin
                        
			    if letra= grupo_letras[teste] then
                        begin
                   score:=score+10;
                        grupo_letras[teste]:=' ';
                        gotoxy(posX[i]+2,2+i);
                        write (' ');
                        letra:=' ';
                   end;
                     end;	
               end;
                      m:=7;
                      for teste:=1 to 7 do
                      begin
                 if grupo_letras[teste]=' ' then m:=m-1;
                      end;
                   
			    if m<1 then
			    begin
			    nivel:=nivel+1;
			    i:=20;
		         end;         
  gotoxy(16,22);
  delay(600-(nivel*15));
  if i=20 then
  begin
   m:=7;
        for teste:=1 to 7 do
        begin
   if grupo_letras[teste]=' ' then m:=m-1;
   end;
   if m>0 then continuar:=false;
  end;
end;
tab_nivel;
  Until continuar=false;

  clrscr;
  Writeln('A tua pontuação foi de:  ',score);
  Writeln('Chegaste ao nivel:       ',nivel);
  Writeln('Sair (S)');
  Repeat
    a:=UpCase(ReadKey);
  Until (a='S');
  end;





Procedure tabuleiro;
begin
clrscr;
Writeln('________________________________');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|                              |');
Writeln('|              %               |');
Writeln('______________#',#1,'#_______________');
Writeln('');
Writeln('--------------------------------');
Writeln('');
Writeln('Nivel:');
Writeln('Pontuação:');
jogo;
end;

        
Procedure Inicial;
begin
clrscr;
Writeln('________________________________');
Writeln('|******************************|');
Writeln('|>--===^^   Word Kill  ^^===--<|'); 
Writeln('|******************************|');
Writeln('|______________________________|');
Writeln('v 0.1');
Writeln('Créditos: Marco André Dinis');
Writeln('          José Luis Teixeira');
Writeln('11 PTGEI Escola Secundária de');
Writeln('Amarante 2007/2008');
Writeln('Disciplina: SDAC');
Writeln('');           
Writeln('Este jogo é muito simples.');
Writeln('Quando aparecer uma letra no');
Writeln('ecrã apenas precisa de carregar');
Writeln('na letra correspondente do teclado');
Writeln('');
Writeln('Presione a tecla W para jogar');
  Repeat
  a:=UpCase(ReadKey);
  Until a='W';
   writeln(#7,'A carregar...');
	   for i:=1 to 32 do
	   begin
	   delay (50);
	   write(#177);
	   end;
	   tabuleiro;

end;

Begin
textbackground(BLUE);
textcolor(WHITE);
Inicial;
End.

0

Partilhar esta mensagem


Link 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