Ejemplo que genera burbujas y se van reproduciendo segun condiciones
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | program ejemplo2; uses crt,graph; {$R+} type sentido = (arr,aba,izq,der); burbuja = object private color,fil,col:integer; tam:word; public procedure ponColor(deQueColor:integer);virtual; function tenColor:integer;virtual; procedure moverxy(x,y:integer);virtual; procedure mover(haciaDonde:sentido);virtual; procedure moverConPendiente(factorX,factorY,PixRecorridos:integer;signo:boolean);virtual; constructor creaBurbuja(coleur,filx,coly,size:integer); destructor limpiaBurbuja(size,filx,coly:integer); end; ptrBurbuja = ^burbuja; {**************************************}var B1,B2,B3,B4 : ptrBurbuja; fondo,gd,gm,i,j:integer; {******************************************************************} constructor burbuja.creaBurbuja(coleur,filx,coly,size:integer); begin color:=coleur; setColor(color); fil:=filx; col:=coly; tam:=size; circle(fil,col,tam); end; destructor burbuja.limpiaBurbuja; begin setColor(fondo); circle(fil,col,tam); end; procedure burbuja.ponColor(deQueColor:integer); begin color:=deQueColor end; function burbuja.tenColor:integer; begin tenColor:=color end; procedure burbuja.moverxy(x,y:integer); begin SetColor(fondo); circle(fil,col,tam); fil := x; col := y; SetColor(color); circle(fil,col,tam); end; procedure burbuja.moverConPendiente(factorX,factorY,PixRecorridos:integer;signo:boolean); var i:integer; begin for i:=1 to pixRecorridos do begin setColor(fondo); circle(fil,col,tam); setColor(color); if(signo) then begin fil := fil + factorX; col := col + factorY; circle(fil,col,tam); end else begin fil := fil - factorX; col := col - factorY; circle(fil,col,tam) end; delay(50); end; end; procedure burbuja.mover(haciaDonde:sentido); var a:String[10]; begin SetColor(fondo); str(fil,a); circle(fil,col,tam); if(haciaDonde=der) then fil := fil+1; if(haciaDonde=izq) then fil := fil-10; if(haciaDonde=aba) then col := col+10; if(haciaDonde=arr) then col := col-10; SetColor(color); str(fil,a); circle(fil,col,tam); end; PROCEDURE MAPA; begin SetColor(green); end; BEGIN gd:=Detect; InitGraph(gd,gm,'C:lenguaBGI'); if GraphResult <> GrOk then halt(1); fondo:=white; setBKcolor(fondo); mapa; new(B1,creaBurbuja(yellow,200,100,50)); {B1.creaBurbuja(yellow,200,100,50);} readkey; B1^.mover(aba); readkey; new(B2,creaBurbuja(red,200,200,50)); {B2.creaBurbuja(red,200,200,50);} readkey; for i := 1 to 200 do BEGIN DELAY(15); B2^.mover(der) END; B2^.moverConPendiente(3,4,200,false); readkey; dispose(B1); dispose(B2); END. |
¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)
Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.
Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:
- Si es lenguaje C <code lang="c">Código en C</code>
- Si es lenguaje Pascal <code lang="pascal">Aquí dentro el código de Pascal</code>.
De esta manera el código coloreas el código.
Otro punto importante para muchos que crees que te he ignorado: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:Me reservo el derecho de alterar, publicar o no los comentarios así como también cambiar mis condiciones en el momento que yo lo requiera.
¿Si estas de acuerdo? Adelante! que ya te he quitado bastante tiempo leyendo esta basura :)