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í
×
    dnes 22:55 | Nová verze

    Bylo vydáno Eclipse IDE 2025-06 aneb Eclipse 4.36. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    dnes 22:33 | IT novinky

    Americká filmová studia Walt Disney a Universal Pictures podala žalobu na provozovatele populárního generátoru obrázků pomocí umělé inteligence (AI) Midjourney. Zdůvodňují to údajným porušováním autorských práv. V žalobě podané u federálního soudu v Los Angeles označují firmu za „bezednou jámu plagiátorství“, neboť podle nich bez povolení bezostyšně kopíruje a šíří postavy z filmů jako Star Wars, Ledové království nebo Já, padouch, aniž by do nich investovala jediný cent.

    Ladislav Hagara | Komentářů: 0
    dnes 18:33 | IT novinky

    Ultra Ethernet Consortium (UEC), jehož cílem je optimalizace a další vývoj Ethernetu s důrazem na rostoucí síťové požadavky AI a HPC, vydalo specifikaci Ultra Ethernet 1.0 (pdf, YouTube).

    Ladislav Hagara | Komentářů: 0
    dnes 13:00 | IT novinky

    Francouzský prezident Emmanuel Macron chce zakázat přístup na sociální sítě pro děti do 15 let. Francie podle něj tento krok udělá sama do několika měsíců, i pokud se na něm neshodnou další státy Evropské unie. Reaguje tak na úterní vraždu vychovatelky, kterou ve východofrancouzském městě Nogent pobodal 14letý mladík. Jednotlivé sociální sítě podle něj mají možnost věk ověřit a vymáhat zákaz pomocí systémů na rozpoznávání tváří.

    Ladislav Hagara | Komentářů: 8
    dnes 05:11 | IT novinky

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,742 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější český počítač C24 klesl na 165 místo. Karolina, GPU partition klesla na 195. místo a Karolina, CPU partition na 421. místo. Další přehledy a statistiky na stránkách projektu.

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

    Oficiálně byl vydán Android 16. Detaily na blogu a stránkách věnovaných vývojářům.

    Ladislav Hagara | Komentářů: 3
    včera 14:33 | Nová verze

    Byla vydána nová verze 14.3 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
    včera 14:00 | Upozornění

    CSIRT.CZ upozorňuje, že na základě rozhodnutí federálního soudu ve Spojených státech budou veškeré konverzace uživatelů s ChatGPT uchovávány. Včetně těch smazaných.

    Ladislav Hagara | Komentářů: 14
    včera 13:44 | Pozvánky

    Ač semestr ve škole právě končí, bastlíři ze studentského klubu Silicon Hill neodpočívají a opět se jako každý měsíc hlásí s pravidelným bastlířským setkáním Virtuální Bastlírna, kde si můžete s ostatními techniky popovídat jako u piva o novinkách, o elektronice, softwaru, vědě, technice obecně, ale také o bizarních tématech, která se za poslední měsíc na internetu vyskytla.

    Z novinek za zmínku stojí Maker Faire, kde Pájeníčko předvedlo … více »
    bkralik | Komentářů: 0
    včera 04:44 | Zajímavý software

    Na WWDC25 byl představen balíček Containerization a nástroj container pro spouštění linuxových kontejnerů na macOS. Jedná se o open source software pod licencí Apache 2.0 napsaný v programovacím jazyce Swift.

    Ladislav Hagara | Komentářů: 1
    Jaký je váš oblíbený skriptovací jazyk?
     (56%)
     (31%)
     (7%)
     (2%)
     (0%)
     (0%)
     (3%)
    Celkem 249 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    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.