• Viernes 26 de Abril de 2024, 21:05

Autor Tema:  Movimiento De Caracter  (Leído 1238 veces)

ami.bea

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Movimiento De Caracter
« en: Miércoles 26 de Diciembre de 2007, 20:53 »
0
Hola. Necesito una persona que por favor me pueda ayudar  quiero hacer que el caracter del procedimiento "movimiento"  se mueva dentro y no despues de la matriz que esta en EL primer procedimiento de mi codigo que como ven son caracteres que estan aleatoriamente posicionados en una matriz de 15x40. Entonces no logro que el caracter se mueva dentro de la misma matriz donde estan los caracteres aleatorios.. Gracias y disculpe la molestia  :rolleyes:



codigo fuente:

program caracter_en_movimiento;
uses crt;
const
fila=15;
columna=40;
basuranegra=10;

type
matriz= array [1..fila,1..columna]of char;

var
matrizprincipal: matriz;

{PROCEDIMIENTOS}

{INICIA LA MATRIZ}
procedure inicia(var matrizprincipal: matriz);
var
i,j: integer;
begin

for i:=1 to fila do
begin
for j:=1 to columna do
begin
matrizprincipal[i,j]:=' ';
write(matrizprincipal[i,j]);
end;
end;
end;


{CARGA CARACTERES NEGROS}
procedure basuran(var matrizprincipal:matriz);
var
z,j,i: integer;
boo: boolean;  
color:integer;
begin

for z:=1 to basuranegra do
begin
boo:= false;
repeat

i:= random(fila);
gotoxy(i,j);
j:= random(columna);
gotoxy(i,j);
if matrizprincipal[i,j]= ' ' then
begin
textcolor(black);
matrizprincipal[i,j]:='#';
gotoxy(i,j);
writeln(' #');
boo:= true;
end;
until boo= true;
end;
end;

{PROCEDIMIENTO QUE REALIZA EL MOVIMIENTO DEL CARACTER}
procedure movimiento(var matrizprincipal:matriz);
var
i,j: integer;
begin
for i:= 1 to fila do
begin
clrscr;
for j:=1 to columna do
begin
delay(10);
gotoxy(i,j+1);
matrizprincipal[i,j]:='';
gotoxy(i,j+1);
write('');
readkey;
end;
end;
end;
{PROGRAMA PRINCIPAL}
begin
textbackground(magenta);
clrscr;
inicia(matrizprincipal);
basuran(matrizprincipal);
readkey;
movimiento(matrizprincipal);
end.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Movimiento De Caracter
« Respuesta #1 en: Jueves 27 de Diciembre de 2007, 14:07 »
0
¿Que tipo de movimiento buscas? Si lo que necesitas es algo paracido al movimiento de la pelota en el juego PONG, el codigo de movimiento sería:
Código: Text
  1.  
  2. var
  3.    X,Y: Integer;
  4.    dirX, dirY: Boolean;
  5. begin
  6.   repeat
  7.     if dirX then
  8.        X := X + 1
  9.     else
  10.        X := x -1;
  11.     if dirY then
  12.        Y := Y +1
  13.     else
  14.        Y := Y-1;
  15.  
  16.     if X > MAX_X then
  17.       dirX := false
  18.    else if X < 0 then
  19.       dirX := True;
  20.    if Y > MAX_Y then
  21.       dirY := false
  22.    else if Y < 0 then
  23.       dirY := true;
  24.   until fin;
  25. end;
  26.  
  27.  
X e Y son las coordenadas del caracter dentro de la matriz.