Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

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