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
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
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
if Label1.Tag = '5' then showmessage ('vyhrál první hráč');
if Label7.Tag = '5' then showmessage ('vyhrál druhý hráč');Offline