Vlastnosti okna

Dnes Vám ukážu vlastnosti okna. Lepe, vlastnosti okna v Windows Forms Application.

  1. Otevřu si šablonu “Windows Forms Application” (File -> New -> Project…) Otevřel se Design šablony, vidím okno, kterému můžu různě měnit velikost.Otevřu si okénko “Properties” (vlastnosti) Wiew -> Properties Windownebo zmáčknu klávesu F4. Toto okno můžete vidět na obrázku níže.
  2. Teď kliknu na okno, které je v tom Designu a v okně vlastností se zobrazí vlastnosti toho okna. Vlastnosti můžete různě měnit. Tabulka pod tímto textem, poradí, co jaká vlastnost znamená.
  3. Přehled základních vlastností okna
    Vlastnost Vysvětlení Poznámky
    BackColor Barva pozadí okna lepší nastavovat pomocí nějaké metody
    BackgroundImage Obrázek na pozadí opět, lepší metodou
    Font Styl textu v okně Také velikost
    ForeColor Barva textu v okně
    Text Název okna, který se bude zobrazovat v liště
    Location Pozice, kde se okno objeví Určí se pozice X a Y
    MaximumSize Maximální velikost okna víc to okno roztáhnout nejde
    MinimumSize Minimální velikost okna zmenšit už to taky nejde
    Icon Ikonka okna, která se zobrazuje v liště formát .ICO stejný jako webové ikonky

    * seznam není celý, až narazím na něco dalšího, více důležitého, tak to sem přidám.A třeba takto může vypadat příklad upraveného okna:

Hello world ve vyskakovacím okně

1) Budem potřebovat šablonu pro aplikace v oknech (“Windows Forms Application”) – File -> New -> Project, otevře se okno se seznamem šablon, vybereme “C#” a šablonu “Windows Forms Application” Po kliknutí “OK” se otevře šablona (můžete vidět na obrázku níže). Nebo spíše desing šablony, k vidějí je pouze náhled prázného okna s klasickými tlačítky v pravém horním roku (skrýt, zvětšit a zavří

2) Chci přidat tlačítko do designu toho okna, takže si otevřu “Toolbox” česky panel nástrojů a to buď: Wiew -> Toolbox a nebo Ctrl + Alt + X

Po kliknutí nebo stlačení správné kombinace tlačítek se zobrazí seznam panelů, kde asi na druhém místě je položka “Button”. Dvojklikem se umístí tlačítko do středu okna a nebo se dá na tlačítko kliknout a přetáhnout ho na nějaké příslušné místo.

Na obrázku můžete vidět panel nástrojů (Toolbox) a v červeném oválu je označený prvek tlačítka (button).

3) Dvojklikem na tlačítko, které jsem vložili do okna v design části se dostanu do kódu.Okamžitě se vytvoří tento kód:

Poté mezi složené závorky vložím následující kód:

MessageBox.Show(“ahoj světe”);

4)Pustím program (buď F5 nebo menu: Debug -> Start Debugging Zobrazí se okno s tlačítkem, na které se dá kliknout. Po kliknutí na tlačítko se zobrazí okno s pozdravem “Ahoj světe”. Výsledek můžete vidět na obrázku níže.

Zdrojový kód s poznámkami

 

Hello world v konsole C#

První program, naprostý základ, dejme tomu, že i tradice v jakéhokoli druhu programování, je vypsání “Hello world” – Ahoj světe. Já Vám ukážu, jak jsem si nechal vypsat text “Ahoj světe” do konsole (příkazového řádku) pomocí C#.

  1. Otevřeme si šablonu pro konzolovou aplikaci (“Console Application”) File -> New -> Project, otevře se okno se seznamem šablon  “C#” a šablonu “Console Application” Po kliknutí “OK” se zobrazí stránka, jejíž obrázek je níže.

2. Do metody “Main” (do složených závorek – na obrázku níže, je tento kód zvýrazněn) vložíme tento kód:

3. Vše je hotovo, program se nyní musí spustit. Jedna z cest jak toho dosáhnout je: zmáčknutím CTRL + F5 (nebo v horním panelu “Debug” a “Start Without Debugging“) Na obrázku se vidět, jak vypadá konzole s určením textem “Ahoj světe”.

Start Without Debugging znamená, že spustíme náš program, kontroly chyb.

Zdrojový kód s poznámkami

Zakončení

Podle mě, asi dvě základní a nejdůležitější věci jsou,

  • V programovacím jazyku C# záleží na velkých a malých písmenech.
  • Každý řádek kódu musí být ukončen středníkem. (;)

Hra piškvorky

Dostal jsem zadání, udělat jednoduché zpracování hry piškvorky pro dva hráče v konzolovém rozhraní.

Zachycení události stisku CTRL+C

Tato metoda funguje tak, že se nastaví ovladač na zachytávání stisku klávesy pomocí funkce Console.CancelKeyPress a následně se vyhodnotí pomocí ConsoleCancelEventArgs, která klávesa byla stisknuta.

Přepínání hráčů

V proměnných hrac1 a hrac2 jsou uloženy jména hráčů, která byla zadána na začátku hry. Zadané jména se navíc různě kontrolují. Defaultně, pokud není nic zadáno, jsou jména hráčů nastaveny na hodnoty hrac1 a hrac2, tím jsou zajištěna jedinečná jména hráčů. To je pak využito v další části kódu pro jejich porovnávání.

Je využívána proměnná aktivnihrac, která střídavě mění hodnotu z hrac1 na hrac2. Jako první vždy začíná hráč 1 (tedy kolečko), tedy první hodnota proměnné ativnihrac je nastavena na hodnotu proměnné hrac2. V cyklu podmíněném podmínkou, že hodnotaGameOver je rovná false (tedy hra pokračuje), se po porovnání aktuální hodnoty proměnnéaktivnihrac a obsahu proměnné hrac2 nastavuje hodnota proměnné aktivnihrac na hodnotu proměnné hrac1, v případě shody hodnot proměnných nebo na hodnotu proměnné hrac2, v případě rozdílu hodnot.

Proč je potřeba kontrolovat délku tahu hráče

Po celou hru jsou zachytávány stisky kláves, které hráči zmáčkli. Z toho důvodu jsem upřednostnil metodu Console.ReadKey, která čte každý jednotlivý stisk klávesy. Ten se vyhodnocuje ve vlastní metodě HandleInput(tah hráče), která vrací v případě v úspěšných kontrol v ní obsažených, řetězec s hodnotou stisknuté klávesy.

Z principu hry hráč nemůže zadat delší tah, než jsou dva znaky. Prvním znakem je X-ová souřadnice a druhým Y-ová souřadnice. Hráč může zadat také jeden znak, např. “?” a vyvolat tím vestavěnou nápovědu.

Při prvním průchodu cyklu se vstupní podmínkou, podle které tah hráče musí být menší než dva znaky, se tvoří řetězec input, který je na začátku deklarován jako prázdny (string.Empty). Proměnná input obsahuje vrácenou hodnotu z HandleInput(tah hráče), pokud délka hodnoty input není 0, přičte se k řetězcové proměnné hractah, který tak změní svou délku z nuly na jeden znak. Následující stisk klávesy, který je zase úspěšně vyhodnocen, změní délku proměnné hractah na dva znaky a vyhodnotí se hráčův tah metodou vyhodnoceni(). Posledním krokem v cyklu je nastavení proměnné hractahna string.Empty. Tím je zabezpečeno opakování cyklu.

Možnosti uložení dlouhých řetězců

Programovací jazyk C# má i jiné možnosti, jak ukládat dlouhé řetězce.

  • Externí txt soubor – můžete založit externí txt soubor a v něm třeba definovat nějaké proměnné, na které se budete z programu odkazovat. Špatné ale je, že program musí mít dobrý přístup k txt souboru a tak musíte dávat pozor, kam si svůj txt soubor uložíte.
  • .resources – je to externí soubor, do který můžete používat v programu, můžete v něm na rozdíl od txt souboru definovat: binární data a data objektu.
  • .dll – soubor .dll je knihovna, kterou si můžete sami vytvořit a dát do nic klidně celé funkce a pak je jen volat z programu, takto se tam dá vložit i dlouhý řetězec

Nejjednodušším způsob manipulace s řetězci, je jejich uložení do proměnné. Tento způsobem jsem zvolil i já, protože počet takových řetězců je minimální, nezohlednil jsem tedy velikost výsledného kódu.

Příklad dlouhého řetězce použitého ve hře piškvorky

Pole řetězců

S polem řetězců se dá zacházet jako s jedním řetězcem. Každý prvek je očíslován a dá se s ním dále pracovat.

Způsob deklarace

string[], hranaté závorky říkají, že definujeme pole, ne jednoduchou proměnnou. Za deklarací typu proměnných v poli se definuje jméno pole řetězců.

Proč jsem použil pole řetězců v mém programu?

Na začátku vývoje hry jsem řešil, jakým způsobem označit jednotlivá políčka hry, jak vyhodnotit výhru hráče, atp. Chtěl jsem také umožnit variabilní velikost pole, s dodržením všech předešlých podmínek.

Souřadnice X a Y hracího pole jsem uložil jako jednotlivé hodnoty pole, dalším možným řešením mohl být např. dlouhý řetězec. Ve hře piškvorky se pole řetězců používá jako legenda, která se zobrazuje na okraji pole. Nejen pro lepší orientaci, ale také pro určení pozic symbolů vložených do pole.

Generování hracího pole z textové grafiky

Nastavil jsem řetězcové konstanty, pomocí kterých definuji ASCII grafiku. Celá tabulka je tvořena jako řetězec formattedString obsahující ASCII grafiku a znaky pro ukončení řádku. Po zadání velikosti hracího pole na začátku hry a podle velikosti okna konzoly je řetězec formattedString tvořen tak, aby byl vypsán horizontálně na střed okna konzoly.

Konvertovací funkce

 

  • Convert.ToInt32(str) – konvertuje řetězec (string) do numerické proměnné (int)
  • ToString() – přemění znak na řetězec
  • ToUpper() – přemění v řetězci malá písmena na velké

Funkce pole IndexOf()

Index of() vyhledá objekt v poli a vrátí první hodnotu výskytu objektu. Vstupní parametry jsou jméno pole a hodnota, kterou chceme hledat. V případě neúspěchu vrátí hodnotu -1.

Tato metoda se používá pro určení souřadnic vkládaného symbolu.

Kontrola tahu hráče (jedna z nich)

Metoda IsValidLetter(string key, string hractah), kdy key je řetězec hráčova aktuálního stisku klávesy a hractah je řetězec, obsahující aktuální hráčův tah. Nejdříve se kontroluje výskyt hráčova stisku klávesy v poli souřadnic hracího pole legenda (jen platné znaky). Zároveň se vyhodnocuje pozice stisknuté klávesy v poli a protože rozměry hracího pole můžou být různé, kontroluje se zároveň, jestli se zadaná hodnota nachází v poli.

Metoda vrací hodnoty true nebo false, podle výsledku kontroly.

Vlákna

Vlákno vytvoří představu toho, že program dělá více věcí v jednom času. V programu piškvorky se takto při výhře spouští melodie a přitom běží program dále. Další příklad použití vlákna by mohl být třeba odpočet času v rohu obrazovky.

Beep

Je funkce, která “pípá”, zahraje zvuk, který můžete slyšet ve hře piškvorky třeba, když hráč vloží správné souřadnice a ukončí tak svůj tah. Defaultně je nastaveno 800 herc a trvání pípnutí 200 milisekund. Toto nastavení ale můžete změnit Console.Beep(herc, trvání pípnutí)

Rozměry pole

Hrací pole ve hře piškvorky má dva rozměry zadané při začátku hry. Stejné rozměry má i dvourozměrné pole, využité jako zrcadlo hracího pole. Rozměry tohoto pole se zpětně získají pomocí mirrortable.GetLength(0), kde je obsažena velikost prvního rozměru pole, tedy šířka a mirrortable.GetLength(1), které obsahuje velikost druhého rozměru pole, tedy výšku.

Čtení a nastavení hodnot pole

Hodnoty v mirrortable jsou nastaveny na “0”. Podle principu: 0 = prázdné pole, 1 = kolečko, 2 = křížek, se do mirrortable zadávají hodnoty 1 nebo 2 na pozice stanovené souřadnicemi X a Y.

Hodnoty pole se čtou podle zadaných indexů. Prvním indexem je 0.

Operátor %

Modulo (%) je typ operátoru, kterým zjišťuje zbytek po celočíselném dělení.

Microsoft Visual Studio 2010 – otevření nového projektu

Microsoft Visual Studio podporuje proces vývoje softwarových aplikací od návrhu jejich architektury, přes tvorbu, testování až po nasazení.

Na těchto stránkách si můžete zdarma stáhnout trial verzi toho programu, verze je však omezená časem užívání, a po nějaké době program přestane pracovat a nabídne Vám zakoupení produktu.

V tomto článku se seznámíme (zatím jen OBECNĚ) s tímto programem.

Úprava rozhraní v Microsoft Visual Studiu 2010

Celý program si můžete přizpůsobit tak, aby Vám co nejvíce vyhovoval. Všem podoknům se dá různě mastavit velikost a poloha, můžete si dokonce nechat zobrazit jen ty okna, které potřebujete. To samé můžete udělat s horní lištou.

Na obrázku můžete vidět, jak vypadá spuštěný program s základním nastavením. Pro nás zatím nejdůležitější položka je “New Project…” (na obrázku v

červeném oválu) po kliknutí se otevře okno kde se dá vybrat jedna z nejrůznějších šablon. Na obrázku níže je obrázek jak takového okno vypadá.

V levé straně okna, je menu s podporovanými programovacími jazyky, teda hlavně C#.

Po kliknutí na C# se zobrazí seznam, z kterého nás nejvíce zajímá “Windows Forms Application” – normální programy v okně, a druhá nejdůležitější položka je “Console Application” – konzolová aplikace.

Po kliknutí na jednu z šablon se pod seznamem zobrazí 3 pole (na obrázku označeny zeleným obdélníkem). V poli “Name” si můžete napsat jméno programu, v “Location” si můžete zvolit, jiné, než výchozí uložiště Vašeho programu a nakonec do “Solutin Name” můžete napsat jméno, které chcete aby měl Váš program.

Po zmáčknutí tlačítka “OK” je Visual Studio připraveno k programování.

 

Literatura k programování v C#

 

Zde můžete nalézt seznam literatury, kterou jsem si koupil k tomu, abych se naučil programovat v C#.

Obr.Jan Ružička

-V této knížce naleznete hotová řešení, ale hlavně příklady, které jsou tam moc dobře vysvětlené.

Amedeo Mareš: 1001 tipů a triků pro C# 2010

Obr.Jan Ružička

Tato kniha se mě asi nejvíce líbí. Je napsaná ve stylu kraťoučkých textů, které řeší téměř cokoli v C#. Každý tento text má maximálně půl stránky a zabývá se jen jednou věcí. Je to rozdělené na úrovně, takže si můžete dát pozor, aby jste se hned ze začátku nevrhli do něčeho extrémně těžkého.

Úvod do programování v C#

Obr.Jan Ružička

C# je výkonný objektově orientovaný programovací jazyk určený k vývoji aplikací pro platformu .NET. Je velmi podobný jazyku JAVA a je to následník jazyka C++. Díky své uživatelské přívětivosti ve Visual Studiu se tento programovací jazyk těší, čím dál větší oblibě. Na Této stránce naleznete seznam “Lekcí” nebo spíše seznam, jak jsem se já učil C#. Jelikož se C# teprve učím myslím, že tato stránka bude dobrá, pro každého kdo má o programování v C# zájem, ale dosud ještě nevěděl jak začít.