Avatar billede exp-ralle Nybegynder
16. september 2002 - 18:54 Der er 10 kommentarer og
1 løsning

Random

Hejsa...

Hvordan laver jeg et random tal i delphi?

Det skal være sådan at det ikke bare er tilfældige tal hvor det første alligevel altid er fx. 7.

Hvis det har nogen betydning så er de 24 tal jeg har som skal være tilfældige.


Ralle
Avatar billede stoney Nybegynder
16. september 2002 - 19:02 #1
procedure TForm1.Button2Click(Sender: TObject);
var
i : integer;
begin
randomize();
i := random(24)+1;
showmessage(inttostr(i));

end;

Stoney
Avatar billede exp-ralle Nybegynder
16. september 2002 - 19:04 #2
Risikerer (hvis det staves sådan) man så ikke at få det samme tal igen?
Avatar billede exp-ralle Nybegynder
16. september 2002 - 19:06 #3
Det skal bare være tilfældigt fra hver gang programmet startes.
Avatar billede stoney Nybegynder
16. september 2002 - 19:06 #4
jo, det kan du godt risikere.
Men du skrev du ville undgå den startede med samme tal hver gang.

Stoney
Avatar billede exp-ralle Nybegynder
16. september 2002 - 19:13 #5
Det er til sådan et større eller mindre end spil, så det samme tal må ikke komme to gange under hver runde (ny runde startes ved at lukke programmet så derfor for hver start op).
Avatar billede exp-ralle Nybegynder
16. september 2002 - 19:14 #6
Hvis du har en løsning til ovenstående må du meget gerne skrive den.
Avatar billede stoney Nybegynder
16. september 2002 - 19:46 #7
Jeg kigger på det senere i aften

Stoney
Avatar billede exp-ralle Nybegynder
16. september 2002 - 20:15 #8
Okay, tak
Avatar billede stoney Nybegynder
16. september 2002 - 22:08 #9
Drop en button1 og en listbox1
Listbox1 er kun med for at vise hvilke tal der endnu ikke er trukket

var
  Form1: TForm1;
  strlist : Tstringlist;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var

i : integer;
antaltilbage : integer;
begin

strlist := Tstringlist.Create;
For I := 1 to 24 do
strlist.Add(inttostr(i));


end;

procedure TForm1.Button1Click(Sender: TObject);
var
i,ran : integer;

begin
randomize();
ran := random(strlist.Count) ;

strlist.Delete(ran);
listbox1.Items.Assign(strlist);
if strlist.Count = 0 then
showmessage('Game over, alle tal er trukket');

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
strlist.Free;
end;

Stoney
Avatar billede stoney Nybegynder
16. september 2002 - 22:16 #10
rettelse, så du også kan se hvilke tal der blev udtrukket

var
  Form1: TForm1;
  strlist : Tstringlist;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var

i : integer;
antaltilbage : integer;
begin

strlist := Tstringlist.Create;
For I := 1 to 24 do
strlist.Add(inttostr(i));


end;

procedure TForm1.Button1Click(Sender: TObject);
var
i,ran : integer;

begin
randomize();
ran := random(strlist.Count) ;
showmessage('Udtrukket tal: ' + strlist.Strings[ran]);

strlist.Delete(ran);
listbox1.Items.Assign(strlist);
if strlist.Count = 0 then
showmessage('Game over, alle tal er trukket');

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
strlist.Free;
end;

Stoney
Avatar billede exp-ralle Nybegynder
17. september 2002 - 14:07 #11
Takker
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
Kategori
Kurser inden for grundlæggende programmering

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