Mentoss Opublikowano 2 Grudnia 2010 Udostępnij Opublikowano 2 Grudnia 2010 Kod wygląda w ten sposób: GML if not Lp=Lt and not Up=Ut { for(i=0;i<=100;i+=1) {for(j=0;j<=100;j+=1) { if kratka[i,j] { var a, b; a=i+Wh-Lt; b=j+Hh-Ut; soul[a,b]=1; } else { soul[a,b]=0; } // Ustalenie przesuniecia } } } Wszystkie kratki ustawione są na 0, a jednak sprawdza ten kod. Ponadto jak sami widzicie mam tu zdefiniowaną tymczasową a, a błąd brzmi: Unknown variable a O co chodzi i jak temu zaradzić ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 2 Grudnia 2010 Udostępnij Opublikowano 2 Grudnia 2010 Na wszelki wypadek zaznacz treat unitialize variable to 0, czy jakoś tam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 2 Grudnia 2010 Autor Udostępnij Opublikowano 2 Grudnia 2010 ok. nie wywala błędu, a czy działa kod dowiem się później, bo jeszcze nie zrobilem wyswietlania... Problem nr.2: GML for(i=1;i<=99;i+=1) {for(j=1;j<=99;j+=1) /* Petle dla i oraz j dzieki ktorym bedziemy mogli wywolac kratki */ { for(m=-1;m<=1;m+=1) {for(n=-1;n<=1;m+=1) /* dzieki kolejnym petlom dla m oraz n mozna sprawdzic obszar dookola wywolanej kratki */ { ilosc=0; if not m=0 and not n=0 and kratka[i+m,j+n] { ilosc+=1 /* w tymczasowej ilosc przechowujemy dane n.t. ilosci sasiadow */ } } } Jak widać i oraz j są zawsze z przedziału 1 <-> 99, a m i n z przedziału -1 <-> 1. Mimo to "Array index => 32000" chodzi o: if not m=0 and not n=0 and kratka[i+m,j+n] . . . . . . . . . . . . . . . . . . . . . . . .^ EDIT: Wiem o co chodzi, tylko nie wiem dlaczego... Pętla się nie zatrzymuje na 99 tylko leci dalej... do 300 doszedłem i mi się znudziło. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 2 Grudnia 2010 Udostępnij Opublikowano 2 Grudnia 2010 Jeżeli piszesz np. if kratka[i,j], bez znaku "=" i jakiejś wartości po tym to sprawdzasz czy wartość kratka[i,j] jest true, czyli większe od 0.5, więc chyba dlatego Ci się ta pętla wykonuje zbyt często. E: Nie jednak nie, przecież ilosc nie ma nic wspólnego ani z pierwszą ani drugą pętlą. E2:A może masz gdzieś w tym obiekcie inną pętle, w której wykorzystujesz zmienną "j" i "i" i to ta pętla psuje Ci tą. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 2 Grudnia 2010 Autor Udostępnij Opublikowano 2 Grudnia 2010 kratka ma wartość 0 albo 1. Wartość kratki nie ma wpływu na tą pętlę. Wartość i się zwiększa, ale nie zatrzymuje po 99, żeby zacząć od nowa z j=1, tylko idzie, i idzie, i idzie... Edit: teraz zauważyłem... zmienia się i, a j nie, mimo, że to właśnie j powinno najpierw wyjechać do góry Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 2 Grudnia 2010 Udostępnij Opublikowano 2 Grudnia 2010 literówka {for(n=-1;n<=1;m+=1) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 2 Grudnia 2010 Udostępnij Opublikowano 2 Grudnia 2010 Ale to i tak nie rozwiąże problemu, ponieważ nie ma to wpływu na pętle z "i". E: A jaki kod masz przed tym co ukazałeś?(W tym evencie). E2: Spróbuj zmienić nazwę zmiennej "i" na jakąś inną, może zadziała.(Zauważyłem, że w pierwszym kodzie też jej używasz.) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 2 Grudnia 2010 Autor Udostępnij Opublikowano 2 Grudnia 2010 w jakiś sposób miało... przestało, ale jak przywróciłem sobie show_message(), żeby zobaczyć wyniki pętli, to wychodzi coś dziwnego... Edit: a jednak nie... jest gucio. zapomniałem, że kazałem wyświetlać sprawdzane kratki. :)) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 2 Grudnia 2010 Udostępnij Opublikowano 2 Grudnia 2010 Napisz co to Ci pomożemy :) E: Spóźniłem się i post jest bez sensu. (Proszę o usunięcie tego posta.) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 2 Grudnia 2010 Autor Udostępnij Opublikowano 2 Grudnia 2010 nie usuwać... cały czas zostaje problem z nieistniejącym a (ten na górze)... sprawdziłem i wychodzi mi, że on tego a wgl. nie widzi. tak jakbym go nie ustawiał. przy treacie cały czas a=0... a tego nie chcę, bo mi nie będzie wyśrodkowywało kratek :( ( EDIT: HAHAHHAHAHAHAHAHAHHAHHAHAHHA.... Już mam.. dam w e2, żebyście się mogli już wyluzować E2: GML if not Lp=Lt and not Up=Ut { for(i=0;i<=100;i+=1) {for(j=0;j<=100;j+=1) { if kratka[i,j] { var a, b; // TU JEST VAR a=i+Wh-Lt; b=j+Hh-Ut; // I USTAWIANIE soul[a,b]=1; } else // A TU ELSE, CO JEST WYKONYWANE W MOMENCIE, GDY kratka[i,j]=0 :)) { soul[a,b]=0; } } } } Macie w komentarzach :)) Jest dobrze. Bd pisał, jak coś się stanie, a tymczasem wielki THX za pomoc chłopaki :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 3 Grudnia 2010 Autor Udostępnij Opublikowano 3 Grudnia 2010 Niestety nie działa. Szukam od paru godzin, ale nie mogę nic znaleźć... Nie generuje błędów, ale już po pierwszym ruchu mam wszystkie kratki na 0 ustawione: GML /* ----------------------- SEKTOR 1, DZIAL A; SPRAWDZANIE WARTOSCI KOMORKI W NAST. POKOLENIU -------------------*/ for(i=1;i<=49;i+=1) { for(j=1;j<=49;j+=1) /* Petle dla i oraz j dzieki ktorym bedziemy mogli wywolac kratki */ { ilosc=0; for(m=-1;m<=1;m+=1) { for(n=-1;n<=1;n+=1)/* dzieki kolejnym petlom dla m oraz n mozemy sprawdzic obszar dookola wywolanej kratki */ { if kratka[i+m,j+n] { if not m=0 { if not n=0 { ilosc+=1; /* w tymczasowej ilosc przechowujemy dane n.t. ilosci sasiadow */ } } } } } if kratka[i,j] /* w zaleznosci od tego, czy w kratce jest komorka */ { if ilosc=2 or ilosc=3 /* oraz ilosci jej sasiadow */ { nxt[i,j]=1; /* wykonujemy odpowiednie dzialania */ } else { nxt[i,j]=0; } } else { if ilosc=3 { nxt[i,j]=1; } else { nxt[i,j]=0; } } } } /* -------------------------- SEKTOR 1, DZIAL B; ZASTOSOWANIE DO POPRZEDNIEGO DZIALU ----------------------- */ for(i=0;i<=50;i+=1) {for(j=0;j<=50;j+=1) { kratka[i,j]=nxt[i,j]; nxt[i,j]=0; } } P.S.: Wchodzę ze szkolnej biblioteki. Nast. wejście: chwilę po 12:35., Mam nadzieję, że do tej pory uda Wam się coś znaleźć, bo potem na informatyce powinienem to już oddać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 3 Grudnia 2010 Autor Udostępnij Opublikowano 3 Grudnia 2010 sorry za doubla - pojawił się nowy problem sorry za triple'a - odświeżam ten temat... 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ę