TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach

FEI archív 2012/2013 => 2. ročník => Topic started by: m@tej on 27.03.2013, 22:29:42

Title: dotNET
Post by: m@tej on 27.03.2013, 22:29:42
cawte vsetci, nahodou niekto kto mal .NET, bol tazky zapocet?? co bolo na zapocte?? nahodou nejake screeny?? :)
Title: Re: dotNET
Post by: m@tej on 29.03.2013, 20:04:14
no vela ludi asi screeny z toho nerobilo, no nevadi :P

nechcem zakladat new topic, tak pisem tu:
mame ulohu->
Implementujte metódu ProcessInput tak, aby boli splnené nasledujúce požiadavky:
Zadanie vstupu nech je požadované dovtedy, pokiaľ nebude zadaný vstup od používateľa v správnom tvare. V požiadavke má byť zdôraznenie zadania nasledujúcich možností:
(X) EXIT - ukončenie hry.
(N) NEW - nová hra.
(MB4) MOVE - vykonanie posunu dlaždice v riadku označenom znakom B a stĺpci označenom číslom 4.
Pre načítanie vstupu použite vhodnú statickú metódu triedy Console.
Pre overenie vstupu od používateľa použite regulárny výraz.
Na základe úspešnej verifikácie identifikujte konkrétnu akciu a realizujte ju. Identifikáciu môžete realizovať tak, že regulárnym výrazom budete definovať pomenovanú skupinu pre typ akcie a na základe jej hodnoty identifikujete konkrétnu akciu.
Pri výbere ukončenia hry ukončite vykonávanie aplikácie použitím statickej metódy Environment.Exit(0);.
.
.
.
Ako nacitam nieco z klavesnice  a reagujem nato tak bez toho aby som stlacil enter?? ktore metody treba pouzit?? popripade velmi nechapem
Quote
Identifikáciu môžete realizovať tak, že regulárnym výrazom budete definovať pomenovanú skupinu pre typ akcie a na základe jej hodnoty identifikujete konkrétnu akciu
tomuto tak viete mi to niekto vysvetlit, resp. nejak nazorne ukazat?? dakujem :)
Title: Re: dotNET
Post by: Agamemnon on 30.03.2013, 01:51:18
Quote
Ako nacitam nieco z klavesnice  a reagujem nato tak bez toho aby som stlacil enter?? ktore metody treba pouzit??
Code: [Select]
Console.ReadKey();

btw - toto ti je na nič, pretože pre načítanie príkazu move potrebuješ 3 klávesy... takže najskôr za nimi enter...

+
to, čo nechápeš, je takéto niečo:
- .net má schopnosť načítať dáta zistené pomocou regexu do pomenovaj grupy (named groups) -> dokážeš urobiť niečo také, že ti prvý znak načíta do grupy s menom "akcia" a potom zvyšok do grupy s menom napr. "parametre"...
potom vieš urobiť niečo také:
Code: [Select]

if (groups["action"].Value == "X") {
  PerformExit();
}
else if (groups["action"].Value == "N") {
  PerformNew();
}
else ...

btw -
za tie slovenské preklady by som strieľal... potom človek, ktorý sa do toho rozumie, musí pol minúty premýšľať, že čo vlastne chcel autor povedať... navyše to zmätie študentov, pretože nevedia ani povedať, čo majú googliť, aby prišli na to, ako to urobiť...
Title: Re: dotNET
Post by: m@tej on 30.03.2013, 04:10:15
Quote
btw - toto ti je na nič, pretože pre načítanie príkazu move potrebuješ 3 klávesy... takže najskôr za nimi enter...

samozrejme tu asi bude potrebny enter, ale pre tie ostatne dva pripady + je mozne to spravit aj tak, ze pohyb bude pomocou w,a,s,d, takze chcel by som vediet jak
da sa cez nieco take, ale nejak skontrolovat vstup cez regexy a bez enteru sa mi nejak nedari, ked sa dostanem do switchu tak uz v pohode to bezi
Code: [Select]
switch (Console.ReadKey(true).Key)
                    {
                        case ConsoleKey.W: ... break;
                        case ConsoleKey.A: ... break;
                        case ConsoleKey.S: ... break;
                        case ConsoleKey.D: ... break;
                        case ConsoleKey.N: ... break;
                        case ConsoleKey.X: ... break;
                        default: ... break;
                    }

to ostatne co si poslal pozriem sa na tie grupy a uvidim ze jak to pojde
vdaka zatim za pomoc :)
Title: Re: dotNET
Post by: Agamemnon on 30.03.2013, 15:53:06
ak môžeš robiť pohyb wasd, tak potom to je dobrý nápad - to vieš pekne použiť... :)

nz, np, a kľudne sa pýtaj, keby niečo...
Title: Re: dotNET
Post by: m@tej on 01.04.2013, 00:39:38
no prislo to nieco :P spravil som sice dalsie cviko, delegaty, ale opat som sa vratil k tomuto, lebo som to nedokoncil :D

mozes mi vysvetlit jedno ako funguju tie grupy, lebo trosku nechapem a potom ako to sklbim s tou castou kodu co som tu dal na pohyb?? =>
Code: [Select]
switch (Console.ReadKey(true).Key)
                    {
                        case ConsoleKey.W: ... break;
                        case ConsoleKey.A: ... break;
                        case ConsoleKey.S: ... break;
                        case ConsoleKey.D: ... break;
                        case ConsoleKey.N: ... break;
                        case ConsoleKey.X: ... break;
                        default: ... break;
                    }

lebo ked to mam takto spravene cez switch tak mi tam ani regexy netreba nie? no ked to mame tak v manualoch tak asi by bolo dobre to spravit aj pomocou regexov :)
Title: Re: dotNET
Post by: Agamemnon on 01.04.2013, 05:36:44
jop, keď máš takto, tak regex nepotrebuješ... :)

ten regex ti treba na to, aby si zanalyzoval ten príkaz na pohyb "MB4"...

máš nejaký takýto regex napr.:
Code: [Select]
(?<action>M)(?<param>[A-Z][0-9])|(?<action>X)
to "action" a "param" sú mená group, do ktorých sa ti tie hodnoty uložia... potom to vieš v kóde použiť nejak takto:

Code: [Select]
GroupsCollection groups = regex.Match(inputToTest).Groups;
if (groups["action"].Value == "M") { DoMove(groups["param"].Value); }
else if (groups["action"].Value == "X") { DoExit(); }

edit:
tu je nejaké čítanie o groupách, ak by si veľmi chcel :D
http://msdn.microsoft.com/en-us/library/bs2twtah.aspx (http://msdn.microsoft.com/en-us/library/bs2twtah.aspx)