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

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 4
    dnes 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    dnes 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

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

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 12
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

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

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (17%)
    Celkem 763 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    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.