Potřebovala bych pomoci s naprogramováním hry Pentago v C#. Jsem ochotna nabídnout i finanční odměnu.
Fórum › .NET
Programování hry v C#
Celkem pěkný úkol na transformaci matice. Dokonce ta hra (dosud jsem ji neznal) nemá ani moc pravidel, jen provídíš transformaci jedný ze 4 matic a pokaždý kontroluješ diagonály.
Zkus něco udělat sama, kdyžtak pomůžem ;)
#4 Sid
Mám to v naprosto striktním OOP. Pročež lze měnit GUI jako plenky, můžeš to strčit do jakéhokoliv projektu atd. (Lze tomu udělat menu, jakkoliv pojmenovat hráče, přiřadit komukoliv nějakou texturu...) Kód prodám - dle zadání.
http://leteckaposta.cz/471197610
#5 Matěj Andrle
tak jsem koukal na kód, kterej chceš prodat a máš tam tunu zbytečných duplicit (např. vytváření buttonu nebo jejich událostí) ta logika v Core je taková postavená na vodě (hlavně že to plave)
tohle ofc. neber jako kritiku, ale pokud chceš něco prodat, tak by to aspoň mělo mít nějakou úroveň :)
#6 ingiraxo
Asi jsi neviděl co dělá VS designer... :D (Já to alespoň dělal mimo něj.) Můj kód je funkční a má správný OOP návrh. Většina těch, co prodává programy jen bastlí do jednoho objektu. Takže mě vynech - na prasekód ti každý kašle. Všichni jej kupují a nikdo si nestěžuje. Logika v Core rozhodně neplave - je tam nepevno. Je to právě, že krásně odděleno - logika od grafiky. Proto je to také vrstvení aplikace. Mám tam náznak i 3. vrstvy - kdy lze změnit jen část GUI - jak jsem psal, nastavit obrázky atp. Dělat to mimo zakázku, použiji GTK/WPF, ať je to separované dočista. Zadání zní Forms, tak je to Forms... Rozhodně jsem tomu nedal 100%, ale téžetak si stojím za tím, že je to nádherný program - ve srovnání s jinými výtvory již jen na codeprojectu, gitech atd.
#8 Matěj Andrle
já jen že jakmile jsem viděl deklaraci 9 tlačítek z toho na každym vlastní click událost, tak mě to zarazilo, když stačilo udělat list a jednu událost.. nebo lépe - pouze 2 tlačítka otočení <- a ->
Potom jsem nějak nechápal, přoč si dával 2 třídy do vlastního .dll, mí v tomhle případě přijde úplně zbytečný
o grafice nemluvim, taky nejsem expert na grafiku :)
mi to nedalo a udělal jsem vlastní verzi jak bych to řešil já (bez gui, čistě logiku) gui už není problem přidat (je to v javě, na c# tu nenám prostředí, ale kód je skoro totožný) http://paste.ubuntu.com/9200248/
Princip je takovej, že celá herní deska je rozdělená na 4 matice o libovolný velikosti (výchozí 3x3) a tyhle jednotlivý mini-matice se otáčí o 90 stupnů.. validace potom probíhá tak, že spojí všechny 4 mini matice do jedný a na nií provádí validace
#9 ingiraxo
Je to oddělené přeci kvůli OOP. Právě, že mi ukaž někoho, kdo dovede od začátku navrhnout aplikaci s celým schématem. Většina programátorů prvně šňůří a pak to rozděluje... Já začínám od začátku objektově - však toto není konečná fáze. 8 tlačítek jsem sice mohl vzít jako skupinu, ale nesnáším zbytečné větvení. Zde se to šiklo přesně takto - každý click ovládá jinou instrukci a nikde není třeba větvit. Jakmile bych na to hodil jeden handler, už bych v něm musel větvit a to je kravina. Matice není nic jiného, než pole. Já tam mám také matici, jen šetřím výkonem i RAM tím, že využívám předem známých hranic a počtů. Můj model navíc nejen, že odděluje 3 rúzné vrstvy anébrž také umožňuje obměnit vpodstatě každý segment objektů. Lze mít až 255 hráčů (včetně single-playeru) atd. Zkrátka nenalézám jediného, co bych udělal vyloženě špatně. Nějaké plky o tom, že mi kód v Core plave. V Core je zkrátka vše obecně vyjádřeno tak, aby se to dalo použít kdekoliv, na jakékoliv platformě atp. Ve skutečnosti bych použil 3 projekty - pro každou vrstvu jeden, ale na to už by bylo opravdu hodně málo materiálů.
Jinak takové plácání, jaké uvádíš - to je pěkný prasekód. Když dokážeš něco takového vymyslet, tak ztrácíš právo soudit... :D Poněvadž neustále alokovat paměť a neustále dynamicky pracovat s neznámými v programu, kde jsou jasné hranice a není třeba po čemkoliv pátrat... Dokonce i počet řešení - vše je předem známé... A ty to musíš zjišťovat. (V mé aplikaci není nikde přebytečná alokace - byť se toto musí řešit především v aplikacích bez Garbage Collectoru, stejně mi nenamluvíš, že je tvůj kód lepší.)
#10 Matěj Andrle
noo myslim, že každej na to máme jinej názor :) já bych třeba založil dalsí namespace pro logiku a měl vše v jednom .exe, protože třeba vim, že tohle opravdu nemá smysl rozdělovat na externí .dll a nedej bože .dll na každou vrstvu
ano 254 hráčů na hrací desce o 36 kamenech, kde už i 3 hrácí jsou moc ;)
pevně danný hranice máš možná ty, já dělal dynamický aby šlo nastavit velikost desky o libovolný velikosti (jen počet hráčů je konstantní) a upřímně z toho tvého validátoru jsem nebyl moc moudrej ani po 2min zjištování co to sakra dělá
Já ti dám prasekód... zřejmě si neuvědomuješ, že v javě skoro nic bez alokace nejde, jediný co připouštim je fakt, že validace by šla udělat lépe, ale stále to není nejhorší... hlavně jsem koukal na lepší čitelnost.. GC si nějakých pár bytů uvolní, to neřešim (mohl jsem použít třeba stack jako temp)
mělo to být v C#, takže řešení bez GC jsou ted nepodstatný.. v C/C++ bych to řešil rozhodně jinak
PS: kdyby ti třeba potom řekli, že se zadání změnilo a hrací deska bude o XX kamenech (třeba na jednu rotační matici 10x10 místo 3x3), tak by si s tímhle řešením moc nepochodil a dělal bys to podobně jako já ;) vždy myslim na to, že se hodnoty můžou změnit
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Programování online hry — založil Prokop
Programování multiplayeru do hry - Kde začít? — založil wexxa
Síťové programování pod Windows a programování internet — založil Hanzis
Moderátoři diskuze