Gothic Online Forums
Pętla while zawiesza grę - Printable Version

+- Gothic Online Forums (https://archive.gothic-online.com)
+-- Forum: Community (https://archive.gothic-online.com/forum-18.html)
+--- Forum: Polish (Polski) (https://archive.gothic-online.com/forum-19.html)
+---- Forum: Pomoc (https://archive.gothic-online.com/forum-23.html)
+---- Thread: Pętla while zawiesza grę (/thread-1212.html)



Pętla while zawiesza grę - muu - 08.03.2016

Quote:                    do
                    {
                        for(local i = 0; i < 5; ++i)
                        {
                                if(sort[i+1] < sort[i]) 
                                {
                                    
                                    sort2 = sort[i];
                                    sort[i] = sort[i+1];
                                    sort[i+1] = sort2;
                                
                                }
                                else checkSort[i]=true;
                        }        
                    }while(checkSort[0]==true && checkSort[1]==true && checkSort[2]==true ....)


Po zastosowaniu pętli while gra się zawiesza. Co jest nie tak?


RE: Pętla while zawiesza grę - Ignisio - 08.03.2016

Squirrel Script
  1.                     do
  2.                     {
  3.                         for(local i = 0; i < 5; ++i)
  4.                         {
  5.                                 if(sort[i+1] < sort)  //Sort i sort? Przecież to nie może mieć takich samych nazw. Nawet, jeśli jeden sort jest tabelą/tablicą, drugie to zmienna
  6.                                 {
  7.                                     
  8.                                     sort2 = sort; //Czy tutaj właśnie chciałeś przypisać całą tabelę sory do zmiennej sort2?
  9.                                     sort = sort[i+1]..Wtf? PO lewo masz samo sort(skoro to tabela, to nie może egzystować bez indexu) i przypisujesz tutaj pole z tej tabeli.
  10.                                     sort[i+1] <- sort2; //Względnie dobrze, jak dodajesz coś do pola w tabeli, to musi być strzałeczka.
  11.                                 
  12.                                 }
  13.                                 else checkSort=true;
  14.                         }        
  15.                     }while(checkSort[0]==true && checkSort[1]==true && checkSort[2]==true ....)





RE: Pętla while zawiesza grę - muu - 08.03.2016

Grzebałem w BBCode, bo chciałem podkreślić jedną rzecz i usunęło mi "[i]" z tego powodu, że BBCode kursywy to też "[i]".
Ale problem nie dotyczy kodu w pętli, który działa, tylko crashującej while.

//poprawiłem, jakby ktoś chciał użyć u siebie. Sortuje liczby z wybranej tablicy w kolejności rosnącej.


RE: Pętla while zawiesza grę - Bimbol - 08.03.2016

While widocznie idzie w nieskończoność dlatego gra się zawiesza.
Ogółem sortowanie bąbelkowe,  nie jest zbyt dobre dla większej ilości danych. Za długo to trwa.


RE: Pętla while zawiesza grę - Ignisio - 08.03.2016

Zrób coś dla mnie. Bo ja mam praktycznie to samo co ty. Wpisz jakieś 5 liczby od 1-10 i daj jedną dużą tak ponad 100.
Dobrze ci wtedy sortuje?


RE: Pętla while zawiesza grę - muu - 08.03.2016

Działa.