[TP] Poruszanie się po tablcy wielowymairowej....

0

Witam,

Mam za zadanie napisać gierkę w pascalu, która ma za zadanie wyjść z labiryntu... 0 - puste miejsca, 1 ściany.... 3 pionek... I teraz mam pytanko... Jak powinien wyglądać warunek, tak, żeby po naciśnięciu np strzałki w górę miejsce gdzie się znajduje 3 (załóżmy, że w centrum) stało się 0 i przesunęło o 1 do góry?
Póki co to takie coś napisałem, ale to nie działa... mogę prosić o jakąś podpowiedz? Niestety to co napisałem nie działa... Znaczy się 3 staje się 0, ale komórka znajdująca się powyżej nadal jest zerem...

 Znak := ReadKey;

  for I := 1 to 10 do
  begin
    for J := 1 to 10 do
      if ((Upcase (Znak) = 'W') and (Tab [I, J] = 3)) then
      begin
        Tab [I, J] := 0;
        Tab [I+1, J] := 3;
        GotoXY (I*4, J);
        Writeln (Tab [I, J]);
      end;
   end;
end;

Z góry dziękuje za odpowiedz...

0

a jak dodasz
gotoxy((i+1)*4, j);
write(tab[i+1, j]);
?

0

Całość zapisałbym inaczej:

x:=1; y:=1;
tab[x,y]:=3;
repeat
    gotoxy(1, 1);
    for i:=1 to 10 do begin
          for j:=1 to 10 do
                write(tab[i, j]:2);
          writeln
    end;
    znak:=upcase(readkey);
    x1:=x; y1:=y;
    case znak of
         'W': if y<10 then y1:=y+1;
         'A': if x>1 then x1:=x-1;
         .......
    end;
    tab[x,y]:=0;
    tab[x1, y1]:=3;
    x:=x1; y:=y1;
until znak=^[
0

Dziękuje za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1