unit tosser; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type Troller = class(TForm) spot1: TShape; spot5: TShape; spot6: TShape; spot3: TShape; spot4: TShape; spot2: TShape; roll: TButton; done: TButton; num: TLabel; procedure doneClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure wipe; procedure rollClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var roller: Troller; implementation {$R *.DFM} procedure Troller.doneClick(Sender: TObject); begin close end; procedure Troller.FormCreate(Sender: TObject); {seeds random number generator and sets up for first roll} begin randomize; wipe end; procedure Troller.wipe; {hides all spots on the form} begin spot1.visible := false; spot2.visible := false; spot3.visible := false; spot4.visible := false; spot5.visible := false; spot6.visible := false; end; procedure Troller.rollClick(Sender: TObject); var number : integer; begin wipe; number := random(6)+1; {generate random throw} num.caption := inttostr(number); {display text version for verification} spot1.visible := true; {this is always on regardless of what outcome} if number > 1 {then it is at least a 2} then spot2.visible := true; if number > 2 {it is at least a 3} then spot3.visible := true; if number > 3 {it is at least a 4 .. and so on} then spot4.visible := true; if number > 4 then spot5.visible := true; if number > 5 then spot6.visible := true; end; end.