Author Topic: dotNET  (Read 27646 times)

Hezechiel

  • Full Member
  • ***
  • Posts: 105
  • Remember my name, you'll be screaming it later.
    • View Profile
Re: dotNET
« Reply #75 on: 12.04.2010, 02:48:30 »
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

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: dotNET
« Reply #76 on: 12.04.2010, 15:21:09 »
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

  • Full Member
  • ***
  • Posts: 105
  • Remember my name, you'll be screaming it later.
    • View Profile
Re: dotNET
« Reply #77 on: 12.04.2010, 16:31:24 »
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

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: dotNET
« Reply #78 on: 12.04.2010, 20:12:52 »
predpokladajme, ze vstup nema parametre...
takisto predpokladajme, ze mame objekty triedy Command v objekte cmdsList triedy CommandsList...

potom napr. takto:

Code: [Select]
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

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: dotNET
« Reply #79 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

Code: [Select]
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

  • Sr. Member
  • ****
  • Posts: 329
    • View Profile
Re: dotNET
« Reply #80 on: 12.04.2010, 21:51:52 »
neake screeny etc co ste pisali test?


Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: dotNET
« Reply #81 on: 12.04.2010, 22:10:37 »
Alebo to môžeš robiť cez regulárne výrazy, ako bolo na prednáške preberané...a potom

Code: [Select]
if (match.Success) { ... }
 else { throw new WrongFormatException("Zly prikaz!"); }



alebo to moze skombinovat :)
All code is crap.

42

Hezechiel

  • Full Member
  • ***
  • Posts: 105
  • Remember my name, you'll be screaming it later.
    • View Profile
Re: dotNET
« Reply #82 on: 13.04.2010, 01:37:54 »
Takze ak mi to dobre dochadza potrebujem si vytvorit enumerator na prikazi??? staci zoznam ci treba celu triedu???

a este
Code: [Select]
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;

            }
        }
Code: [Select]
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

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: dotNET
« Reply #83 on: 13.04.2010, 01:50:56 »
A moja idea by bola asi takáto...

Code: [Select]
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:
Code: [Select]
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

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: dotNET
« Reply #84 on: 13.04.2010, 03:52:19 »
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

  • Full Member
  • ***
  • Posts: 105
  • Remember my name, you'll be screaming it later.
    • View Profile
Re: dotNET
« Reply #85 on: 13.04.2010, 19:51:12 »
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

  • Full Member
  • ***
  • Posts: 105
  • Remember my name, you'll be screaming it later.
    • View Profile
Re: dotNET
« Reply #86 on: 13.04.2010, 22:12:05 »
teraz mam problem s usporiadanim
List<PlayerScore> playerScore = new List<PlayerScore>();
private PlayerScoreTimeComparer timeComparer = new PlayerScoreTimeComparer();
Code: [Select]
public void addPlayerTime(String name, int time, int movesCount)
        {
            PlayerScore player = new PlayerScore(name, time, movesCount);
            playerScore.Add(player);
            playerScore.Sort( timeComparer );
        }
Code: [Select]
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
« Last Edit: 13.04.2010, 22:29:27 by Hezechiel »
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: dotNET
« Reply #87 on: 13.04.2010, 22:23:36 »
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

  • Full Member
  • ***
  • Posts: 105
  • Remember my name, you'll be screaming it later.
    • View Profile
Re: dotNET
« Reply #88 on: 13.04.2010, 22:30:12 »
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

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: dotNET
« Reply #89 on: 13.04.2010, 22:47:08 »
stale to iste... IComparer a IComparer<PlayerScore> nie je to iste
All code is crap.

42

Hezechiel

  • Full Member
  • ***
  • Posts: 105
  • Remember my name, you'll be screaming it later.
    • View Profile
Re: dotNET
« Reply #90 on: 14.04.2010, 07:49:14 »
moje riesenie snad je dobre
Code: [Select]
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
Quote
V konštruktore triedy PuzzleGame nastavte premennú puzzleGame.
V konštruktore triedy PuzzleGame inicializujte vlastnosť BestScore.

moj napad bol
Code: [Select]
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

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: dotNET
« Reply #91 on: 14.04.2010, 16:14:36 »
1. vyzera to ok...

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

42

Hezechiel

  • Full Member
  • ***
  • Posts: 105
  • Remember my name, you'll be screaming it later.
    • View Profile
Re: dotNET
« Reply #92 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:
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: dotNET
« Reply #93 on: 14.04.2010, 17:22:43 »
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

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: dotNET
« Reply #94 on: 14.04.2010, 19:54: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

  • Guest
Re: dotNET
« Reply #95 on: 15.04.2010, 04:44:13 »
viete poradit s tymto?
klikni a pomozes mi mozno :(

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: dotNET
« Reply #96 on: 15.04.2010, 05:19:40 »
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
« Last Edit: 15.04.2010, 05:27:30 by dEVIANT »
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

mucko

  • Guest
Re: dotNET
« Reply #97 on: 15.04.2010, 05:52:11 »
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

  • Full Member
  • ***
  • Posts: 105
  • Remember my name, you'll be screaming it later.
    • View Profile
Re: dotNET
« Reply #98 on: 17.04.2010, 21:31:39 »
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

  • Full Member
  • ***
  • Posts: 105
  • Remember my name, you'll be screaming it later.
    • View Profile
Re: dotNET
« Reply #99 on: 22.04.2010, 22:58:49 »
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 :(