Exigo Opublikowano 2 Czerwca 2012 Udostępnij Opublikowano 2 Czerwca 2012 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 Więcej opcji udostępniania...
ediepl Opublikowano 2 Czerwca 2012 Udostępnij Opublikowano 2 Czerwca 2012 Pod rząd czy ogólnie w całej siatce? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 2 Czerwca 2012 Autor Udostępnij Opublikowano 2 Czerwca 2012 Oczywiście że pod rząd. Nie wiem skąd to pytanie. Powtórzę słowo klucz: "Match 3". 3 elementu, lub więcej. W jednym wymiarze. ; ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 2 Czerwca 2012 Udostępnij Opublikowano 2 Czerwca 2012 GML tablica[x, y] = irandom(6); // tablica z obiektami tablica2[rzad, typ] = 0; //pomocnicza tablica do zapisywania wyniku for(i = 0; i<=x; i+=1) { for(j = 0; j<=y; j+=1) { tablica2[x , tablica[x, y] ] += 1; } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karolo320 Opublikowano 2 Czerwca 2012 Udostępnij Opublikowano 2 Czerwca 2012 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 Więcej opcji udostępniania...
Maximal Opublikowano 2 Czerwca 2012 Udostępnij Opublikowano 2 Czerwca 2012 Niedawno przykładem rzucałem: https://gmclan.org/up353_12_polacz_kulki_przyklad.html. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę