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

dotNET

Started by tino8, 18.01.2010, 06:08:54

« predchdzajce - alie »

Hezechiel

Quote from: dEVIANT on  10.04.2010, 22:22:51
No do metódy vstúpi ako parameter zadaný reťazec a ty zistuješ, čo to je, či to je príkaz abo kokotina. Keď to je príkaz tak ho vykonáš, keď to je kokotina, tak vznikne objekt výnimky, ktorý si si tam vytvoril ( throw new Wrog...("chybove hlasenie")  )...no a v metóde ProcessInput zabalíš HandleInput do try/catch bloku.

takze if(nebude prikaz){throw new Wrog...("chybove hlasenie") } nejak mi vytvaranie vinimiek nedochadza s prednasky
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

Agamemnon

Quote from: Hezechiel on  12.04.2010, 02:48:30
Quote from: dEVIANT on  10.04.2010, 22:22:51
No do metódy vstúpi ako parameter zadaný reťazec a ty zistuješ, čo to je, či to je príkaz abo kokotina. Keď to je príkaz tak ho vykonáš, keď to je kokotina, tak vznikne objekt výnimky, ktorý si si tam vytvoril ( throw new Wrog...("chybove hlasenie")  )...no a v metóde ProcessInput zabalíš HandleInput do try/catch bloku.

takze if(nebude prikaz){throw new Wrog...("chybove hlasenie") } nejak mi vytvaranie vinimiek nedochadza s prednasky

jj, take nieco...

vynimka sa vyhadzuje vtedy, ked dojde ku neocakavanej udalosti... nestandardnemu flowu a pod... takze casto sa to vyhadzuje prave stylom:
if (chyba) throw new Exception();
All code is crap.

42

Hezechiel

tak co do toho if(?????) napisat?
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

Agamemnon

predpokladajme, ze vstup nema parametre...
takisto predpokladajme, ze mame objekty triedy Command v objekte cmdsList triedy CommandsList...

potom napr. takto:


public void HandleInput(string input)
{
 Command cmd = cmdsList.GetCommand(input);
 if (cmd == null) {
   throw new ArgumentException("Entered string is not a command.");
 }

 cmd.Execute();
}


samozrejme... nutna je modifikacia na konkretny pripad... napr. prikazy s parametrami a pod...
takisto je obrovske mnozstvo roznych implementacii tejto metody...
All code is crap.

42

dEVIANT

Alebo to môžeš robiť cez regulárne výrazy, ako bolo na prednáške preberané...a potom

if (match.Success) { ... }
else { throw new WrongFormatException("Zly prikaz!"); }


Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Sxx

neake screeny etc co ste pisali test?


Agamemnon

Quote from: dEVIANT on  12.04.2010, 20:18:50
Alebo to môžeš robiť cez regulárne výrazy, ako bolo na prednáške preberané...a potom

if (match.Success) { ... }
else { throw new WrongFormatException("Zly prikaz!"); }




alebo to moze skombinovat :)
All code is crap.

42

Hezechiel

Takze ak mi to dobre dochadza potrebujem si vytvorit enumerator na prikazi??? staci zoznam ci treba celu triedu???

a este
private void ProcessInput()
        {
            try
            {
                string vstup;
                char[] vstupchar;
                bool vypis = false;
                while (vypis == false)
                {
                    vstup = Console.ReadLine();
                    vstupchar = vstup.ToCharArray(0, vstup.Length);
                    switch (vstupchar[0])
                    {
                        case 'A':
                        case 'a':
                            vypis = field.MoveTile(field.greyTile.Row, field.greyTile.Col + 1); break;
                        case 'D':
                        case 'd':
                            vypis = field.MoveTile(field.greyTile.Row, field.greyTile.Col - 1); break;
                        case 'W':
                        case 'w':
                            vypis = field.MoveTile(field.greyTile.Row + 1, field.greyTile.Col); break;
                        case 'S':
                        case 's':
                            vypis = field.MoveTile(field.greyTile.Row - 1, field.greyTile.Col); break;
                        case 'X':
                        case 'x':
                            Environment.Exit(0); break;
                        case 'N':
                        case 'n':
                            StartNewGame(); break;
                    }
                    if (vstupchar[0] == 'M')
                    {
                        vypis = field.MoveTile((int)vstupchar[1] - 65, (int)vstupchar[2] - 48);
                    }
                    //if (vypis == false)
                        //Console.WriteLine("Zly vstup pre pohyb dlazdice");
                }
            }
            catch (WrongFormatException)
            {
                    throw;

            }
        }

class WrongFormatException : ApplicationException
    {
        public WrongFormatException(string message)
            : base(message) { }

        private void HandleInput(string input)
        {
            if (input.Length == 3 && (input[0] != 'm' || input[0] != 'M'))
                throw new WrongFormatException("Chybne zadanie prikazu pre pohyb dlazdice.");
            if (input.Length == 1 && (input[0] != 'x' || input[0] != 'X' || input[0] != 'n' || input[0] != 'N'))
                throw new WrongFormatException("Neplatny prikaz.");
        }
    }


toto bola moja idea  ???
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

dEVIANT

A moja idea by bola asi takáto...

private void ProcessInput()
        {
            Console.Write("Zadajte vstup: ");
            input = Console.ReadLine();
            try
            {
                HandleInput(input);
            }
            catch (WrongFormatException ex)
            {
                Console.WriteLine(ex.Message);
            }   


a HandleInput metóda nejako takto:
Boolean KnownCommand = true;
            int[] posOfGt = field.GreyTile();
            Regex regex = new Regex(@...$");
            Match match = regex.Match(input);
            if (match.Success)
            {
                switch (input)
                {
                    case "N": StartNewGame(); break;
                    ...
                }


Myslím, že na tých pár príkazov netreba triedu, len cez case volať metódy...
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Agamemnon

a moju ideu ste videli :) aj keď to bolo len vytrhnuté z kontextu, lebo bez hry ako takej :D
All code is crap.

42

Hezechiel

Dakujem vam uz sa mi podarilo zriesit tie exceptiony
chybalo mi to
ze vznik chyby sa zistuje obycajnym if-om potom sa vytvori vinimka ako obicajny novy objekt s  textom pre construtor, a ak bol tento blok dany v try {}
nasledujuci catch{} obsahuje len console.write(ex.message)

niekedy mi treba povedat ako debilovy :D
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

Hezechiel

#86
teraz mam problem s usporiadanim
List<PlayerScore> playerScore = new List<PlayerScore>();
private PlayerScoreTimeComparer timeComparer = new PlayerScoreTimeComparer();
public void addPlayerTime(String name, int time, int movesCount)
       {
           PlayerScore player = new PlayerScore(name, time, movesCount);
           playerScore.Add(player);
           playerScore.Sort( timeComparer );
       }

public class PlayerScoreTimeComparer : IComparer
       {

           #region IComparer Members

           public int Compare(object x, object y)
           {
               PlayerScore skore1 = (PlayerScore)x;
               PlayerScore skore2 = (PlayerScore)y;
               return Compare(skore1.Time,skore2.Time);
           }

           #endregion
       }


chyba k riadku playerScore.Sort( timeComparer );  kde vypisuje chybu   Error   2   Argument '1': cannot convert from 'Puzzle.Services.BestScore.PlayerScoreTimeComparer' to 'System.Collections.Generic.IComparer<Puzzle.Services.BestScore.PlayerScore>'   C:\Users\Milos\Documents\Visual Studio 2008\Projects\Puzzle\Puzzle\BestScore.cs   28   31   Puzzle
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

Agamemnon

v principe to znamena, ze sa tam snazis dat objekt zlej triedy... prakticky by som povedal, ze tvoja trieda PlaterScoreTimeComparer neimplementuje rozhranie IComparer<PlayerScore>...
All code is crap.

42

Hezechiel

prepac teraz som to upravil som skopiroval stary zdrojak tak si to prezri este raz, no neviem co tomu je
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

Agamemnon

stale to iste... IComparer a IComparer<PlayerScore> nie je to iste
All code is crap.

42

Hezechiel

moje riesenie snad je dobre
public void addPlayerTime(String name, int time, int movesCount)
        {
            PlayerScore player = new PlayerScore(name, time, movesCount);
            playerScore.Add(player);
            playerScore.Sort( timeComparer );
        }

public class PlayerScoreTimeComparer : IComparer<PlayerScore>
        {
            #region IComparer<PlayerScore> Members

            public int Compare(PlayerScore x, PlayerScore y)
            {
                return x.Time.CompareTo(y.Time);
            }

            #endregion
        }


ak by mi mohol niekto poradit ako maju vyzerat kody uloh
QuoteV konštruktore triedy PuzzleGame nastavte premennú puzzleGame.
V konštruktore triedy PuzzleGame inicializujte vlastnosť BestScore.

moj napad bol
public PuzzleGame()
        {
            Field field = new Field(4, 4);
            IUserInterface = new ConsoleUI(field);
            IUserInterface.StartNewGame();
            puzzleGame = new PuzzleGame();
            BestScore = new BestScore();
        }

ak to mam blbo prosim povedzte potrebujem mat hotove zadanie do dalsieho tyzdna, som opakujuci a mame len 10 tyzdnovy semester  :ohmigod :'(
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

Agamemnon

1. vyzera to ok...

2. netusim :) nvm detaily toho zadania... ani tvojej implementacie... a pod :)
All code is crap.

42

Hezechiel

vdaka, no neviem ci by sa Ti chcelo prejst celym postupom co je na moodli a potom mojim programom ale vdaka za snahu :), keby sa ozval niekto kto to uz spravil by bolo najrychlejsie :baaa:
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

dEVIANT

Máš to dobre...akurát daj, že :

puzzleGame = this;

Lebo tebe sa to v tvojom prípade zacyklí v konštruktore...
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Agamemnon

Quote from: Hezechiel on  14.04.2010, 16:21:43
vdaka, no neviem ci by sa Ti chcelo prejst celym postupom co je na moodli a potom mojim programom ale vdaka za snahu :), keby sa ozval niekto kto to uz spravil by bolo najrychlejsie :baaa:

keby som mal par hodin volnych cez vikend, tak si to zadanie nakodim :) ale na to sa velmi nespoliehaj :)
All code is crap.

42

mucko


dEVIANT

#96
Quote from: mucko on  15.04.2010, 04:44:13
viete poradit s tymto?
klikni a pomozes mi mozno :(


http://www.daniweb.com/forums/thread27897.html#

tam to típek vyriešil

Dig a čo si porobil? šak ti to šlo ne?:D
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

mucko

ale neni to nahodou pre nejaku webovsku aplikaciu?
neviem no... skusim to inac a ked nepojde tak tak budem musiet pouzit HARDCORE metody aby to islo!
(budem sa vyhrážať NB, že ho rozbijem, keď to užaj neurobí správne :D)

Hezechiel

ludia menej ochotny a nastvany na blbych necitajte:
hladam ochotnu dusu, potrebujem dokoncit to puzle do piatku ale ako sikovny clovek mam 4 prenesene predmety z druhaku, ak by bol niekto ochotny a poslal mi spravene zadanie, alebo aspon triedy z cviceni 10.11.12, zvysok uz mam len ozaj nestiham a to som nespravil do bakalarky ani ciarku :( tak ludia prosim pomozte mi stymto  :embarassed:
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

Hezechiel

Pri odovzdavani puzzle treba robit nejaku dokumentaciu???
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(