ďťż

Ładny brzuch

Wiem, jakie funkcje służą do tego (randomize; random). Nie wiem, jak to jednak użyć w praktyce.

Przy każdej odpowiedzi nowe pytania i odpowiedzi są odczytywane z pliku .ini (mogę jeszcze to zmienić, by wczytywały się do pamięci przy nowej grze).

Jeśli będę zapisywał pytania, które były wyświetlane, a przy losowaniu sprawdzał, czy wylosowane było czy też nie, pod koniec gry pytania będą się długo wyświetlały (aż program natrafi np. na numer jednego pozostałego pytania).

Czy sprawę rozwiązałoby zapisywanie pytań i odpowiedzi do tablic przy nowej grze? Czy też trzeba coś innego zrobić?
Jak więc to powinno być?




Wiem, jakie funkcje służą do tego (randomize; random). Nie wiem, jak to jednak użyć w praktyce.

Przy każdej odpowiedzi nowe pytania i odpowiedzi są odczytywane z pliku .ini (mogę jeszcze to zmienić, by wczytywały się do pamięci przy nowej grze).

Jeśli będę zapisywał pytania, które były wyświetlane, a przy losowaniu sprawdzał, czy wylosowane było czy też nie, pod koniec gry pytania będą się długo wyświetlały (aż program natrafi np. na numer jednego pozostałego pytania).

Czy sprawę rozwiązałoby zapisywanie pytań i odpowiedzi do tablic przy nowej grze? Czy też trzeba coś innego zrobić?
Jak więc to powinno być?

A można jeszcze prościej, wykorzystując strukturę TStrings (obecną np. w TMemo lub TListBox). Dla uproszczenia przykład na TListBox.
wczytanie pytań z pliku:
ListBox1.Items.LoadFromFile('nazwa_pliku_z_pytaniami.txt');
Później wystarczy losować pytanie, wyświetlić je np. w TLabel i... usunąć z TListBox - i tak aż do wyczerpania wszystkich pytań :)
procedure wylosuj_pytanie; var  i: Integer; begin  //losowanie tylko z dostępnego zakresu  i := Random(ListBox1.Items.Count);  //wyświetlenie pytania  Label1.Caption := ListBox1.Items[i];  //usunięcie "zużytego" pytania  ListBox1.Items.Delete(i);  //czy wszystkie pytania już "poszły"?  if ListBox1.Items.Count = 0 then ShowMessage('Koniec testu!'); end;
Prościej się chyba nie da :)

czesc
Mam do ciebie prośbę, ferrari. Mógłbys mi powiedzieć jak zrobiłeś, żeby pytania były opczytane z pliku, bo ja mam w procedurze. byłbym ci wdzięczny. A ja mam taką procduę:
randomize; l:=random(10)+1; while wylosowana[l]=true do begin l:=l+1; if l>10 then begin l:=1; end end; wylosowana[l]:=true; memo1.Lines.Add(floattostr(l)); los:=los+1; if los=10 then begin showmessage('koniec'); button1.Enabled:=false;



ListBox nie jest dobrym pomysłem... Czy coś podobnego da się zrobić z tablicami?

Jakie macie jeszcze pomysły na to? Może da się to w łatwy i wydajny sposób zrobić?

Kajetanek - możesz to trochę jaśniej opisać (dlaczego wykonujesz takie operacje oraz więcej informacji)?


ListBox nie jest dobrym pomysłem... Czy coś podobnego da się zrobić z tablicami?

Jakie macie jeszcze pomysły na to? Może da się to w łatwy i wydajny sposób zrobić?

Kajetanek - możesz to trochę jaśniej opisać (dlaczego wykonujesz takie operacje oraz więcej informacji)?

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •