08. Budeme si hrát (na hracím automatu)
Přidal/a Jarda dne October 25 2010 11:24:05


Ukázka: PROGRAM

Vzhled aplikace – jeho vytvoření, úprava formuláře

Tento příklad jsem si téměř beze změny půjčil z poblikace VB Krok za krokem (viz. Použitá literatura). Ponechal jsem i pojmenování objektů tak, jak je nabízí prostředí Visual Basicu.


Labely 1-3 (TextAlign: MiddleCenter, BorderStyle: FixedSingle, Font: nastavíme vhodnou velikost, např. 24)),Label4 (text: Šťastné sedmičky)
Button1 (Text: START, Name: cmdStart), Button2 (Text: STOP, Name: cmdStop)
PictureBox: obrázek se objeví jen v případě výhry, tj. když aspoň jedno z čísel bude sedmička – nastavíme jeho velikost – SizeMode a nastavením vlastnosti Image nastavíme název souboru s obrázkem, který hodláme načíst. Vlastnost Visible určuje, má-li být viditelný při spuštění obrázku.

SizeMode: StretchImage – obrázek se přizpůsobí zadaným rozměrů – musíme zadat před otevřením grafiky

Image: - v dialogovém okně najdeme obrázek

Visible: false

(Se vzhledem formuláře si samozřejmě můžete pohrát víc, než jsem to udělal já)


Zdrojový kód aplikace

Program se ovládá tlačítky START a STOP – těmto tlačítkům přiřadíme zdrojový kód.

Program bude spuštěn po stisknutí tlačítka START – musíme tedy naprogramovat událost Click.

PictureBox1.Visible = False
Label1.Text = CStr(Int(Rnd() * 10))
Label2.Text = CStr(Int(Rnd() * 10))
Label3.Text = CStr(Int(Rnd() * 10))
'je-li aspon jedne z cislic 7, zobrazi se obrazek a pipne
If (Label1.Text = "7") Or (Label2.Text = "7") Or (Label3.Text = "7") Then
PictureBox1.Visible = True
Beep()
End If

POZNÁMKA:

Všimněte si textu:
'je-li aspon jedne z cislic 7, zobrazi se obrazek a pipne
Je to komentář. Je vhodné a obvyklé do kódu zapisovat vysvětlující poznámky. Tyto poznámky jsou uvedené znakem ' (apostrof). Tyto poznámky se nám vyplatí zvláště tehdy, když budeme chtít později upravovat nějaký složitější program a bez nich bychom velmi obtížně vzpomínali, jak jsme to tehdy vlastně mysleli a co jsme chtěli tímto kódem vlastně dokázat.



Ve druhém kroku generujeme náhodná čísla. K tomu slouží funkce Rnd. Tato funkce vytvoří v každém řádku náhodné číslo z intervalu 0 a 1 (s desetinnou čárkou a několika desetinnými místy). To vynásobíme deseti a pomocí funkce Int se ze součinu odříznou desetinná místa.
Dále potřebujeme tato čísla zkopírovat do tří popisků na formuláři. Musíme tato čísle převést na text – funkce Cstr (Covert to String, převést na řetězec).
POZNÁMKA:

Takto postupuje program ve vyhodnocení algoritmu (příklad):
Label1.Text = CStr(Int(Rnd() * 10))

Kód / Výsledek

Rnd() / 0,7055475

(Rnd() * 10) / 7,055475

Int(Rnd() * 10) / 7

CStr(Int(Rnd() * 10)) / „7“

Label1.Text = CStr(Int(Rnd() * 10))

Program také musíme nějak ukončit. Můžeme to provést napríklad touto procedurou přiřazenou ke tlačítku KONEC


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Close()
End Sub

Někdy se můžeme setkat místo příkazu Me.Close() s příkazem End nebo Application.Exit() v případě komplikovanějších projektů složených z několika formulářů.

Úprava programu

Při spuštění programu zjistíte, že se pokaždé zobrazuje přesně stejná posloupnost náhodných čísel. Funkce Rnd Visual Basicu byla navržena tak, aby zobrazovala opakující se sekvenci čísel – tak, aby byla umožněno otestování běhu programů pomocí čísel, které lze opakovat znovu a znovu. „Opravdová“ náhodná čísla získáme pomocí příkazu Randomize.

Uděláme to tak, že poklepeme na formuláři (na na jeho objektech) a zobrazíme proceduru Form_Load. Napíšeme Randomize a stiskneme klávesu Šipka dolů (viz obr.)


Příkaz Randomize se přidá do programu a vykoná se pokaždé, když se program spustí. Na základě systémových hodin vytváří náhodný startovací bod pro generování náhodných čísel funkci Rnd a generovaná čísla budou opravdu náhodná, nebudou mít žádnou zákonitost.

Rozhraní programu můžeme upravit i jinak. Při běhu programu lze měnit vlastnosti formuláře. Například můžeme zakázat možnost změny rozměrů okna programu a minimalizace za běhu, můžeme uživatele donutit zavírat program naším tlačítkem a ne X (prostě X z titulkového pruhu odstraníme)
Kód vypadá takto:


Okno programu vypadá pak takto:


Úkoly:

1.Změňte program tak, aby výhra byla v případě, že jsou vždy dvě (nebo tři) vylosována stejná čísla.

2.Upravte výhru – například různá hodnota pro různé hodnoty stejných číslic