Avatar billede hp-power Nybegynder
23. januar 2002 - 13:39 Der er 8 kommentarer og
2 løsninger

Terning kastning

jeg er by begynder i delphi og er ved at lave det program hvor jeg skal bruge en funktion som kan random give mig 5 tal af et karakter, mellem 1-6 (inkl. 1 & 6)

Heino
(håber ikke random funk. er lige som i vb hvor den kommer med de samme kombination hver gang man stater programmer)
Avatar billede morten_s Nybegynder
23. januar 2002 - 13:43 #1
procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  label1.Caption := IntToStr(Random(6)+1);
end;


Husk altid at kører randomize en gang i dit program, det starter din randomgenerator
Avatar billede morten_s Nybegynder
23. januar 2002 - 13:46 #2
Hvis du gerne vil have tallet ud i en variabel


procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Ran : Integer;
begin
  Ran := Random(6)+1;
  ShowMessage(IntToStr(Ran));
end;
Avatar billede scorpius Nybegynder
23. januar 2002 - 14:09 #3
hvad betyder det at man sætter Randomize ind i formcreate egentlig?
Avatar billede morten_s Nybegynder
23. januar 2002 - 14:11 #4
Scorpius> Det betyder at den kun bliver kalt en gang, når din form startes (creates), Randomize, initialisere din randomgenerator

Delphi hjælp på Randomize:

Randomize initializes the built-in random number generator with a random value (obtained from the system clock). The random number generator should be initialized by making a call to Randomize, or by assigning a value to RandSeed.

Do not combine the call to Randomize in a loop with calls to the Random function. Typically, Randomize is called only once, before all calls to Random.
Avatar billede scorpius Nybegynder
23. januar 2002 - 14:12 #5
oki fint nok...
Avatar billede cyberlsn Nybegynder
23. januar 2002 - 14:20 #6
procedure TForm1.FormCreate(sender:TObject);
var i:integer;
begin
  Randomize;
  i := random(6);
  if i = 0 then i := 1;
  showmessage('Tallet er ' + IntToStr(i));
end;
Avatar billede morten_s Nybegynder
23. januar 2002 - 14:24 #7
cynerlsn> din funktion kan aldrig give tallet 6, sandsynligheden for at få 1 = 2/6 istedet for 1/6

du skal gøre som jeg har vist dig, desuden kørrer din random kun en gang :(
Avatar billede hp-power Nybegynder
23. januar 2002 - 14:29 #8
det skal bruges til et poker terning spil. så kører jeg bare den 5 gange eller hvad
Avatar billede morten_s Nybegynder
23. januar 2002 - 14:34 #9
sådan her
Du kan jo gøre sådan her, alternativ oprette en array eller en record og puttet tallene i

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Ran1, Ran2, Ran3, Ran4, Ran5 : Integer;
begin
  Ran1 := Random(6)+1;
  Ran2 := Random(6)+1;
  Ran3 := Random(6)+1;
  Ran4 := Random(6)+1;
  Ran5 := Random(6)+1;
end;
Avatar billede morten_s Nybegynder
23. januar 2002 - 14:38 #10
Her har du dine data i en array

var
  Form1: TForm1;
  Poker : Array[1..5] of integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
begin
  for i := 1 to 5 do
    Poker[i] := Random(6)+1;
end;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester