Witam, mam pytanie jak we free pascalu wylosować liczbę ze zbioru (1,5,10). Wiem, że jest funkcja random(przedział), ale to losuje od x do y. A ja chce by losowało konkretne liczby.
Dzięki za wszelkie odpowiedzi.
0
1
Chwila namysłu:
Function RandomFromArray(Tab: Array Of Integer): Integer;
Begin
Result := Tab[Random(High(Tab))];
End;
W "Tab" są liczby, a funkcja losuje jedną liczbę z tablicy.
0
Dam kawałki kodu i błędy jakie mi wyrzuca.
potwory2 : array of integer;
procedure generujPokoje(numerPokoiku:integer);
begin
case numerPokoiku of
1:
begin
opisPokoju:='Znajdujesz sie w lesie, przed toba sa dwie sciezki, ktora wybierasz?';
wschod:= true;
zachod:= true;
poludnie:= true;
E:=2;
W:=3;
S:=5;
maxIndeks:=1;
SetLength(potwory2, maxIndeks);
potwory2[0]:= 1;
end;
Function wylosujPotwora(Tab : Array of Integer): Integer;
Begin
Result := Tab[Random(maxIndeks)];
End;
procedure generujPotwora(potworek:integer);
begin
potwory[0]:='Goblin';
potwory[1]:='Szczur';
case potworek of
0:
begin
pNazwa:='Goblin';
pexp:=25;
pHp:=80;
pInt:=2;
pStr:=6;
pDex:=4;
pdef:=4;
end;
wylosujPotwora(potwory2);
generujPotwora(wylosujPotwora);
G:\graRPG2.lpr(346,24) Error: Wrong number of parameters specified for call to "wylosujPotwora"
G:\graRPG2.lpr(188,10) Hint: Found declaration: wylosujPotwora(Open Array Of LongInt):LongInt;
0
Result := Tab[Random(maxIndeks)];
IMO, i tak lepiej jest użyć "High"
G:\graRPG2.lpr(188,10) Hint: Found declaration: wylosujPotwora(Open Array Of LongInt):LongInt;
Gdzieś masz najwyraźniej drugi raz funkcję o tej samej nazwie.
0
Mam błąd, było generujPotwora(wylosujPotwora); a powinno być generujPotwora(wylosujPotwora(potwory2));
Dzięki za pomoc :).