Losowanie określonych liczb

Odpowiedz Nowy wątek
2011-08-27 18:09
0

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.

Pozostało 580 znaków

2011-08-27 18:11

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.


Pozostało 580 znaków

2011-08-27 18:18
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;

edytowany 2x, ostatnio: Materion, 2011-08-27 18:29

Pozostało 580 znaków

2011-08-27 18:32
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.


Pozostało 580 znaków

2011-08-27 18:38
0

Mam błąd, było generujPotwora(wylosujPotwora); a powinno być generujPotwora(wylosujPotwora(potwory2));
Dzięki za pomoc :).

edytowany 1x, ostatnio: Materion, 2011-08-27 18:40
Heh. Faktycznie :) Nawet nie zauważyłem :) - Patryk27 2011-08-27 18:44

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