Skocz do zawartości

Ciągi elementów w siatce


Exigo

Rekomendowane odpowiedzi

Mamy siatkę / planszę (prostokąt), przykładowo o rozmiarze x na y, oraz n-ilość obiektów (nie koniecznie wszystkie sloty siatki są przez nie zajęte), które posiadają po 3 informacje:

- przynależność do slotu w siatce x,

- ...w y,

- oraz typ elementu (np. 0, 1, 2, 3, etc.)

Teraz powiedzcie mi, jak zwrócić informacje, czy w "siatce" (i gdzie), występują ciągi takich samych elementów. Coś jak <dosłownie> z gry typu match 3.

Jakieś pomysły? ^^

 

(siatka w pewnym sensie nie istnieje: pojęcie zostało użyte żeby zobrazować sposób położenia elementów)

Odnośnik do komentarza
Udostępnij na innych stronach

ulomnie, bo sprawdza najpierw w szerz, a potem w zdluz, zamiast jakoś po ludzku, ale inaczej nie umiem

GML
now=-1

combo=0

znalezione=-1

for(x=0;x<=szerokosc;x+=1){

combo=0

now=-1

for(y=0;y<=dlugosc;y+=1){

if(tablica[x,y]==now){

combo+=1

if(combo>=3){

znalezione+=1

znaleziony[znalezione,0]=x//przykladowy zapis od do

znaleziony[znalezione,1]=y-combo+1

znaleziony[znalezione,0]=x

znaleziony[znalezione,1]=y

combo=0

now=-1

}

}else{

now=tablica[x,y]

combo=1

}

}

}

for(y=0;y<=dlugosc;y+=1){

combo=0

now=-1

for(x=0;x<=szerokosc;x+=1){

if(tablica[x,y]==now){

combo+=1

if(combo>=3){

znalezione+=1

znaleziony[znalezione,0]=x//przykladowy zapis od do

znaleziony[znalezione,1]=y-combo+1

znaleziony[znalezione,0]=x

znaleziony[znalezione,1]=y

combo=0

now=-1

}

}else{

now=tablica[x,y]

combo=1

}

}

}

nie sprawdzalem czy dziala :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...