Tak jsem tu znova tentokrát programuji Kolotoč (dle televizního pořadu).
Potřebuji pomoci, Při nahrazování znaků v komponentě label mi nejde vše jak bych chtěl.
Do labelu nahraji libovolnou frázi, kterou potřebuji převést na "_" (podtržítko), při uhádnutí se podtržítko přepíše na původní znak.
Mezery, čárky, tečky, pomlčky, otazníky a další obdobné znaky se ve frázi nesmí nahradit podtržítkem.
Příklad:
Únor bílý, pole sílí.
_ _ _ _ _ _ _ _, _ _ _ _ _ _ _ _.
Stávající kód nefunguje jak má, mezery, nesedí a zástupné znaky "_" se při nahrazení posouvají doprava.
Dále se mi nedaří ošetřit, abych po bankrotu nehádal, ale musel znova točit.
No a kdyby někdo poradil jak nejjednodušeji udělat, zadané písmeno v edit odpovídá malému i velkému písmenu a u samohlásek (a,e,i,o,u,y) i dlouhým.
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids;
type
TForm1 = class(TForm)
BtnEnd: TButton;
BtnHrat: TButton;
LVCastka: TLabel;
LHFraze: TLabel;
BtnHledej: TButton;
Edit1: TEdit;
LVyhra: TLabel;
LFraze: TLabel;
Label1: TLabel;
Label2: TLabel;
procedure BtnEndClick(Sender: TObject);
procedure BtnHratClick(Sender: TObject);
procedure BtnHledejClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Castka: Integer;
Fraz: string;
Pocet: Integer;
Vyhra: Integer;
Skryte: string;
implementation
{$R *.dfm}
//=============================
// Vyber fraze (pranostiky)
//=============================
procedure Fraze;
var
f: integer; // f jako Fraze
begin
Randomize;
f := random(11); // Nahodne cislo od 0 do 10
if f = 0 then Fraz := 'Na svatého Jeronýma stěhuje se k nám už zima.';
if f = 1 then Fraz := 'Jak na Nový rok, tak po celý rok.';
if f = 2 then Fraz := 'Na Tři krále mrzne stále.';
if f = 3 then Fraz := 'Únor bílý, pole sílí.';
if f = 4 then Fraz := 'Na Hromnice o hodinu více.';
if f = 5 then Fraz := 'Svatý Matěj ledy láme, nemá-li je, nadělá je.';
if f = 6 then Fraz := 'Březen, za kamna vlezem. Duben, ještě tam budem.';
if f = 7 then Fraz := 'Kdo se v máji ožení, přivodí si soužení.';
if f = 8 then Fraz := 'O Petru-li prší, po třicet dní déšť se vrší.';
if f = 9 then Fraz := 'Svatá Markyta hodila srp do žita.';
if f = 10 then Fraz := 'Do svatého Vavřince nechval pšenice.';
end;
//=============================
// Tlacitko Hrat
//=============================
procedure TForm1.BtnHratClick(Sender: TObject);
var
c: integer; // c jako castka
begin
Randomize;
c := random(11); // Nahodne cislo od 0 do 10
if (c = 0) then Castka := 100;
if (c = 1) then Castka := 100;
if (c = 2) then Castka := 100;
if (c = 3) then Castka := 100;
if (c = 4) then Castka := 200;
if (c = 5) then Castka := 200;
if (c = 6) then Castka := 200;
if (c = 7) then Castka := 500;
if (c = 8) then Castka := 500;
if (c = 9) then Castka := 1000;
if (c = 10) then Castka := -1;
if Castka > 0 then
LVCastka.Caption := ((IntToStr(Castka)) + ',- kč')
else
LVCastka.Caption := ('BANKROT!!!');
Pocet := 0;
if Castka = 0 then Vyhra := 0;
BtnHrat.Enabled := False;
Edit1.Clear;
BtnHledej.Enabled := True;
end;
//=============================
// Tlacitko Hledej
//=============================
procedure TForm1.BtnHledejClick(Sender: TObject);
var
i: integer;
Pismeno: string;
begin
Pocet := 0;
Pismeno := Edit1.Text;
for i := 0 to length(Fraz) do
begin
if Pismeno = Fraz[i] then
begin
Skryte[i] := Fraz[i];
Pocet := Pocet + 1;
end;
end;
if Fraz = skryte then LVCastka.Caption := 'Výhra';
LFraze.Caption := skryte;
BtnHrat.Enabled := true;
BtnHledej.Enabled := false;
Vyhra := (Castka * Pocet) + Vyhra;
Lvyhra.Caption := IntToStr(Vyhra) + ',- kč';
end;
//=============================
// Vytvoreni formulare
//=============================
procedure TForm1.FormCreate(Sender: TObject);
i: integer;
begin
Fraze;
LHFraze.Caption := Fraz;
BtnHrat.Enabled := true;
BtnHledej.Enabled := false;
Vyhra := 0;
Skryte := '';
for i := 0 to Length(Fraz) do
begin
if Fraz[i] = '.' then skryte := skryte + '.'
else if Fraz[i] = ',' then skryte := skryte + ','
else if Fraz[i] = ' ' then skryte := skryte + ' '
else
skryte := skryte + '_ ';
LFraze.Caption := skryte;
end;
end;
//=============================
// Tlacitko Konec
//=============================
procedure TForm1.BtnEndClick(Sender: TObject);
begin
Close;
end;
end.
Mám to do školy a nejsem programátor a ani jím býti nechci ale splnit to musím.