• Viernes 19 de Abril de 2024, 18:06

Autor Tema:  Re: serpiente  (Leído 1485 veces)

joaquinrg

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: serpiente
« en: Domingo 26 de Octubre de 2003, 10:39 »
0
Hola, q tal? queria hacer una especie de serpinte :
 
Código: Text
  1. program Serpiente;
  2. uses crt;
  3.  
  4. var
  5. a, b, i: integer;
  6. k: char;
  7.  
  8. begin
  9. clrscr;
  10. a:= 20;
  11. b:= 20;
  12. gotoxy (a,b);writeln ('O');
  13. k:=readkey;
  14. repeat
  15. delay(8000);
  16. gotoxy (a,b); writeln (' ');
  17. if k='a' then
  18.         begin
  19.         a:=a-1;
  20.         end;
  21. if k='s' then
  22.         begin
  23.         b:=b+1;
  24.         end;
  25. if k='d' then
  26.         begin
  27.         a:=a+1;
  28.         end;
  29. if k='w' then
  30.         begin
  31.         b:=b-1;
  32.         end;
  33.  
  34. gotoxy (a,b); writeln ('O');
  35. until keypressed
  36. end.
  37.  
  38.  

No se como hacer q al pulsar una tecla cambie de direccion. Xq si uso todo el rato readkey... tengo q pulsar cada vez antes de moverse. Y si uso la funcion keypressed, para hacer lo de arriba mientras no se pulsa ninguna tecla, despues habria que pulsar otra tecla para ver hacia q lado va ahora,no? Hay alguna forma de saber con la funcion keypressed la tecla q se ha pulsado? Gracias

joaquinrg

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
serpiente
« Respuesta #1 en: Domingo 26 de Octubre de 2003, 12:48 »
0
Perdonar, ya lo consegui, me falto probar mas cosas.
 
Código: Text
  1.  
  2. program Serpiente;
  3. uses crt;
  4.  
  5. var
  6. a, b, i: integer;
  7. k: char;
  8.  
  9. begin
  10.     clrscr;
  11.     a:= 20;
  12.     b:= 20;
  13.     gotoxy (a,b);writeln ('O');
  14.     for i:=0 to 5 do
  15.         begin
  16.         k:=readkey;
  17.         repeat
  18.             delay(8000);
  19.             gotoxy (a,b); writeln (' ');
  20.             if k='a' then
  21.                 begin
  22.                 a:=a-1;
  23.                 end;
  24.             if k='s' then
  25.                 begin
  26.                 b:=b+1;
  27.                 end;
  28.             if k='d' then
  29.                 begin
  30.                 a:=a+1;
  31.                 end;
  32.             if k='w' then
  33.                 begin
  34.                 b:=b-1;
  35.                 end;
  36.  
  37.             gotoxy (a,b); writeln ('O');
  38.         until keypressed
  39.         end;
  40. end.
  41.