Matrix_ Opublikowano 1 Czerwca 2015 Udostępnij Opublikowano 1 Czerwca 2015 Pobawiłem się trochę tymi listami, tylko nie do końca mi to działa jak trzeba. Obrazek nie pasuje mi do odpowiedzi. Mógłby ktoś zerknąć gdzie popełniłem błąd ? W Pliku ini obrazek jest odnosniiem do opisu znaku, czyli anserw1 to obrazek image1.. GML if newtest=1{ checktext="" choosed=0 ini_open("test.ini") question="Co to za znak?" count=ini_read_real('anserws','anserwcount',0) var i; for( i = 1; i <= count; i++ ) { ds_list_add(global.list,i)} ds_list_shuffle(global.list) numbchoosd=irandom(4) num1=ds_list_find_value(global.list,0) num2=ds_list_find_value(global.list,1) num3=ds_list_find_value(global.list,2) num4=ds_list_find_value(global.list,3) numi=ds_list_find_value(global.list,numbchoosd) anserw1=ini_read_string('anserws','anserw'+string(num1),"Error") anserw2=ini_read_string('anserws','anserw'+string(num2),"Error") anserw3=ini_read_string('anserws','anserw'+string(num3),"Error") anserw4=ini_read_string('anserws','anserw'+string(num4),"Error") imagenumb=ini_read_real('questions','image'+string(numi),0) goodanserw=numbchoosd good=goodanserw ini_close() newtest=0 } I plik ini: GML [anserws] anserwcount=8 anserw1=Droga jednokierunkowa anserw2=Przejscie dla pieszych anserw[...] [questions] image1=23 image2=27 iamge[...] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 1 Czerwca 2015 Udostępnij Opublikowano 1 Czerwca 2015 Inb4 threef rzuca miesem bo INI. Laduj dane do ds_list, potem uzyj ds_list_shuffle zeby wymieszac liste. Wymieszana lista to Twoja losowa kolejnosc. Cała idea tego jak próbujesz to wykonać jest słaba. Nie chce mi się pisać, więc zaczekaj na któregoś z bardziej pomocnych. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 1 Czerwca 2015 Udostępnij Opublikowano 1 Czerwca 2015 Zrób każdy tekst w osobnym pliku INI, a po odczytaniu usuwaj plik. :unsure: Nie zapomnij sprawdzać czy plik istnieje żeby nie było błędu! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 1 Czerwca 2015 Autor Udostępnij Opublikowano 1 Czerwca 2015 Inb4 threef rzuca miesem bo INI. Laduj dane do ds_list, potem uzyj ds_list_shuffle zeby wymieszac liste. Wymieszana lista to Twoja losowa kolejnosc. Cała idea tego jak próbujesz to wykonać jest słaba. Nie chce mi się pisać, więc zaczekaj na któregoś z bardziej pomocnych. Coś jak: GML count=ini_read_real('anserws','anserwcount',0); queastions=ds_list_create() int i; for( i = 1; i <= count; i++ ) { var t; t=ini_read_string('anserws','anserw'+string(i),"Error")} ds_list_add(questions, t); t=0; } if teststart=1{ ds_list_shuffle(queastions); message1=ds_list_read(questions, 1); message2=ds_list_read(questions, 2); message3=ds_list_read(questions, 3); message4=ds_list_read(questions, 4); teststart=0} Pierwszy raz używam ds_list. Wcześniej jakoś tego nie potrzebowałem... Więc mogłem popełnić błąd. Zrób każdy tekst w osobnym pliku INI, a po odczytaniu usuwaj plik. :unsure: Nie zapomnij sprawdzać czy plik istnieje żeby nie było błędu! Robienie 50 plików będzie marnowało dużo czasu. Poza tym, on ma czytać przy każdym uruchomieniu apliakcji Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 6 Czerwca 2015 Autor Udostępnij Opublikowano 6 Czerwca 2015 Pobawiłem się trochę tymi listami, tylko nie do końca mi to działa jak trzeba. Obrazek nie pasuje mi do odpowiedzi. Mógłby ktoś zerknąć gdzie popełniłem błąd ? GML if newtest=1{ checktext="" choosed=0 ini_open("test.ini") question="Co to za znak?" count=ini_read_real('anserws','anserwcount',0) var i; for( i = 1; i <= count; i++ ) { ds_list_add(global.list,i)} ds_list_shuffle(global.list) numbchoosd=irandom(4) num1=ds_list_find_value(global.list,0) num2=ds_list_find_value(global.list,1) num3=ds_list_find_value(global.list,2) num4=ds_list_find_value(global.list,3) numi=ds_list_find_value(global.list,numbchoosd) anserw1=ini_read_string('anserws','anserw'+string(num1),"Error") anserw2=ini_read_string('anserws','anserw'+string(num2),"Error") anserw3=ini_read_string('anserws','anserw'+string(num3),"Error") anserw4=ini_read_string('anserws','anserw'+string(num4),"Error") imagenumb=ini_read_real('questions','image'+string(numi),0) goodanserw=numbchoosd good=goodanserw ini_close() newtest=0 } I plik ini: GML [anserws] anserwcount=8 anserw1=Droga jednokierunkowa anserw2=Przejscie dla pieszych anserw[...] [questions] image1=23 image2=27 iamge[...] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 11 Czerwca 2015 Udostępnij Opublikowano 11 Czerwca 2015 Zdecydowanie w złym miejscu kończysz for. Zamykasz plik ini w każdym obrocie, goodanswerw i good nie są używane. Tzn. nadpisujesz je cały czas i nigdzie nie wyprowadzasz tych danych. PS. Nie ważne, nie zauważyłem nawiasu po dodawaniu na listę. PS2. Może kłopot w tym, że w kodzie numerujesz od 0 a w ini od 1. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 12 Czerwca 2015 Udostępnij Opublikowano 12 Czerwca 2015 Polecam zrezygnować z INI, na rzecz formatu JSON. http://docs.yoyogames.com/source/dadiospic...son_decode.html Answer definiuj w pliku json jako tablicę. Pobierz tablicę i użyj na niej ds_list_shuffle. Pobieranie kolejno indeksowanych wartości i++ to Twoje losowe odpowiedzi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 13 Czerwca 2015 Autor Udostępnij Opublikowano 13 Czerwca 2015 Zdecydowanie w złym miejscu kończysz for. Zamykasz plik ini w każdym obrocie, goodanswerw i good nie są używane. Tzn. nadpisujesz je cały czas i nigdzie nie wyprowadzasz tych danych. PS. Nie ważne, nie zauważyłem nawiasu po dodawaniu na listę. PS2. Może kłopot w tym, że w kodzie numerujesz od 0 a w ini od 1. Problem był w tym, że gdzieś zrobiłem losowanie 3 liczb, a odpowiedzi losowały się do 4 więc dostawałem ciągle o 1+ numer odpowiedzi... goodanserw i good, są oba używane w kodzie obok. Polecam zrezygnować z INI, na rzecz formatu JSON. http://docs.yoyogames.com/source/dadiospic...son_decode.html Answer definiuj w pliku json jako tablicę. Pobierz tablicę i użyj na niej ds_list_shuffle. Pobieranie kolejno indeksowanych wartości i++ to Twoje losowe odpowiedzi. Dopiero co poznałem tablice, bo jakoś od 5 lat ich niem potrzebowałem, a pewne rzeczy zrobiłbym teraz 5 razy szybciej... Jak w całości będę wykorzystywał ds_list, to zerknę na JSON. Dzięki ! 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ę