Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Delphi] Sprawdzanie czy dana komórka jest zajęta


Rekomendowane odpowiedzi

Opublikowano

Być może problem, który teraz napotkałem jest prosty, lecz z powodu nawału obowiązków

zawodowych nie mam czasu się tym zająć, dlatego chciałbym poznać Wasze zdanie na ten

temat:

 

Problem dotyczy sprawdzania, czy n komórka jest wolna, gdyby to było czyste delphi nie byłoby problemu

ale to programik do Metin2.

 

83204929375958112120.png

 

Niebieska strzałka wskazuje kierunek w którym dodawane są elementy komórki "pos"

(od lewej do prawej).

 

Zielona strzałka wskazuje kierunek, w którym podawany jest rozmiar przedmiotu "size (1 - jedna komórka, 2 - dwie komórki w dól, 3 - trzy komórki w dół)"

 

I teraz najważniejsze pytanie, jak w Delphi (na przykładzie obrazka poniżej) sprawdzić, czy komórka

(w tym przypadku oznaczona czarnym znamieniem) jest pusta, czy też nie, a jeżeli jest zajęta to pominąć to pole?

 

63640952310980561718.png

 

Objaśnienie:

Zielona kropka, obiekt o rozmiarze 1, czerwona kropka, obiekt o rozmiarze 2

 

59649524317135950350.png

Opublikowano

 

var i: integer;
begin
  for i:=0 to 44 do
    if (pos[i] <> 0) then //o ile oznaczenie pustej komórki to 0
    begin
      //rób coś
    end;
end;

Hmm, czyżby w if'ie powinno być pos+1 (jeśli wykryje, że komórka jest pełna?

59649524317135950350.png

Opublikowano

jeśli wykryje, że komórka jest pełna, to w ifie dalej będzie pos <> 0

 

tak serio to musiałem to przeczytać 14 razy, żeby zrozumieć o co ci chodzi.

jak chcesz sprawdzić czy jest pusta to robisz warunek

 

pos[i] = 0

jeśli będzie pusta, to sprawdzasz dalej, czy poniżej też jest puste pole

pos[i+5]=0

jak tak, to znaczy, że jest puste i możesz wyjść z pętli breakiem czy co tam jest w tym delphi, a jak nie to pętla for przejdzie do sprawdzania następnego pola

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...