Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

Nejste přihlášen(a). Přihlásit

#1 15. 01. 2011 17:09 — Editoval Toni (15. 01. 2011 18:11)

Toni
Příspěvky: 130
Reputace:   
 

Delphi

Mám podobnej problém. Mám naprogramovat program, na házení dvou kostek, potom v jednom labelu se počítají pokusy, než první hráč hodil šestku, v dalším než druhý hráč hodil šestku, potom oběma hráčům počítadlo, kolikrát jim padla šestka a u všech nulovací talčíto. Potom ještě pomocí showmessage udělat, že když hráči padne 6tka, tak vyskočí hlášení, že mu padla šestka. Podsud žádný problém.Ale potom máme udělat, ž ekterému hráči dřív padne třeba 5x  šestka(nemusí to bejt po sobě), tak se mu pomocí showmessage má vypsat že vyhrál. A to je ten problém. Přiložím sem svůj zdroják:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Image1: TImage;
Button1: TButton;
Label3: TLabel;
Button2: TButton;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button3: TButton;
Image2: TImage;
Label2: TLabel;
Label7: TLabel;
Button4: TButton;
Button5: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
cislo:integer;
cislo1:integer;
a:integer;
b:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

showmessage('Koncis?');
application.Terminate;
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
randomize;
cislo:= random (6);
if cislo = 0 then Image1.Picture.LoadFromFile('k1.jpg');
if cislo = 1 then Image1.Picture.LoadFromFile('k2.jpg');
if cislo = 2 then Image1.Picture.LoadFromFile('k3.jpg');
if cislo = 3 then Image1.Picture.LoadFromFile('k4.jpg');
if cislo = 4 then Image1.Picture.LoadFromFile('k5.jpg');
if cislo = 5 then Image1.Picture.LoadFromFile('k6.jpg');
Image1.Tag :=Image1.Tag + 1;
Label3.Caption :=IntToStr(Image1.Tag);

if cislo = 5 then showmessage ('padla šestka');
if cislo =5 then Label5.Tag :=Label5.Tag+1;
Label5.Caption :=IntToStr(Label5.Tag);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Label3.Caption := ' ';
Image1.Tag := 0;
end;


procedure TForm1.Button3Click(Sender: TObject);
begin
Label5.Caption := ' ';
Label5.Tag := 0;
end;

procedure TForm1.Image2Click(Sender: TObject);
begin
randomize;
cislo1:= random (6);
if cislo1 = 0 then Image2.Picture.LoadFromFile('k1.jpg');
if cislo1 = 1 then Image2.Picture.LoadFromFile('k2.jpg');
if cislo1 = 2 then Image2.Picture.LoadFromFile('k3.jpg');
if cislo1 = 3 then Image2.Picture.LoadFromFile('k4.jpg');
if cislo1 = 4 then Image2.Picture.LoadFromFile('k5.jpg');
if cislo1 = 5 then Image2.Picture.LoadFromFile('k6.jpg');
Image2.Tag :=Image2.Tag + 1;
Label2.Caption :=IntToStr(Image2.Tag);
if cislo1 = 5 then showmessage ('padla šestka dalšímu hráči');
if cislo1 =5 then Label7.Tag :=Label7.Tag+1;
Label7.Caption :=IntToStr(Label7.Tag);

end;

procedure TForm1.Button4Click(Sender: TObject);
begin
Label2.Caption := ' ';
Image2.Tag := 0;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
Label7.Caption := ' ';
Label7.Tag := 0;

if Label1.Tag = 5 then showmessage ('vyhrál první hráč');
if Label7.Tag = 5 then showmessage ('vyhrál druhý hráč');

end;


end.

Jak je vidět, v posledním kroku se snažím vytáhnout z labelu 7 a 1 hodnotu, kolikrát padla šestka a vypsat zprávu. Jenže to hlášení nefunfuje. Pomůže mi s tím prosím někdo?

Offline

 

#2 15. 01. 2011 17:15

jindra
Příspěvky: 78
Reputace:   
 

Re: Delphi

Nejsem odborník na delphi, ale nebude v labelu text a ty ho porovonáváš s číslem? (5 != "5")

Offline

 

#3 15. 01. 2011 18:06

Toni
Příspěvky: 130
Reputace:   
 

Re: Delphi

no já porovnávám hodnotu labelu, takže label1.tag

Offline

 

#4 15. 01. 2011 18:18 — Editoval jindra (15. 01. 2011 18:18)

jindra
Příspěvky: 78
Reputace:   
 

Re: Delphi

Já delphi nemám a nevím jak je to u něj. Ale ve studiu a v jazyce ve kterém pracuji já má label hodnotu která má typ string. Tudíž ji nemohu porovnávat s číslem. A tyto věci bývají většinou dosti podobné.

Zkusil bych být tebou

Code:

if Label1.Tag = '5' then showmessage ('vyhrál první hráč');
if Label7.Tag = '5' then showmessage ('vyhrál druhý hráč');

Offline

 

#5 15. 01. 2011 19:22

Toni
Příspěvky: 130
Reputace:   
 

Re: Delphi

no to jsem právě zkusil, a když ta šestka padne i 58x, tak se nenapíše, kdo vyhrál

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson