• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    ESY
    ESY --- ---
    CERMINEK:
    jo tak udelej si neakej objekt



    Treba CStone
    {
    public EColor Color {get;set;}
    public EStoneType StoneType {get;set;}
    }

    enum EColor { Black, White }
    enum EStoneType { Normal,Dame}

    pokud chces mit teda pole tak ho nedelej stringu ale tech CStone[,]

    nekde si udelej tu inicializacni tridu. Co to pole naplni.

    A pak dal ty metody

    uz budes jen itinerovat ostatni sutry s neakejma podminkama.

    Kouk jsem an to jen rychle
    CERMINEK
    CERMINEK --- ---
    ESY: To bych rád věděl i já :) mám zadání úkolu a nulovou znalost OOP :/

    Ten paskvil co mám je tady http://pastebin.com/VJpKgRxA a zadání je v prvním komentu... Tak nějak jsem načal strukturu tříd, ale tím jsem asi skončil...
    ESY
    ESY --- ---
    CERMINEK: popravde ted nevim co presne myslis a ani co chces :]
    CERMINEK
    CERMINEK --- ---
    [C#] using System; using System.Collections.Generic; using System.Linq; using Syst - Pastebin.com
    http://pastebin.com/VJpKgRxA
    Za jakoukoliv radu, jak to rozchodit budu vděčný... odevzdávám dneska v noci... ach ta proktrastinace :(
    CERMINEK
    CERMINEK --- ---
    Tak jsem to nakonec vyřešil, že to naplním natvrdo... To pole se takhle vytvoří jen na začátku... teď pro změnu řeším jak to rozepsat do objektů a tady jsem v koncích i s nápovědou...
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    MORMEGIL: retezec jsem vybral v duchu pseudokodu, pac jsem netusil jak to definuje :) nicmene s rozlozenim sutru mas recht, je videt ze uz jsem nad ranem moc pozor nedaval.

    MORMEGIL
    MORMEGIL --- ---
    SHIGORBIRDMAN: Tak puristi by hlavně takovýhle věci nereprezentovali řetězcem, žeáno. Navíc on očividně nechce střídání barev na pozadí (ty se ostatně dají zjistit přes (x+y)%2), ale počáteční pozice kamenů. ;-)

    Nějakým cyklem se to dá zařídit třeba zcela obecně takto:
    const int INITIAL_PIECE_ROWS = 3;
    const int ROWS = 8;
    const int COLUMNS = 8;
    for (int player = 0; player < 2; ++player)
    {
    	for (int row = 0; row < INITIAL_PIECE_ROWS; ++row)
    	{
    		int realRow = player == 0 ? row : ROWS - row - 1;
    		for (int col = realRow % 2; col < COLUMNS; col += 2)
    		{
    			Console.WriteLine("Kámen hráče {0} na {1};{2}", player + 1, col, realRow);
    		}
    	}
    }
    


    Anebo by to mohlo fungovat i nějak takhle ;-)
    var pieces = Enumerable.Range(0, ROWS)
    	.Where(row => row < INITIAL_PIECE_ROWS || row >= ROWS - INITIAL_PIECE_ROWS)
    	.Join(Enumerable.Range(0, COLS), _ => 0, _ => 0, (row, col) => new { Row = row, Col = col, Player = row >= INITIAL_PIECE_ROWS ? 2 : 1 } )
    	.Where(x => (x.Row + x.Col) % 2 == 0);
    
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    (puristi a optimalizatori by pochopitelne dali misto x a y < 8 porovnavani s length, aby mel compiler radost a mohl vypnout boundary check :))
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    CERMINEK: nic elegantnejsiho nez tohle mne nenapada.

    bool markh1 = true;
    for (var y = 0 ; y < 8; y++)
    {
    for (var x = 0; x < 8; x++)
    {
    if (markh1) pole[x,y] = "h1";
    else pole[x,y] = h2;
    markh1 = !markh1;
    }
    marhh1 = !markh1;
    }

    nicmene v tomhle pripade bych opravdu spis udelal statickou inicializaci typu

    pole = { {"h1", "h2", "h1", "h2", "h1", "h2", "h1", "h2"},
    { "h2", "h1", "h2", "h1", "h2", "h1", "h2", h1}, a tak dal....
    CERMINEK
    CERMINEK --- ---
    CERMINEK: TAk jsem začal pracovat na tomhle úkolu a narazil jsem na první věc, kterou tak nějak nevím :/ Potřebuji naplnit dvourozměrné pole pro hru dáma, tzna uložit na pozice 0,0 2,0 4,0 6,0 1,1 3,1 5,1 7,1 0,2 2,2 4,2 6,2 hodnotu "H1" a na pozice 1,7 3,7 5,7 7,7 0,6 2,6 4,6 6,6 1,5 3,5 5,5 7,5 hodnotu "H2", ale nedaří se mi vymyslet elegantní cyklus, kterým bych to pole naplnil.. Nebude lepší to naplnit "ručně"? Tohle pole se naplní vždy na začátku, než se s ním začne pracovat...
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    H_U_N_T_E_R: aha.. kazda konference misi mit zrejme svuj retro koutek pro pametniky, chapu ;D

    TENCOKACISTROMY: a podobne je to i s tim Springem prave :))
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    H_U_N_T_E_R: obzvlast FoxPro je zajimava oblast pro dusevni masochisty :)
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    BUTHRAKAUR: starší technologie jsou potřeba. Třeba loni podle user voice hlasování byl největší zájem o FoxPro :-D
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    H_U_N_T_E_R: je to proste z pohledu .NET cca 5let stara technologie preportovana z Javy. XML hell, IOC s tak max 50% funkcionalitou .NET konkurence a tak. Bohuzel jsem ted nucen s tim cca pul roku zapasit (zrovna kousek od Petra) a je to vazne jedna z nejhorsich veci, co se kdy .NETu prihodila :) Ale prednaset umi dobre - to je pravda..
    Proste mne jen zarazilo, ze mezi tema vesmes hodne zajimavejma prednaskama o novejch/modernich tematech, pristalo zrovna tohle.
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    BUTHRAKAUR: vybíráme tak, že pošlem request do MVP konfery, na Microsoft a po lidech, kteří něco zajímavého přednášeli, případně o nich víme, že umí dobře přednášet.
    Petr Puš je zrovna ta poslední kategorie :-). Se Spring.NET jsem nikdy nedělal, takže upřímě netuším jak moc je to zavržení hodné. Když mi tohle téma posílal, tak jsem mlčky předpokládal, že když v tom dělá Unicorn ty svý mega projekty, tak to bude mít i nějaké výhody.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    H_U_N_T_E_R: taky se zkusim zastavit - vetsina prednasek vypada zajimave.. akorat mne teda zarazi Spring.NET - jakym zpusobem se vlastne vybiraji na ms-fest prednasky, ze muze takova zavrzenihodna technologie ukoristit prostor? :)))
    MIRROR
    MIRROR --- ---
    OODOOW: Zkusil bych tohle, to ma i fci na autowidth http://epplus.codeplex.com/
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    OODOOW: To se obavam, ze jen tak jednoduse neudelas. Precijen, tahle funkcionalita vyzaduje zmerit ten obsah a to asi bez vykreslovaciho jadra nezvladnes :/. Budes si tu sirku muset spocitat/odhadnout sam.
    OODOOW
    OODOOW --- ---
    Měl bych dotaz k exportu z c# do excelu pomocí open xml. Podařilo se mi pomocí nějakých tutorialů z netu vytvořit excelový soubor xlsx, ale teď nevím, jak nastavit, aby se tam sloupce automaticky rozšířily na šířku nejdelšího záznamu. Prostě aby uživatel nemusel vždycky všecky sloupce ručně rozšiřovat, aby viděl celá data. Vím jak to udělat ručně, že nastavím šířku pro každý sloupec, ale chtěl bych to automaticky. :)
    NECROMAN
    NECROMAN --- ---
    H_U_N_T_E_R: Budu tam mit prednasku o novinkach ve Windows Phone 8 a zakladny vyvoje pro Windows 8 v C#.
    Pokud mate nejake specificke dotazy, co byste se tam radi dozvedeli, tak napiste bud sem, nebo do posty. Dik :)
    CRANK
    CRANK --- ---
    H_U_N_T_E_R: Jj. To vím. Ale ta ošklivá ASP.NET 1.1-like chybová hláška je zlo (imho) ;)
    Kliknutím sem můžete změnit nastavení reklam