abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 13:33 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.6. Přehled novinek s náhledy v oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | IT novinky

    V Edici CZ.NIC, knižní řady správce české národní domény, vychází nová kniha Martina Malého Kódy, buildy, firmwary. Autor po půl roce od vydání předchozího titulu přichází se svou již sedmou knihou, tentokrát zaměřenou na vývoj programového vybavení pro embedded zařízení. Publikace s podtitulem Základy vývojářského řemesla pro tvůrce hobby elektroniky nabízí praktického průvodce pro všechny, kdo své projekty vytvořené s Arduinem

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 11:44 | Komunita

    V Brně na FIT VUT probíhá dvoudenní open source komunitní konference DevConf.CZ 2026. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána nová verze 15.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    17.6. 19:11 | Zajímavý projekt

    Vývojáři Ubuntu představili projekt Myna, tj. iniciativu zaměřenou na přidání funkce převodu řeči na text do prostředí desktopu Ubuntu. Dle plánu již v Ubuntu 26.10.

    Ladislav Hagara | Komentářů: 2
    17.6. 18:33 | Zajímavý software

    Společnost Epic Games představila nový open source systém pro správu verzí Lore navržený pro "bezprecedentní škálovatelnost dat i týmů a optimalizovaný pro projekty, včetně her a zábavy, které kombinují kód s velkými binárními soubory, aby uspokojil potřeby vývojářů i umělců". Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 0
    17.6. 15:33 | IT novinky

    Úřad pro ochranu hospodářské soutěže (ÚOHS) provedl v říjnu 2024 místní šetření u společnosti Seznam.cz. Úřad prověřoval důvodné podezření na možné protisoutěžní jednání, konkrétně zneužití dominantního postavení. Krajský soud v Brně v květnu 2025 konstatoval, že toto šetření bylo nezákonné. Nejvyšší správní soud (NSS) včera rozhodl, že šetření bylo provedeno v souladu se zákonem. Krajský soud bude muset případ posoudit znovu.

    Ladislav Hagara | Komentářů: 0
    17.6. 12:22 | IT novinky

    Byl představen skládací telefon Commodore Callback 8020. Ani hloupý, ani chytrý. Pro fanoušky Commodore a digitálního minimalismu. Bez webového prohlížeče a sociálních sítí. S předinstalovaným WhatsAppem. S operačním systémem Sailfish OS.

    Ladislav Hagara | Komentářů: 5
    17.6. 08:22 | Bezpečnostní upozornění

    V OpenBSD byla objevena 27 let stará chyba v ppp pomocí níž lze vzdáleně obejít autentifikaci. Chyba byla nahlášena 12.6. a 14.6. byla opravena. Bližší info v článku A 27-Year-Old Authentication Bypass in OpenBSD's PPP Stack.

    Max | Komentářů: 6
    17.6. 05:22 | Zajímavý článek

    Odpověď Evropské komise (pdf) k evropské občanské iniciativě Stop Destroying Videogames, jež je součástí hnutí Stop Killing Games: "Komise se domnívá, že v této fázi nemůže navrhnout právní povinnost zachovat hratelnost videoher poté, co přestaly být poskytovány komerčně. Důvodem jsou i stávající práva duševního vlastnictví. Podle autorského práva EU mají nositelé práv výlučná práva ke svým výtvorům. Kromě autorských práv mohou být

    … více »
    Ladislav Hagara | Komentářů: 20
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (3%)
     (15%)
     (26%)
    Celkem 1934 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dokoncil jsem domaci ukol

    1.2.2009 23:48 | Škola | poslední úprava: 26.6.2010 07:32

    Uff. Mozna se to bude pred odevzdanim jeste trochu menit, ale hlavne jsem dokoncil to strasne dokumentovani. Tak jsem si rikal, ze bych to mohl konecne nekde zverejnit.

    Mym ukolem bylo vytvorit neco podobneho jako je stara DOSova hra King's Quest 1. Tedy hru na motivy pohadek, kde hrac chodi s panackem a zadava mu slovni prikazy. Vice na strankach tohoto programu.        

    Hodnocení: 81 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    2.2.2009 00:53 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    Zajímavé, ale měl bych pár připomínek :)
    • Moc nechápu tu závislost na X. Mám pocit, že jste to sám sobě zkomplikoval a znepřehlednil, teda pokud to nebylo přímo v zadání. Mám pocit, že ve zdrojácích zbytečně řešíte věci kolem X, místo toho, aby jste se plně soustředil na hru. Ve výsledku to bude nepřenositelné a navíc i pomalé.
    • Čeština bez háčků a čárek v roce 2009 mi přijde jako špatný vtip.
    • Použil bych C++, výjimky by vám asi ve vašem programovacím stylu pomohly.
    mirefek avatar 2.2.2009 18:26 mirefek | skóre: 6 | blog: proc_dalsi_nazev
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol

    1) Uznavam, ze jsem musel resit nektere veci, ktere obvykle resi jine knihovny. To ma ovsem tu vyhodu, ze muzu vsechno udelat tak, jak ja budu chtit a budu presne vedet, jak moje funkce funguji. V nekterych souborech tedy zdanlive zbytecne resim veci kolem X a v jinych se soustredim na hru. Nechapu, co myslite tim, ze to je neprenositelne a pomale. Pomale se mi to tedy nejevi a pokud prenositelnosti myslite kompatibilitu se systemy bez X, tak ta mi nevadi.

    2) Cestina bez hacku a carek vubec neni spatny vtip. Program ji podporuje hned ze dvou duvodu. Za prve zvlada cestinu s hacky a carkami jen v pripade, ze vas pocitac umi kodovani, ktere program potrebuje. Za druhe mam (a myslim, ze i nekdo dalsi) obvykle nastavenou anglickou klavesnici a prepinat kvuli hre na ceskou se mi nechce. Obzvlast, kdyz hru testuji a tedy soucasne upravuji zdrojaky. Navic hru spoustim prikazem "./kraluk" a druhy znak bych na ceske klavesnici musel hledat.

    3) Uznavam, ze v modulech save a load by se vyjimky docela hodily. Kdyz mam ale cely zbytek v jednoduchem C-cku.

    2.2.2009 19:09 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    1) No možná jste to udělal přesně tak, jak jste chtěl, ale pochybuji, že vám to pojede na každém X serveru v každé možné konfiguraci. Pomalé to samozřejmě bude, protože jste neměl čas řešit optimalizace, které za vás řeší jiné knihovny.

    Například tento kód je prostě pomalý a jiné knihovny to řeší mnohem (klidně i 10x) líp:
    void rescalePixmap (XImage *ximage, Pixmap *pxm)
    /*********************************************/
    {
      XImage *ipom;
      GC lgc;
      int i,j,x,x2,y;
      unsigned long pixel;
    
      if(*pxm) XFreePixmap(display, *pxm);  // Neni-li pxm None, odallokuji to
      if(ratio == 0 || !ximage){
        *pxm = None;
        return;
      }
      cekalose = 1;
    
      // Pripravim novou pixmapu:
    
      *pxm = XCreatePixmap(display, root,
    		       ximage->width*ratio, ximage->height*ratio, ximage->depth);
      lgc = XCreateGC(display, *pxm, 0, NULL);
    
      if(ratio <= IMAGRAT){
        if(ratio == 1){  // Pomer je 1:1 -> neni treba aplikovat scale:
          XPutImage(display, *pxm, lgc, ximage, 0, 0, 0, 0,
    		ximage->width, ximage->height);
          XFreeGC(display, lgc);
          return;
        }
        ipom = XCreateImage (display,
    			 CopyFromParent, ximage->depth,
    			 ximage->format, ximage->xoffset, 
    			 malloc(ximage->bytes_per_line*ratio*
    				ximage->height*ratio),
    			 ximage->width*ratio, ximage->height*ratio,
    			 ximage->bitmap_pad, ximage->bytes_per_line*ratio);
      }
    
      for(y=0; y<ximage->height; y++)
        for(x=0; x<ximage->width; x++){
          pixel = XGetPixel(ximage, x, y);    // Pro kazdy pixel ze zdrojoveho obrazku
          if(ratio <= IMAGRAT)
    	for(j=y*ratio; j<(y+1)*ratio; j++)
    	  for(i=x*ratio; i<(x+1)*ratio; i++)
    	    XPutPixel(ipom, i, j, pixel); // vykreslim ctverec do pomocneho ximage
          else{
    	// nebo vykreslim cely radek do pixmapy:
    
    	for(x2 = x+1; x2<ximage->width && XGetPixel(ximage, x2, y) == pixel; x2++);
    	XSetForeground(display, lgc, pixel);
    	XFillRectangle(display, *pxm, lgc,
    		       x*ratio, y*ratio, ratio*(x2-x), ratio);
    	x = x2-1;
          }
        }
    
      if(ratio <= IMAGRAT)
        XPutImage(display, *pxm, lgc, ipom, 0, 0, 0, 0,
    	      ipom->width, ipom->height);
    
      XFreeGC(display, lgc);
    }
    
    2) Háčky a čárky se dají jednoduše odfiltrovat, ale velmi těžce doplnit. Ale tím, že jste použíl přímo X bych věřil tomu, že jste se vůbec nechtěl zabývat tím, jak korektně zjistit unicode charakter ve všech různých konfiguracích X (a není to vůbec jednoduché), popřípadě jak pracovat s unicode (utf-8,16,32).

    3) Asi né jen tam :-) Já jsem to napsal hlavně v souvislosti s malloc(), kde nikde nekontrolujete, jestli vám náhodou nevrátil NULL. Pro takovou hru je to samozřejmě prkotina, ale je to velmi špatný zvyk a věřím tomu, že v nějakém projektu, na kterém pracuje víc lidí by toto ostatním velice vadilo.

    mirefek avatar 2.2.2009 19:40 mirefek | skóre: 6 | blog: proc_dalsi_nazev
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol

    1) Myslim, ze funkci rescalePixmap mam docela dobrou. Predevsim proto, ze tim pomerne rychle nataham pixmapy pres sit na X server. Ja opravdu kvuli teto funkci zadne zpomaleni hry nepocituji, ale mozna mam jen prilis rychly pocitac. Navic nevim, jestli pouziti jinych knihoven prinese vzdy zrychleni. Ty jine knihovny totiz resi obvykle mnohem obecnejsi problemy nez ja.

    2) Vim, ze se hacky a carky daji odfiltrovat, ale hure doplnit. Ten program vsak nema za ukol odfiltrovavat hacky a carky. Mam vsak na vyber jak jazyk, kde hacky a carky odfiltrovane jsou, tak jazyk, kde nejsou. Priznavam, ze spravna podpora UTF-8 v X je prilis slozita, takze tento program zvlada cestinu s hacky a carkami pouze v kodovani, iso8859-2.

    3) Aha. Ale to uz je skoro jedno jestli program zkolabuje na Segmentation fault nebo na vyjimku, ze se nepodarilo pouzit malloc.

    2.2.2009 20:44 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    1) Ta funkce je pomalá. Kdybych změřil, kolik cyklů trvá jeden pixel vaši funkce a funkce v nějaké knihovně, byly by rozdíly v řádech desítek. Zrychlení vám přinese už knihovna, která se zabývá počítačovou grafikou a na rescaling je použitý třeba algoritmus využívající SSE (qimageblitz je dobrý příklad, původem z imlib2).

    2) Pokud nechcete závislost na knihovnách, které má většina uživatelů, je to váš boj :-)

    3) Existuje dobrý zvyk programátorů. Klidně si můžete napsat funkci xmalloc(), která spadne při chybě, někteří to tak normálně dělají, ale ignorovat návratové hodnoty u funkcí, které můžou selhat je prostě špatné.
    Luk avatar 2.2.2009 21:43 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    Klidně si můžete napsat funkci xmalloc(), která spadne při chybě, někteří to tak normálně dělají, ale ignorovat návratové hodnoty u funkcí, které můžou selhat je prostě špatné.
    Kromě toho není běžně důvod, aby to při selhání malloc() padalo přímo na hubu. Program může běžet dál, třeba chvíli počkat a pak zkusit alokaci znovu. Připomínám, že selhání malloc() je na Linuxu prakticky vyloučené, protože ve výchozím nastavení je povolen overcommit a jádro může tedy zvesela přidělovat paměť, kterou vůbec nemá (přidělí se ve skutečnosti až při výpadku stránky, když se proces do té paměti pokusí něco zapsat).
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    mirefek avatar 3.2.2009 08:24 mirefek | skóre: 6 | blog: proc_dalsi_nazev
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol

    1) Nechapu, proc obvinujete z pomalosti funkci, ktera vetsinu prace prenecha X serveru. Vy tu pomalost pocitujete nejak lidsky? Nebo jste se jen podival do zdrojaku a shledal, ze to je pomale. Myslim, ze je spousta jinych a pouzivanejsich programu, ktere by se daly zrychlit. Pokud mate pocit, ze muj program dlouho startuje, je to spise tim, ze pri startu nacitam mnohem vice obrazku nez je nezbytne.

    3) No dobra s tim mallocem mate asi pravdu. Vypadalo by to profesionalsteji.

    3.2.2009 13:47 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    1)

    Abych se přiznal, mi osobně je to úplně jedno, ten projekt reprezentuje vaše programovací schopnosti, né moje :-)

    Chtěl jsem vám jen vysvětlit, že nemůžete napsat rychlou funkci pro scaling, pokud se tím tématem nezabýváte. Vaše funkce vygeneruje takový traffic, že kdyby jste si ten scaling udělal na klientu a pomocí XPutImage() to přenesl na server, tak uděláte mnohem líp.

    PS: Ať se daří :)
    mirefek avatar 3.2.2009 16:00 mirefek | skóre: 6 | blog: proc_dalsi_nazev
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol

    Ja jsem to puvodne mel naprogramovane tak, ze udelam scaling na klientu a pak to prenesu na server funkci XPutImage(). Pak jsem ovsem experimentalne zjistil, ze postupne vykreslovani pomoci XFillRectangle() funguje pres sit rychleji, predevsim pri velkych zvetsenich. To, co zdrzovalo, nebyl pomaly scaling na klientu, ale sit. Kdyz program spustim na stejnem pocitaci, jako je X server, je zmena policka okamzita v obou pripadech.

    Nicmene dekuji za vase pripominky, priste se mozna pokusim o lepsi optimalizaci rychlosti, nejlepe za pomoci goto konstrukci :)

    hikikomori82 avatar 2.2.2009 00:57 hikikomori82 | skóre: 18 | blog: foobar | Košice
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    Smekám. Ked nebudes vediet kam dalej, mrkni sa na kniznicu cairo. Je to este jednoduchsie ako xlib+libxpm a ako bonus ti budu fungovat utf8 fonty a png obrazky (vratene priehladnosti).
    2.2.2009 07:45 Zdenek
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    Spis nez cairo bych pouzil SDL, zvlast kdyz jsou to bitmapy.
    2.2.2009 17:19 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    Já bych použil obojí, jde to krásně propojit. V SDL se krásně pracuje s bitmapa, ale bohužel už blbě s kreslením ruzných 2D věcí (a to je cairo perfektní, navíc se místo bitmap můŽe použít SVG).
    Baník pyčo!
    mirefek avatar 2.2.2009 18:14 mirefek | skóre: 6 | blog: proc_dalsi_nazev
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol

    Oboji bych nepouzil, protoze se mi nejevi dobre mit program zavisly na spouste dalsich knihoven.

    Cairo neznam, ale SDL nemam rad. Zkousel jsem nejaky jednoduchy SDL programek a ten vytocil procesor na plne obratky. Je mi jasne, ze se v SDL da nejak zaridit, aby se to nestalo, ale tento priklad ci tutorial me od SDL lehce odradil. Navic vsechny SDL hry, ktere znam, pri fullscreenu zcela zablokuji windowmanager.

    2.2.2009 02:08 JohnnyDoe | skóre: 11 | blog: _
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    Wtf, "Mirek Olšák", syn TOHO Petra Olšáka :-).
    Luk avatar 2.2.2009 06:34 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    Ano, toho: "To 'h' je hodnost, a ne něco jiného, například ... suvenýr z Prahy." "Teď to zakryjeme ... rucema ... rukoumi..." "Tak, a teď tu závorku musíme vyšpekulovat, aby to vyšlo..." "V tom je jádro pudla, tedy zakopaný jezevčík..." :-D
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    2.2.2009 13:19 fakenickname | skóre: 42 | blog: fakeblog
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    Tak to se nedivim ze dokumentaci psal v texu :-))
    Luk avatar 2.2.2009 14:14 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    TEX je náhodou vynikající. Psal jsem v něm diplomku a bylo to naprosto v pohodě. Narozdíl od lidí, co ji mastili ve Wordu, jsem se soustředil jen na obsah a výsledkem byl skvělý PDF soubor o velikosti 300 KB.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    2.2.2009 14:29 fakenickname | skóre: 42 | blog: fakeblog
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    vsak ja nic nerikam proti texu.. jen poukazuji na tu zajimavou "nahodu", ze syn pana profesora olsaka si zrovna vybral tex.. ;-)
    mirefek avatar 2.2.2009 18:50 mirefek | skóre: 6 | blog: proc_dalsi_nazev
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol

    Pravda, mel jsem ohromne "stesti", ze nedavno vysel docby.tex.

    xxx avatar 2.2.2009 14:40 xxx | skóre: 42 | blog: Na Kafíčko
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    Navíc ten styl toho textu je naprosto nezaměnitelný. Po spatření, že věc se nachází na leibniz.feld... jsem už ani sekundu nepochyboval. No nic jdu zamáčknout nostalgickou slzu za lingebru.
    Please rise for the Futurama theme song.
    Luk avatar 2.2.2009 15:56 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    "Lineární algebra, to není setřepat matici do horního trojúhelníkového tvaru. Lineární algebra, to je umět v tom myslet." :-D
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    onion avatar 3.2.2009 00:31 onion | skóre: 8 | blog: onion | Praha
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol

    Jo, taky jsem na to čuměl :-D Rodina Olšáků mě prostě pronásleduje, zavřu Ďábelsky Žlutá Skripta(tm), jdu se odreagovat na abíčko a kdo na mě koukne - Olšák :-) 

    Luk avatar 3.2.2009 01:18 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    jdu se odreagovat na abíčko a kdo na mě koukne - Olšák
    Nejen na abíčku. Také na Rootu a Linuxzone, ale už je to dávno ;-)
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    2.2.2009 02:09 letec
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol
    Vypadá to zajímavě, ale ta čeština...
    8.2.2009 10:22 Petr Olšák
    Rozbalit Rozbalit vše Re: Dokoncil jsem domaci ukol

    Vrátil jsem se z dovolené a koukám, syn zveřejnil svůj program. Dovolil bych si pár poznámek.

    Čeština v programu funguje, pokud systém dovolí programu lokálně nastavit LC_CTYPE=cs_CZ.ISO8859-2, o což se program při svém startu snaží. Varianta "cestina" je jen v záloze, pokud by toto nevyšlo, nebo pokud uživatel nemá rád, že musí mít pokoněnou klávesnici Husem.

    O tom, jaké knihovny by se daly použít a zda je přímé použití jen Xlibu pomalejší nebo rychlejší, bych rád polemizoval, ale do této diskuse to nepatří. Spíše by nás oba zajímalo, zda je hra hratelná bez čítů (cheats). Měl jsem v některých místech hry jiný pocit než Mirek, tj. že na další postup hráč nemůže přijít. Bohužel, u nás doma to nemůžeme vyzkoušet, protože víme, jak se to má hrát (koukali jsme Mirkovi, když to tvořil, pod ruce).

    Povedlo se to někomu dohrát do konce?

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.