Skocz do zawartości

Reakcja łańcuchowa


Rekomendowane odpowiedzi

Witam. Posiadam tabelę 5x5. Przypisane są do niej liczby z przedziału 1-10. Poszukuję najprostszego sposobu na sprawdzenie ile liczb takich samych obok siebie. Może pokaże na przykładzie kółek i krzyżyków.

_____

|XOXO|

|XXOX|

|XOXX|

|XXOO|

Wyraźnie widać tutaj że pogrubiłem 6 krzyżyków. Chciałbym sprawdzić w najprostszy sposób ile ich jest i w na jakich pozycjach. Może podkreślę tutaj że potrzebuję wyświetlić wynik tylko dla tych których łączna liczba jest większa od 4, ale to z pewnością nie będzie problemem po rozwiązaniu tego powyżej.

 

Mam nadzieję że wszystko jasno objaśniłem.

Proszę o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Dla tablicy 5x5.

Uznajmy, że liczba dla takiego krzyżyka to 2.

GML
liczbakrzyzykow=0;

for(i=0;i<5;i+=1)

{

pozycjex=0;//deklaracja tablicy

pozycjey=0;//deklaracja tablicy

}

for(i=0;i<5;i+=1)

for(j=0;j<5;j+=1)

{

if tablica[i,j]=2

{

liczbakrzyzykow+=1;

pozycjex[2]=i;

pozycjey[2]=j;

}

}

Pokombinuj ;P

Sorki nie doczytałem posta. To źle będzie. Zaraz postaram się coś wymyślić.

 

@EDIT Zobacz to: http://pl.wikipedia.org/wiki/Przeszukiwanie_wszerz, ale nie wiem czy to będzie to.

Odnośnik do komentarza
Udostępnij na innych stronach

Może jednak to źle opisałem xD

W tym przykładzie są tylko np: kołka - 0 i krzyżyki 1. Pogrubione krzyżyki są to te same krzyżyki co nie pogrubione. Ja po prostu poszukuję tych pogrubionych. Poszukuję łańcucha tej samej zmiennej, gdzie każda kolejna wartość musi przylegać w tej tablicy tylko poziomo lub pionowo. Jako że poszukuję tylko tych łańcuchów gdzie ich liczba jest większa niż 4 zaznaczyłem je, dla przejrzystości całego przykładu.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
nr=o;

y=0;

x=0;

while (1)

{

while (1)

{

if (tablica[x,y]==tablica[x,y+1])

{

y+=1;

nr+=1;

}

else

{

y=0;

break;

}

}

if (tablica[x,y]==tablica[x+1,y])

{

x+=1;

nr+=1;

}

else

{

if (nr>4)

return nr;

else

return 0;

}

}

Jakoś tak powinno grać.

Odnośnik do komentarza
Udostępnij na innych stronach

ODŚWIEŻAM TEMAT!

Zadziałało :S???

Wymyśliłem dobry sposób, ale nie wiem czemu nie działa :(

GML
for (i=3;i<8;i+=1)

{

for (p=3;p<8;p+=1)

{

 

if global.tab[i,p] = 11

{

nr+=1

if global.tab[i+1,p] = 11

{

nr += 1

if global.tab[i+2,p] = 11

{

nr += 1

if global.tab[i+3,p] = 11 {nr += 1}

if global.tab[i+2,p+1] = 11 {nr += 1}

if global.tab[i+2,p-1] = 11 {nr += 1}

}

if global.tab[i+1,p+1] = 11 {nr += 1}

if global.tab[i+1,p-1] = 11 {nr += 1}

} //Reszta wygląda tak samo tylko z innymi wartościami

if global.tab[i,p+1] = 11

{

nr += 1

if global.tab[i-1,p+1] = 11 {nr += 1}

if global.tab[i,p+2] = 11

{

nr += 1

if global.tab[i,p+3] = 11 {nr += 1}

if global.tab[i-1,p+2] = 11 {nr += 1}

if global.tab[i+1,p+2] = 11 {nr += 1}

}

if global.tab[i+1,p+1] = 11 {nr += 1}

}

if global.tab[i-1,p] = 11

{

nr += 1

if global.tab[i-2,p] = 11

{

nr += 1

if global.tab[i-3,p] = 11 {nr += 1}

if global.tab[i-2,p+1] = 11 {nr += 1}

if global.tab[i-2,p-1] = 11 {nr += 1}

}

if global.tab[i-1,p+1] = 11 {nr += 1}

if global.tab[i-1,p-1] = 11 {nr += 1}

}

if global.tab[i,p-1] = 11

{

nr += 1

if global.tab[i-1,p-1] = 11 {nr += 1}

if global.tab[i,p-2] = 11

{

nr += 1

if global.tab[i,p-3] = 11 {nr += 1}

if global.tab[i-1,p-2] = 11 {nr += 1}

if global.tab[i+1,p-2] = 11 {nr += 1}

}

if global.tab[i+1,p-1] = 11 {nr += 1}

}

if nr <= 3

{

global.tab[i,p] = 1

}

}

show_message(string(nr)+" "+string(i)+","+string(p))

nr=0;

}

 

 

}

 

Nie wiem czemu nie sprawdza mi wszystkich kombinacji jakie ustaliłem, a czasami nawet za dużo :(

Głównie ma problemy z tymi kombinacjami w lewo.

Proszę o pomoc.

Zadziałało?? Nie wiem dlaczego, podczas pokazywania wiadomości nie uwzględnia wszystkiego... A po wykonaniu wszystkiego wartości układają się dobrze...

 

EDIT:

A jednak. Większość kombinacji działa dobrze, ale 70% poprawności to nie jest to o co mi chodzi.. ;(

EDIT2:

Wszystko jasne, za mało argumentów. Wszystko będzie grać jak dopisze więcej :) Napiszę jak to wygląda pod koniec xD

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ę...