• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

dotNET

Started by m@tej, 27.03.2013, 23:29:42

« predchdzajce - alie »

m@tej

cawte vsetci, nahodou niekto kto mal .NET, bol tazky zapocet?? co bolo na zapocte?? nahodou nejake screeny?? :)

m@tej

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
QuoteIdentifiká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 :)

Agamemnon

QuoteAko nacitam nieco z klavesnice  a reagujem nato tak bez toho aby som stlacil enter?? ktore metody treba pouzit??

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é:

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ť...
All code is crap.

42

m@tej

Quotebtw - 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
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 :)

Agamemnon

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...
All code is crap.

42

m@tej

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?? =>
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 :)

Agamemnon

#6
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.:
(?<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:


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
All code is crap.

42