Proste losowanie pytań - pomoc!

Odpowiedz Nowy wątek
2003-04-29 10:17
0

Potrzebuję procedury, która będzie losowo (!!!) ustawiała pytania i wyświetlała je na etykietach (lblOdp1, lblOdp2,...). Pytania mam następującego formatu:

Odp: array[1..4] of String[50];

Ważne jednak jest, abym wiedział, która jest poprawna!!! Podczas wczytywania z pliku odpowiedzi ta pierwsza jest zawsze prawdziwa. Procedura musi je zatem rozmieścić, tak, aby użytkownik nie wiedział, która jest prawdziwa, ale, co jest logiczne, program musi wiedzieć, aby sprawdzić czy nie nastąpiła pomyłka. :]
Ma ktoś jakiś pomysł? I jak zrobić tablicę 4 obiektów typu TLabel, bo wydaje mi się, że to by bardzo zoptymalizowało kod?


"A wise man questions contains half an answer"

Pozostało 580 znaków

2003-04-29 14:55
0

Zrob sobie rekord:

[code]pytanie = record
pytanie:string;
A,B,C,D:string; // odpowiedzi
poprawna:char lub integer;
end;
[/code]

no i teraz mysle ze mozesz juz zrobic dalej, poprostu musisz zawsze zrobic zmienna ktora bedzie pamietala na ktorej pozycji znajduje sie prawdlowa odpowiedz.

Chyba juz nie bedziesz mial z tym problemow


Make love, not war !

Pozostało 580 znaków

2003-04-29 20:58
0

Ehhh... być może źle sformułowałem pytanie. Mam następujący rekord:

TDat = packed record
nr: integer;
Pyt: String[100];
Odp: array[1..4] of String[50];
end;

Pierwszy element tej tablicy jest odpowiedzią poprawną. Problem stanowi ustawienie tych odpowiedzi w losowej kolejności. Jeśli zrobię "random(4) to mogą się nałożyć te odpowiedzi na siebie. Jak tego uniknąć?


"A wise man questions contains half an answer"

Pozostało 580 znaków

2003-04-29 23:21
pq
0

var
losowo : array[1..4] of String[50];
uzyte: array [1..4] of boolean;
i, x: integer;
pytanie:TDat;

begin

for i:=1 to 4 do
uzyte[i]:=False;

for i:=1 to 4 do
begin
repeat
x:=Random(4)+1;
until not uzyte[x];

losowo[i]:=Pytanie.Odp[x];
uzyte[x]:=true;
end;

Możesz też wstawić odpowiedzi do TStringList, wybierać Random(Lista.Count) i wybrany usuwać z listy aż lista bedzie pusta. Nie będzie trzeba tablicy użyte.

PS. Kod z głowy, mogą być błędy...


"Ecie pecie - odparłem. - Wiadomo, że wszystkiemu winien komputer. Ten brzydal!" (Lem)

Pozostało 580 znaków

2003-04-30 09:08
0

Wielkie dzięki za pomoc. To faktycznie powinno rozwiązać mój problem. :-) Narazie wyjeżdżam na długi weekend bez dostępu do kompa, ale jak wrócę to dam znać czy wszystko działa jak należy. :-)
Pozdrowienia.


"A wise man questions contains half an answer"

Pozostało 580 znaków

2003-04-30 09:50
0

http://strony.wp.pl/wp/mw_marynarz/kacik.html
Na samym dole są źródła. Działąjacej gry.

Jest to zrobione w Pascalu, ale może ci sie przyda. Fajna zabawa.

To rodzaj testu z biologii . Program dokonuje odczytu z pliku tekstowego test.txt kolejnych wierszy dopóty, dopóki nie zostanie osiągnięty koniec pliku. Kolejno odczytywane są: pytania, odpowiedzi, następnie użytkownik podaje swoją propozycje z klawiatury a komputer informuję czy propozycja gracza zgadza się z oryginalną. Na koniec podawana jest liczba błędnych oraz dobrych odpowiedzi i wystawiona zostaje ocena.

Pozostało 580 znaków

2003-05-07 17:45
Anonim
0

Wyślij mi swój adres na [email protected]. Chyba piszemy podobne programy!

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0