NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:10.6.2013 17:44

Ahoj programátoři, s malým zpožděním tu máme programátorskou minisoutěž na tento týden. Jako vždy je ve hře placka (Machr na algoritmy, případně dle výběru Machr na Javu nebo Machr na C#) a nějaké samolepky.

Kdo z vás někdy hrával dungeony, má výhodu. Vytvořte formulářovou aplikaci, která podle pozice na 2D mapě (jednoduché pole zdí a volných míst) vykreslí 3D scénu. Nebojte, nejedná se o pravý 3D engine. Scéna zobrazuje jen 3 políčka dopředu a to tak, že na formulář vykresluje připravené obrázky podle pozice zdí okolo hráče. Když se hráč posune, celá scéna "poskočí" o jedno políčka, otáčení skáče o 90 stupňů. Obrázky níže určitě řeknou více, než 1000 slov. Na form dále umístěte 4 tlačítka pro otáčení a pohyb dopředu a dozadu.

Archiv se sadou obrázků pro 3 zdi máte v příloze, nic tedy nemusíte kreslit. Archiv: https://dl.dropboxusercontent.com/…/dungeon.zip

Kdysi jsem psal tuto aplikaci na střední a stihl jsem to za odpoledne, tak se nenechte odradit, není to tak složité a výsledek je velmi působivý.

Hinty:

Z 2d pole si vyřízněte malé pole 5x4 políčka, které rotujte podle směru hráče (viz screenshot).
Rotaci pole uděláte jednoduchém prohozením souřadnic X a Y, případně vynásobením -1 (záleží na jakou stranu).

Deadline je opět v neděli 16.6. ve 3 hodiny :)

Editováno 10.6.2013 17:51
Odpovědět
10.6.2013 17:44
New kid back on the block with a R.I.P
Avatar
Michal Žůrek - misaz:10.6.2013 17:51

zkusím, při troše štěstí budu sám. :D Nicméně bych byl rád kdybych viděl i výsledek někoho jiného, na jak před 14 dny.

 
Nahoru Odpovědět
10.6.2013 17:51
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Michal Žůrek - misaz
David Hartinger:10.6.2013 17:52

Ono to není tak těžké jak to vypadá :P

Nahoru Odpovědět
10.6.2013 17:52
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Michal Žůrek - misaz:10.6.2013 17:55

slon by taky jednoduchý (až moc) a nakonec jsem byl jediný.

 
Nahoru Odpovědět
10.6.2013 17:55
Avatar
Odpovídá na David Hartinger
Michael Olšavský:10.6.2013 18:19

Asi mi nedovolíš použít můj 3D XNA engine, který má bezmála 5 tisíc řádek i s generátorem terénu, objektů a síťovým propojením klientů přes server :-D Asi by nesplňoval pohyb po jednom políčku, ale...

 
Nahoru Odpovědět
10.6.2013 18:19
Avatar
David Hartinger
Vlastník
Avatar
Nahoru Odpovědět
10.6.2013 18:23
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Michael Olšavský:10.6.2013 18:31

Mám napsat i ten generátor pozic zdí? Nebo to vše může být křižovatka? :D

 
Nahoru Odpovědět
10.6.2013 18:31
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Michael Olšavský
David Hartinger:10.6.2013 18:32

Mapu si vymysli, ale když dáš všude křižovatku, tak nepoznáš, jestli se ti kreslí dobře okolní zdi.

Nahoru Odpovědět
10.6.2013 18:32
New kid back on the block with a R.I.P
Avatar
GreenMan
Tvůrce
Avatar
GreenMan:10.6.2013 18:43

Ak som to dobre pochopil tak nejde o plynulé otáčanie do rôznych smerov, takže by som to mohol urobiť aj v PHP, že?

Nahoru Odpovědět
10.6.2013 18:43
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
Odpovídá na David Hartinger
Michael Olšavský:10.6.2013 19:42

jak jsem koukal, tak ani perspektivu nemusíme řešit. Vše si udělal za nás (y)
:-)

 
Nahoru Odpovědět
10.6.2013 19:42
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na GreenMan
David Hartinger:10.6.2013 19:50

Ano, soutěž není vázaná na jazyk, šlo by to i v PHP pomocí formuláře a obrázku co server generuje :) Byla by to docela pěkná onlinovka, ještě jsem nic takového neviděl :D

Nahoru Odpovědět
10.6.2013 19:50
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Michael Olšavský
David Hartinger:10.6.2013 19:51

Ano, textury nejsou moc kvalitní, vzal jsem je z toho mého dosového enginu, ale nemůžu po vás chtít abyste dělali ještě grafiku, přeci jen je to za placku a nemělo by to zabrat věčnost :D

Nahoru Odpovědět
10.6.2013 19:51
New kid back on the block with a R.I.P
Avatar
Neaktivní uživatel:11.6.2013 10:00

Může to být přes javascript a canvas ?

Nahoru Odpovědět
11.6.2013 10:00
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Nahoru Odpovědět
11.6.2013 10:46
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Michael Olšavský:11.6.2013 20:54

Je nutné zobrazit stěny otočené o 90 stupňu, pokud na daném políčku není zeď? Stačí pouze prázdné pole? :`

 
Nahoru Odpovědět
11.6.2013 20:54
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Michael Olšavský
David Hartinger:11.6.2013 21:20

Teď nevím jak to myslíš. Jak to má přibližně fungovat máš v tom obrázku nahoře :)

Nahoru Odpovědět
11.6.2013 21:20
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Michael Olšavský:11.6.2013 21:26

Jakože když chybí na daném místě zeď -> jde projít, tak jestli tam musí být jakože už vidět další cesta == ta zeď bude orotovaná

 
Nahoru Odpovědět
11.6.2013 21:26
Avatar
Odpovídá na David Hartinger
Michael Olšavský:11.6.2013 22:04

Teď koukám na ten kód, a takovou prasárnu jsem už dlouho nenapsal :-D. To vykreslování s určováním pozice to jsou samé cykly a dokonce jsem musel použít switch :O :-D Zítra to zkusím upravit. Dnes už konec.

Editováno 11.6.2013 22:05
 
Nahoru Odpovědět
11.6.2013 22:04
Avatar
David Hynek
Tvůrce
Avatar
David Hynek:11.6.2013 23:11

Navrhoval bych vytvořit soutěž, kde by bylo za úkol, vytvořit soutěž s tak jasnými podmínkami, že by se už soutěžící nemuseli dál na nic ptát... :)

Nic ve zlém...

Nahoru Odpovědět
11.6.2013 23:11
Čím víc vím, tím víc věcí nevím.
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hynek
TomBen:11.6.2013 23:22

Vždycky se budou ptát. :-)

Nahoru Odpovědět
11.6.2013 23:22
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Michael Olšavský
David Hartinger:12.6.2013 9:30

Stejně nevím na co se ptáš. Určitě jsi někdy chodil v místnosti, tak nějak tak to má vypadat :D Případně video z podobné hry: http://www.youtube.com/watch?…

Nahoru Odpovědět
12.6.2013 9:30
New kid back on the block with a R.I.P
Avatar
Neaktivní uživatel:12.6.2013 17:06

Tak už mám hotový chození skrz rovnou chodbu :D
Teď už nastávají problémy :D

Nahoru Odpovědět
12.6.2013 17:06
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:12.6.2013 17:08

Ono to chce dobře promyslet a vyzkoušet, kolikrát jsem zjistil, že mám někde díru :D

Nahoru Odpovědět
12.6.2013 17:08
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:12.6.2013 17:18

já právě přemejšlím jak bude asi nejlepší otáčet tu postavu... ale asi to udělám tradičně tou nejsložitější a nejnáročnejší metodou jako vždy :D :D

Nahoru Odpovědět
12.6.2013 17:18
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:12.6.2013 17:28

Máš napsané v zadání jak to udělat :)

Nahoru Odpovědět
12.6.2013 17:28
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:12.6.2013 17:30

no, já to mám připravený trochu jinak :D ale nevadí :)

Jen nevím jestli budu generovat mapu, nebo tam vytvořím jednu natvrdo :D

Editováno 12.6.2013 17:31
Nahoru Odpovědět
12.6.2013 17:30
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michael Olšavský:12.6.2013 19:41

Nevím, jestli to nebude moc velká nápověda, i když už mám i svůj způsob, ale jak se dá vykreslovat správná pozice. Mě se vůbec nelíbí to počítání přes cykly. :-/

 
Nahoru Odpovědět
12.6.2013 19:41
Avatar
Odpovídá na Michael Olšavský
Neaktivní uživatel:12.6.2013 19:54

teď jsem jaksi ne-úplně pochopil ten dotaz ;( kdyžtak napiš SZ

Nahoru Odpovědět
12.6.2013 19:54
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michael Olšavský:12.6.2013 19:56

:D asi se neumím vyjadřovat :D Jsi už druhý :D

 
Nahoru Odpovědět
12.6.2013 19:56
Avatar
Odpovídá na Michael Olšavský
Neaktivní uživatel:12.6.2013 19:59

jak říkám.. napiš SZ.. určitě se časem nějak domluvíme :D

Nahoru Odpovědět
12.6.2013 19:59
Neaktivní uživatelský účet
Avatar
TomBen
Tvůrce
Avatar
TomBen:12.6.2013 20:07

Tak jsem si až teď všiml, že tenhle Machr není Machr, ale Mach. :D
Takže navrhuji změnu vzhledu placky, viz příloha.

Nahoru Odpovědět
12.6.2013 20:07
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na TomBen
TomBen:12.6.2013 21:22

Hm, tak mám smůlu, už je to opravené. ;(

Nahoru Odpovědět
12.6.2013 21:22
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Odpovídá na TomBen
Vojtěch Pospíchal:12.6.2013 22:43

Ne všude mrkni na URL.

 
Nahoru Odpovědět
12.6.2013 22:43
Avatar
Neaktivní uživatel:13.6.2013 9:51

Tak, zatím to u mně vypadá takhle, a funkčnost cca 92% :D

Nahoru Odpovědět
13.6.2013 9:51
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:13.6.2013 10:00

Dej si tam ještě místnost třeba 4x4 a zkus se v ní projít. Na úzkých chodbách si nevyzkoušíš všechny zdi.

Nahoru Odpovědět
13.6.2013 10:00
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:13.6.2013 10:01

to je právě ten problém :D místnosti to ještě neumí :D

Nahoru Odpovědět
13.6.2013 10:01
Neaktivní uživatelský účet
Avatar
Luboš Běhounek Satik:13.6.2013 10:45

Tak jeste nakreslim nejaky textury, doresim mapu, omezim pohyb na skoky po ctvereckach a otaceni jen o 90° a zadani uz snad bude splneno.

Jo a kdo dokaze spravne prelozit nazev aplikace, ma u me male bezvyznamne plus :D

Nahoru Odpovědět
13.6.2013 10:45
https://www.facebook.com/peasantsandcastles/
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Luboš Běhounek Satik
David Hartinger:13.6.2013 10:52

Saťasi, ty jsi postrach místních soutěžících :D Nebojte se ho, asi bude mít jako vždy když soutěží zvláštní kategorii s cenou :D

Nahoru Odpovědět
13.6.2013 10:52
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Luboš Běhounek Satik:13.6.2013 11:13

Se mi ještě včera večer nechtělo jít spát, no :)

A zrovna pseudo 3D engine jsem si vždycky chtěl zkusit napsat (už jsem to kdysi zkoušel, ale nějak jsem se v tom zamotal).

Nahoru Odpovědět
13.6.2013 11:13
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Luboš Běhounek Satik:13.6.2013 11:24

Jeste ted koukam, ze me google prekladac podrazil a slovo "vlčí" prelozil do rustiny jako ljupin, i kdyz ti zadne takove slovo nemaji.

Tady je zatim polofunkcni verze:
http://leteckaposta.cz/228850692

(Je to hodne pomale, budu muset optimalizovat :D )

Nahoru Odpovědět
13.6.2013 11:24
https://www.facebook.com/peasantsandcastles/
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Luboš Běhounek Satik
David Hartinger:13.6.2013 13:56

A není pomalé jen to vykreslování? Pokud to máš třeba na PictureBoxu, tak ten je velmi slabý co se týče performance.

Nahoru Odpovědět
13.6.2013 13:56
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Luboš Běhounek Satik:13.6.2013 14:20

Na ten picturebox právě kreslím už svojí optimalizovanou třídou, takže to je docela rychlé, tady to brzdí hlavně samotné vykreslování, je tam spousta floatů, které se interpolují pořád dokola, i když by je třeba stačilo vypočítat jednou (pro začátek to bylo jednodušší řešení), takže budu optimalizovat hlavně to.

Nahoru Odpovědět
13.6.2013 14:20
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Zdeněk Pavlátka:13.6.2013 14:44

Neošetřená výjimka když se jde moc daleko.

Nahoru Odpovědět
13.6.2013 14:44
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Luboš Běhounek Satik:13.6.2013 14:48

Vím o tom, dokončoval jsem to narychlo ráno asi ve čtyři hodiny, protože jsem už chtěl jít spát :D

Nahoru Odpovědět
13.6.2013 14:48
https://www.facebook.com/peasantsandcastles/
Avatar
Neaktivní uživatel:13.6.2013 17:26

Tak, už se mi skoro vykreslují i ty místnosti... ale na satika fakt nemám :D

Nahoru Odpovědět
13.6.2013 17:26
Neaktivní uživatelský účet
Avatar
Michal Žůrek - misaz:13.6.2013 20:56

tam musí bát jen tři tlačítka, že? Dopředu, otočit vpravo, otočit vlevo. Krok dozadu přeci ten ňouma nepotřebuje.

 
Nahoru Odpovědět
13.6.2013 20:56
Avatar
Neaktivní uživatel:13.6.2013 21:02

Tak vykreslování je už kompletně hotové a víceméně vše šlape jak má
Teď už potřebuju jen upravit ten "prasekód" na něco přijatelného (zatím netuším jak) :( ale svůj účel to plní.

Misaz -> ono to tlačítko je tak děsivě náročné že se nevyplatí dělat že ? :D :D

Nahoru Odpovědět
13.6.2013 21:02
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michal Žůrek - misaz:13.6.2013 21:06

není složité, to je pro mě otázka jednoho řádku kódu, ale spíš nevidím důvod ho dělat.

 
Nahoru Odpovědět
13.6.2013 21:06
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:13.6.2013 21:10

Jednou někdo položil logický dotaz, to tlačítko zpět je opravdu hloupost :)

Nahoru Odpovědět
13.6.2013 21:10
Neaktivní uživatelský účet
Avatar
Odpovídá na Michal Žůrek - misaz
Neaktivní uživatel:13.6.2013 21:12

vím...myslel jsem to ironicky..ale to couvání se může hodit například když přejdeš odbočku aby ses tam nemusel motat, tak jen o políčko couvneš

Nahoru Odpovědět
13.6.2013 21:12
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 50 zpráv z 77.