Funkcja Random(x) wciąż losuje tą samą liczbę?

Piszę program symulujący wbijanie itemów na kolejne poziomy (+1 +2 +3). Pomysł zaczerpnąłem z gier MMORGP… Jest tylko taki problem, że umieszczę w swoim kodzie instrukcję:

procedure TForm3.Button2Click(Sender: TObject);


var

   c : integer;

   d : integer;


begin

c := 11;

d:=random(c);

if d < 1 then

  begin

Label2.Caption:= 'Wbiles item na +3!';

Button3.Enabled:= True;

  end

else

begin

     Label2.Caption:= 'Nie wbiles itemu';

     Button3.Enabled:= False;

end;

end;

A zawsze pierwsze kliknięcie po uruchomieniu programu sprawia, że wbiłem item na +3 mimo, że mam na to 10% szansy? A prawie każde następne kliknięcie, sprawia, że nie wbiłem itemu, czyli dopiero po 1 naciśnięciu na przycisk, wszystko działa tak jak powinno. Powie mi ktoś czemu dopiero wtedy? Bo tak to program nie ma żadnego sensu…

Musisz zainicjować generator liczb losowych.

Wywołaj Randomize; podczas startowania aplikacji i tylko raz.

Zapomniałeś dać Randomize; w Form3.OnCreate();

Dzięki chłopaki. Pomogło.

Tak a propos poco zbędne zmienne tworzysz?

varc : integer;d : integer;

Ano masz rację :]

Początkujący jestem.

Zacznij używać porządne formatowanie kodu to od razu sam zaczniesz takie rzeczy wyłapywać, i nie tylko takie.

Random() zwraca tylko liczby całkowite z zakresu 0 do n-1, w tym wypadku 0 do 10, wiec można dać = 0 zamiast < 1 :wink:

A tzn jakie? Co muszę ustawić w kompilatorze, używam Delphi 2007 Lite.

Ja wole sam formatować więc zawsze wyłączam wszelkiego rodzaju auto-formatowania.

Co nie umiesz kilka razy spacje nacisnąć lub skasować zbędną?

Co do Delphi 2007 Lite - nie jestem pewien czy posiada auto-formatowanie.

Tak a propos nie w kompilatorze, zaś w IDE, bo kompilator (na szczęście) ma formatowanie gdzieś.

Delphi 2007 Lite to to samo co Turbo Delphi czyli IDE :smiley:

Sorki za mały offtopic, ale nie chcę nowego tematu tworzyć. Czy po Turbo Delphi Explorer wyszło jakieś nowsze DARMOWE środowisko Delphi? Wiem że najnowsze to 2009, no ale niestety nie ma żadnej wersji za free :frowning:

Chyba nie wyszło. Na dobreprogramy.pl nie ma. A pomiędzy tym płatnym 2009 a Turbo Delphi Explorer jest dużo różnic?