Ugrás a fő tartalomra

Hétvége a versenyzésről szólt

Ez a hétvégém csak egyetlen egy dologról szólt, a versenyzésről. Összesen 2 online versenyen vettem részt. Amik ugyanazon a hétvégén voltak ezért egymástól vettek el időt, de nem panaszkodok.

1. codingame.comSkynet Revolution 

  A verseny 2 feladatból állt össze, amit egy általunk választott programozási nyelven kellet megvalósítani. Mivel mostanság nagyon rákaptam a Dart-tal való programozásra ezért ezt választottam fegyvernemnek. A feladatok félépítése nagyon egyszerű: van egy input, amire egy megfelelő outputtal kell szolgálni különböző tesztesetek alapján.(Inkább úgy mondanám, hogy teszteseteket kell teljesíteni)

  Az első feladat viszonylag könnyen teljesíthető volt, amire ajánlottan 1 órát volt érdemes száni. Nekem éppen sikerült vele 1 óra alatt végezni. Feladat lényege az volt, hogy egy motorost kellet átjuttatni a híd egyik oldaláról a másikra. A nehézség abból adódik, hogy ez a híd hibás és van  rajta lyuk, amit át kell ugratni megfelelő sebességgel. Feladathoz 4 parancsot tudtunk kiadni SPEED,WAIT,SLOW,JUMP. Ezeket a parancsokat körönként kellet kiosztani.
  Ez viszonylag könnyen teljesíthető volt mivel csak az volt a lényeg, hogy megfelelő sebességre gyorsítsunk aztán a megfelelő időpontban elugorjunk majd végül megálljunk.

  A második feladat leírásánál láttam, hogy ezt bizony nem fogom tudni megoldani. Ajánlott idő intervallum 2 óra volt, de mivel az egész verseny 4 órás volt ezért többet is rá lehetett száni.
A feladat annyiban változott meg az elsőhöz képest, hogy kevesebb volt az input és a hídon több sáv, motoros és lyuk volt amiknek változatos lehetett az elhelyezkedésük. 2 új paranccsal is gazdagodtunk UP és Down, amikkel sávot lehetett váltani. Feladat lényege, hogy átjuttassunk minimálisan előírt motoros menyiséget a híd túl végére. Az első feladatnál 6 teszt esett volt, ennél 12. Én csak a 4.-ik megoldásáig tudtam csak eljutni.

  Versenyre visszanézve megtanultam, hogy ad-hoc megoldás sosem célra vezető. Ezt főleg a 2. feladatnál érzékeltem. A másik, hogy a lehető legtöbb adatot kell begyűjteni egy feladat megoldásához.
Az utolsó pedig, hogy mindig van egy sokkal szebb megoldás mint az enyém. :D

Eredményeket itt megtaláljátok.

2. Ludum Dare 29 

Ludum Dare egy online játék készítő verseny, aminek 2 verseny kiírása van. Van egy 48 órás egyéni része, ami az egyik legnépszerűbb, amint Compo-nak hívnak és van egy 72 órás csapatatok számára,amit Jam-nek hívnak. Jam-et még egyéni versenyzők is szoktak csinálni ha kifogynak az időből.

  Én gondoltam egyet és kipróbáltam magam a 48 órás egyéni megméretetésen. Ezt már vagy egy hete terveztem, mivel mindig is ki akartam próbálni.
A másik ok amiért ki akartam próbálni, hogy előtte készülgetett a Dartban írt állapot gépem, amiről úgy gondoltam, hogy kész leszek vele a versenyre és igazam is lett mert tényleg kész lettem vele (Nagyjából).

  Gondolom kitaláljátok, hogy milyen nyelven ment a fejlesztés. :D Igen ismét Dart-ot választottam ki és hozzá segítségként pedig StageXL könyvtárat használtam, amiről már írtam az előző blog bejegyzésemben. Főleg azért használtam mivel tényleg megkönnyíti az ember dolgát egy 48 órás versenyen ha nem kell magával a megjelenítéssel szórakozni.

  Verseny egész jól indult. Sikerült összepárosítanom StageXL és  az általam készített állapot gép működését, amit boldogan vettem tudomásul. Csináltam néhány pixeles képet piskell segítségével és egy darab játszható szintet összedobtam segítségükkel.
Nagyjából ezzel elment egy nap, mivel közben még Skynet-re is fordítottam időt.

  Második nap már nem volt ilyen szerencsés, mivel előjött bennem a gondolat, hogy egy szintet újra játszhatóvá kéne tennem. Úgy voltam vele, hogy ezzel nem lesz semmi gond, de tévedtem.
Most nem mennék bele abba, hogy hogyan működik az állapot gépem, de azt elmondhatom, hogy nem sikerült a legegyszerűbb megoldás, ezért az állapot gépemnek azt a tulajdonságát kellet használnom, amit eddig még nem tudtam működésre bírni. Ezért először magán az állapot gépen  kezdtem el kísérletezgetni, hogy rájöjjek, hogy miért nem működik. Végül 2-3 óra múlva rájöttem, hogy 1 darab metódus hívást kellet kitörölnöm, hogy működésre bírjam.

  Mivel egy játék sosem olyan egyszerű, mint egy kísérlet ezért be kellet vezetnem egy kis üzenet küldő rendszert az állapot és az állapot kezelő között. Nem is beszélve az új adatszerkezet illetve logikáról, amit még hozzá kellet adnom, hogy működjön a dolog. Összességében viszont sokkal jobban kezelhetővé vált a dolog és végre egy szint újra játszható lett.

  Szóval a bug hunt után maradt hátra még 5 órám az egész versenyből és a játékom nem volt éppen élvezhető és nem is volt semmi célja. Kaptam néhány tanácsot, amit be s tartottam: pontszámláló, és háttérszín ne barna legyen. A következő amire gondoltam, hogy még így is csak egy sima pont számlálós játék ezért kapott a játék egy kis meglepetést a végére, amit nem árulok el. :D

Végül már csak annyi maradt hátra, hogy még végleg leteszteljem, feltöltsem az oldalamra és publikáljam a játékom ludum dare oldalán. Összeségében elég jó kritikákat kaptam, amin meg is lepődtem, habár  azt megjegyzem, hogy ludum dare közössége nagyon pozitív és támogató.
Szóval a célközönség olyan fejlesztők, akik értékelik azt a munkát, amit a játékod elkészítésébe fektettél.

Játékom Ludum Dare-en

Összefoglalva:

Megéri versenyezni, mivel ha nem is nyered meg, akkor is szerzel olyan tapasztalatot és visszajelzéseket, amiket csak így kaphatsz meg.

Napi tipp:
Próbáljátok ki a Dart nelyvet. :D

Megjegyzések

Népszerű bejegyzések ezen a blogon

Python kezdőknek

Itt a nyár és mivel lehetne ezt a legjobban megünnepelni, mint egy kígyóról elnevezett programozási nyelv bemutatásával. Következőkben tehát a Python programozási nyelvről lesz szó és annak lehetséges alkalmazásairól.

Miért tartsunk otthon Python-t? Python pályafutása 1991-ben kezdődött el egy Guido van Rossum nevű fejlesztőnek hála, aki egy olyan általános programozási nyelvet akart készíteni, amit nagyon könnyen el lehet sajátítani és használni. Az elmúlt év tizedek alatt a Python nyelv az egyik legjobb és legnépszerűbb általános programozási nyelvé nőtte ki magát, amit bizonyít, hogy számos operációs rendszeren(linux, mac os) alapból megtalálható a nyelv. De nézzük meg, hogy mitől ilyen népszerű: Egyszerűség: A nyelvnek az egyik legnagyobb előnye, hogy nagyon egyszerű és ezért például nagyon sok egyetemen a kezdő programozó legényeket Python segítségével vezetik be a programozás világába.Dinamikus: Mint minden dinamikus nyelvnek úgy Python-nak is van egy beépített REPL-je, ami nagyo…

HTML5 játék fejlesztés alapjai

Ahogy a cím is sugallja a HTML5 játék fejlesztés alapjairól lesz szó ,hogy mi is kell hozzá.
Az én tudásom ebben a témában még elég kicsi ,de egyre növekszik ,talán egyszer majd én is össze fogok szedni annyi tapasztalatot a témából ,hogy akár még könyvet is írhatnék róla. Na persze egy izgalmas könyvet. :D

Na akkor vágjunk is bele!
    Első kérdés ,hogy mi a legalapvetőbb dolog ,amit ehhez meg kell tanulni? Persze sokan mondhatják ,hogy html , javascript ,css ismerete ,ebben igazat is adnék ,de nekünk még van ennél sokkal alapibb tudás ,ami a magyar programozókra főként igaz ez pedig az angol tudás.
Ezt nagyon sokszor tapasztalja az ember ,hogyha nem elég jó az angolja ,akkor egyetlen mondat is megtudja akasztani ,ahol az író nagyon szakmai akart lenni.
Főleg emiatt szeretem azokat az írókat ,akik semmi köntörfalazás nélkül belevágnak a lecsóban és simán és egyszerűen elmagyarázzák a dolgokat.

   Ha az első szint megvan akkor jöhet a HTML tanulása ,ami elég gyorsan letudható ,hiszen c…

Javascript kezdő lépések

Ma kis bejegyzésem arról fog szólni ,hogy mit érdemes kezdő lépésenként megtanulni ,illetve ,hogyan érdemes haladni Javascripttel és néhány érdekesség is lesz node.js-sel kapcsolatban.

Tanulás
   Szerencsére olyan világba élünk már ,ahol a web és webes technológiák nagyon gyorsan fejlődnek és ezért ezeknek a tanulása is egy fajta fejlődésen ment keresztül. Már nem könyvből kell tanulni ,hanem vannak olyan oldalak ahol interaktív módon lehet egy nyelvet megtanulni ,ami tökéletes a tanulás szempontjából. Előző cikkemben raktam be anyagokat ahhoz ,hogy mit érdemes elolvasni ,ha a tanuló inkább olvasós fajta és volt bent 2 interaktív.  Én például codecademy segítségével tanultam meg Jquery-t használni. Javascripthez Eloquent és codeacademy-t használtam.

   Mivel a Javascript elég megengedő ezért nagyon sok fajta stílusban kódolnak hozzá és ezek a stílusok  néha teljesen eltérőék. Szóval aki tanult már Java ,c vagy c++-t annak is lehet újdonság ,mivel ezeknél a nyelveknél nagyon szépen megv…