• Domingo 22 de Diciembre de 2024, 20:38

Autor Tema:  juego de la vibora, solo me falta que coma y crezca, ayudenm  (Leído 1825 veces)

LuisMiguelF

  • Nuevo Miembro
  • *
  • Mensajes: 2
  • Nacionalidad: ve
    • Ver Perfil
juego de la vibora, solo me falta que coma y crezca, ayudenm
« en: Martes 14 de Junio de 2011, 04:47 »
0
program Proyecto;
uses crt;
const
   LARGO=10;
   ANCHO=15;
   MAX_TAM=20;
  type
   serpiente=record
      tam:integer;
      fil:array [1..MAX_TAM] of integer;
      col:array [1..MAX_TAM] of integer;
   end;
 direccion=(izq,der,ar,ab);

 var
 culebra:serpiente;
   lector:char;

  procedure dibujar_marco(x:integer;y:integer);
      var
         j,i:integer;
      begin
         for i:=x-1 to x+ANCHO+1 do
            for j:=y-1 to y+LARGO+1 do
               if( (i=x-1) or (j=y-1) or (i=x+ANCHO+1) or (j=y+LARGO+1)) then
                  begin
                     gotoxy(i,j);
                            textcolor(12);
                     writeln('°');
                  end;
      end;
 procedure limpiar_rastro(var cul:serpiente);
         var
            i,j:integer;
         begin            
                     gotoxy(cul.fil[cul.tam],cul.col[cul.tam]);
                     write(' ');            
         end;
   procedure desplazar(var cul:serpiente; nfil:integer; ncol:integer);
         var
            i,j,aux:integer;
            
         begin         
            for i:=cul.tam downto 1 do                
                  if( (i<>1))then
                     begin
                           aux:=cul.fil[i-1];
                           cul.fil:=aux;   
                           
                           aux:=cul.col[i-1];
                           cul.col:=aux;                           
                     end;
                     
                     
               cul.fil[1]:=nfil;
               cul.col[1]:=ncol;
               
         end;

    procedure refrescar_serpiente(var cul:serpiente);
         var
            i:integer;
         begin
            for i:=1 to cul.tam do               
               begin
                  gotoxy(cul.fil,cul.col);
                        textcolor(14);
                  write('*')
               end;
               
         end;
   procedure avanzar(pos:direccion;var cul:serpiente);
         begin
         limpiar_rastro(cul);
         
            if(pos=ar)then
               begin
                  desplazar(cul,cul.fil[1],cul.col[1]-1);
               end;
               
            if(pos=ab)then
               begin
                  desplazar(cul,cul.fil[1],cul.col[1]+1);
               end;
               
            if(pos=der) then
               begin
                  desplazar(cul,cul.fil[1]+1,cul.col[1]);
               end;
               
            if(pos=izq) then
               begin
                  desplazar(cul,cul.fil[1]-1,cul.col[1]);
               end;      
               refrescar_serpiente(cul);
         end;


  procedure comida;
var
x,y:integer;
begin
x:=45;
y:=10;

        gotoxy(x,y);
        textcolor(14);
        write('*');

END;

  procedure veneno;
begin
    randomize;
    begin
    gotoxy(36,10);
    textcolor(green);
    write('+');
    end;
end;

     procedure menu;
 var
   lector:char;
BEGIN
lector:='a';
   while(lector<>'f')do
      begin
         clrscr;
         textcolor(14);
            gotoxy(30,5);
         writeln('1.-jugar');


            lector:=readkey;
         clrscr;         
         if(lector='1')then
            begin               
                clrscr;
                gotoxy(30,5);
                textcolor(14);
                writeln('1.-elegir niveles');
                lector:=readkey;
            end;
            
         if(lector='1')then
            begin
                    clrscr;
               gotoxy(30,5);
               textcolor(14);
               writeln('1.- Facil');
                    gotoxy(30,6);
                    writeln('2.- Medio');
                    gotoxy(30,7);
                    writeln('3.- Dificil');
                    lector:=readkey;
                      if (lector='1') then
                       begin
                       clrscr;
                       dibujar_marco(35,5);
                       culebra.fil[1]:=40;
                       culebra.col[1]:=9;
                      culebra.fil[2]:=40;
                      culebra.col[2]:=10;
                      culebra.fil[3]:=40;
                      culebra.col[3]:=11;
                       culebra.fil[4]:=40;
                      culebra.col[4]:=12;
                      culebra.fil[5]:=40;
                      culebra.col[5]:=13;


   
                       culebra.tam:=2;
   refrescar_serpiente(culebra);
      
   while(not false)do
      begin
         lector:=readkey;
         if(lector='w')then
            avanzar(ar,culebra);
            if(lector='s')then
            avanzar(ab,culebra);
            if(lector='a')then
            avanzar(izq,culebra);
            if(lector='d')then
            avanzar(der,culebra);
                comida;
                veneno;

        end;
      
                       lector:=readkey;
                       end;
                        if (lector='2') then
                        begin
                        clrscr;
                       dibujar_marco(35,5);
                       culebra.fil[1]:=40;
                       culebra.col[1]:=9;
                      culebra.fil[2]:=40;
                      culebra.col[2]:=10;
                      culebra.fil[3]:=40;
                      culebra.col[3]:=11;
                      culebra.fil[4]:=40;
                      culebra.col[4]:=12;
                      culebra.fil[5]:=40;
                      culebra.col[5]:=13;

   
                       culebra.tam:=2;
   refrescar_serpiente(culebra);
   
   
      
   while(not false)do
      begin
         lector:=readkey;
         if(lector='w')then
            avanzar(ar,culebra);
            if(lector='s')then
            avanzar(ab,culebra);
            if(lector='a')then
            avanzar(izq,culebra);
            if(lector='d')then
            avanzar(der,culebra);
                comida;
                veneno;
        end;
      
                       lector:=readkey;
                       end;
                        end;
                         if (lector='3') then
                         begin
                          clrscr;
                       dibujar_marco(35,5);
                       culebra.fil[1]:=40;
                       culebra.col[1]:=9;
                      culebra.fil[2]:=40;
                      culebra.col[2]:=10;
                      culebra.fil[3]:=40;
                      culebra.col[3]:=11;
                      culebra.fil[4]:=40;
                      culebra.col[4]:=12;
                      culebra.fil[5]:=40;
                      culebra.col[5]:=13;
   
                       culebra.tam:=2;
   refrescar_serpiente(culebra);
   
   
      
   while(not false)do
      begin
         lector:=readkey;
             if(lector='w')then
            avanzar(ar,culebra);
            if(lector='s')then
            avanzar(ab,culebra);
            if(lector='a')then
            avanzar(izq,culebra);
            if(lector='d')then
            avanzar(der,culebra);
                comida;
                veneno;
        end;
      
                       lector:=readkey;
                       end;
                         end;

            end;

begin
menu;
end.