[ Lazarevic.Ivica @ 04.01.2015. 17:27 ] @
Napravio sam jednostavnu video igru - verzija Sokobana. Koristi se HTML, CSS i JavaScript. Cilj mi je da zainteresujem početnike za veb programiranje. Ukoliko nađem zainteresovane planirao sam da napišem još nekoliko članaka u kojima bih objasnio korak po korak postojeći kod. Zatim bih nadogradio video igru tako da pamti rezultate korisnika i u te svrhe bih koristio PHP i SQL. Nakon toga, nadam se da će se naći grupa ljudi sa kojima bih uradio neki ozbiljniji projekat.

Za početak ovo je video igra.
[ dusans @ 04.01.2015. 17:39 ] @
+ Lepo napisan kod, jasan i razumljiv.
Jedino si trebao da, umesto vrednosti 1..7, koristiš flags za stanje polja.
Izbegao bi većinu case-ova i onih nekoliko jel... funkcija.
Čak i css može da radi u tom stilu - jelka+mraz+poklon
[ Lazarevic.Ivica @ 04.01.2015. 18:30 ] @
Hvala ti Dušane! Ako se budem napravio objektno orijentisanu verziju izbaciću jel funkcije. Što se tiče vrednosti od 1..7 nisam te razumeo, jer u svakom slučaju mi treba način da kodiram početno stanje nivoa. Nivoi će kasnije biti serijalizovani i čuvani u bazi, u cilju učenja SQL-a i rada sa relacionim bazama podataka. Ukoliko imaš vremena i volje bilo bi mi drago ako bi se registrovao i objavio modifikovanu verziju igrice.
[ dusans @ 05.01.2015. 11:54 ] @
Citat:

Što se tiče vrednosti od 1..7 nisam te razumeo, jer u svakom slučaju mi treba način da kodiram početno stanje nivoa.


Da bi kodirao stanje nekog polja u kom se može nalaziti više objekata i atributa istovremeno,
ti si koristio jedan broj za svaku od smislenih kombinacija što je sasvim legitimno:
Code:

var PRAZNINA = 0;
var ZID = 1;
var PRAZNO_POLJE = 2;
var POLJE_SA_DEDA_MRAZOM = 3;
var JELKA_SA_DEDA_MRAZOM = 4;
var POLJE_SA_POKLONOM = 5;
var PRAZNA_JELKA = 6;
var JELKA_SA_POKLONOM = 7;

Nedostatak ovog pristupa je što proizvodi mnogo "pitalica", ne može se lako proširivati (recimo uvesti novi objekat), nije elegantno...

Korištenje Flag-ova radi istu stvar ali daleko lepše, fleksibilnije i elegantnije,
i u osnovi koristi bitove kao indikatore da li polje sadrži neki objekat ili atribut,
na primer:
Code:

var ZID = 1;
var OTVORENO = 2;
var DEDA_MRAZ = 4;
var JELKA = 8;
var POKLON = 16;

// Otvoreno polje sa deda mrazom, jelkom i poklonom
var polje = OTVORENO | DEDA_MRAZ | JELKA | POKLON;
alert("polje = " + polje);

// Skini poklon sa polja
polje = polje & ~POKLON;
alert("polje = " + polje);

// Da li je jelka na polju
var jelJelka = (polje & JELKA) == JELKA;
alert("jelJelka = " + jelJelka);

// Da li je zid na polju
var jelZid = (polje & ZID) == ZID;
alert("jelZid = " + jelZid);

// Da li je polje zatvoreno
var jelZatvoreno = (polje & OTVORENO) == 0;
alert("jelZatvoreno = " + jelZatvoreno);


http://www.experts-exchange.co...s-Tutorial-and-Usage-Tips.html

[Ovu poruku je menjao dusans dana 05.01.2015. u 13:06 GMT+1]
[ Lazarevic.Ivica @ 08.01.2015. 14:55 ] @
Razumem. U pravu si, jeste jednostavnije, ali onda bih morao da objašnjavam binarne brojeve i operacije nad bitovima. Čini mi se da je jednostavnije razumeti if i switch/case.
[ Shadowed @ 08.01.2015. 15:07 ] @
Imho, ucenje programiranja na primeru JS cega god (dakle, JS kao prvi programski jezik) je losa ideja.
[ Lazarevic.Ivica @ 08.01.2015. 15:52 ] @
Moja ideja je početak sa Blockly i Lego grafičkim jezikom za programiranje Mindstorms robota. Nakon toga JS, ali samo oni delovi koji su manje više zajednički za sve jezike iz C familije - petlje, grananja, logički operatori, nizovi, funkcije... JS kao jezik se ne sviđa ni meni, ali mi se sviđa to što su za JS dovoljni tekst editor i veb brauzer i to što mogu da prikažem gotov program u okviru veb stranice, odmah pored koda (kao što je to slučaj sa primerom Sokobana). Nakon JS planiram da pređem na programiranje Lego robota na PHP-u i nakon toga da odradim jednostavnu veb aplikaciju SQL(Postgresql) + PHP + JS.
[ Shadowed @ 08.01.2015. 16:04 ] @
Vec kod var x; imas bitnu razliku u odnosu na vecinu drugih C-like jezika :)
[ Lazarevic.Ivica @ 08.01.2015. 16:21 ] @
Razlika je između dinamički i statički tipiziranih jezika. Suštinska razlika između var x u JS i $x u PHP-u ne postoji. Pravo pitanje je da li su dinamički tipizirani jezici dobri za učenje programiranja?