[MEGA-BOREDOM] Átláthatóbb questek írása!

Indította iAlcon, 2014-09-13, 20:33:57

Sziasztok, Üdvözlök mindenkit aki olvassa!

Mivel unatkozom, meg ahogy elnéztem a segítség részleget, nem éppen átlátható kódokkal találkoztam!
Most, ugye jön az hogy:
Idézetet írta: Hipermegaszvegjolópávaprofiiii programozó
IdézH mükdik nyem? Akko ne mind1 mijen a kinéztr ? 

Nem egészen, mivel az esetleges szintaxis hibák (pl. end nem megfelelő száma) nem látszik annyira, esetleg ha új dolgokat szeretnénk beleírni (fejleszteni), akkor nehezebb lesz rajt eligazodni! Igaz questekre nem jellemző (meg magára a metinre se), de még a karbantartást is meg könnyíti, így ha most megírsz egy questet trágya módon (Itt nagyobb terjedelmű, komolyabb questre gondolok), akkor ha hónapokkal később előveszed csak egy dolgot fogsz üvöltözni: "Impossibru!... Suck!"

+1 ok, hogy ha közzéteszed, publikálod akkor a kezdőbb questerek is könnyebben megértik, szerkesztik!

akkor kezdjünk is bele!

0x01.) Tabolás!
Ez szinte a legalapvetőbb dolog, egy pár program nyelv meg is követeli, hogy tabolj lásd.: python!
Nem egy nagyon bonyolult dolog, de sokat tud javítani az átláthatóságon!
A lényeg, hogy "blokkokra" osztod a kódot!

Példa:
Tabolatlan quest:

quest asd begin
state start begin
when login or levelup with pc.get_level() == 99 begin
notice("iAlcon's a just a bored kid! :P")
end
end
end


Tabolt quest:

quest asd begin
state start begin
when login or levelup with pc.get_level() == 99 begin
notice("iAlcon's a just a bored kid! :P")
end
end
end


a különbség szemmel látható, még ilyen aprócska questnél is!

Tehát Tabolási segédlet:

1. blokk
2. blokk
3. blokk
4. blokk

4. blokk vége
3. blokk vége
2. blokk vége
1. blokk vége


Igaz, hogy rosszul fogalmaztam, mert "tabolni" logikusan tabbal kell, de szóközzel is lehet csinálni, én személy szerint a tab billentyűvel való tabolást részesítem előnybe!

Ennyit a tabolásról, ha kell valakinek még magyarázat hozzá, privát üzenetben elér, csak annyit kérek, hogy a tárgy mezőnél azt írja be, hogy "Tabolás help", mert akkor azt az üzenetet biztos elfogom olvasni!

0x02.) Megjegyzések!

A megjegyzések hasznosak tudnak lenni, a későbbiekben, megéri ráfordítani azt a + pár percet!
Természetesen lényegre törő, rövid, tömör megjegyzések használata ajánlott!

Lua (quest) nyelvben 2 megjegyzést különböztetünk meg! Az egy sorost és a több soros (multi-line)!

Példa mind kettő használatára:

egysoros:
Ez mindíg az adott sor végéig tart


1. nem komment
2. -- Ez itt egy egysoros komment a sor végéig tart!
3.nem komment

tehát 2 db - (kötőjel, kivonás jel) egymás mellett szóköz nélkül!

többsoros (multi-line):
Ez a befejező jelig tart, akár 100 soros is lehet a komment!


1. nem komment
2. --[[Ez itt egy több soros komment akár meddig írhatom ameddig nem zárom le!
3. Ez még mindig a komment
4. szintén
5. --]]
6. nem komment


Tehát: Ettől --[[ , eddig ]] tart!
Nyilván feltűnt, hogy nem így ]] zártam le, hanem így --]] ez nálam csak megszokás, de természetesen ez is helyes!

Akkor, hogy és hova írjunk megjegyzést?!
Mindenképp ajánlott megjegyzést írni:
   -Általunk létrehozott funkciók
   -olyan kódrészbe amit nem tartunk biztosnak, hogy mások, vagy mi megértjük a későbbiekben!
   -Esetleg az elágazásokhoz (pl.: if else páros )

Milyen, megjegyzést írjunk a meghatározott helyre?!
Olyat, amit tuti biztos, hogy később is megértesz, ha csak saját célra használod a questet, akkor akár lehet egy fék mondat is, vagy egy szó :)
Ha publikálásra adod a fejed, ajánlott egy "nagyobb" terjedelmű kommentet odabiggyeszteni!
pl.
Mennyi idős vagy?
local inp2 = input(tonumber()) -- bekérjük a júzer korát, csak számot adhat meg!


Erről ennyit! Ha további kérdésed merülne fel ezzel kapcsolatban, privát üzenet formájában rendelkezésedre állok! Kérlek tárgynak ezt írd: "Komment help!" így biztos elolvasom!

0x03.) Funkciók, változók nevei!

Funkciók nevei:
Mit csinál a funkció
megjegyzem általában angol neveket szoktam, szoktunk adni a funkcióknak!

Tehát azt a nevet adjuk neki amit elvárunk, hogy csináljon:
Distraught szint adó funkciója a pc.set_level() nevet kapta, mivel a karakter szintjét változtatja meg!

Változók nevei:
Ez igazából quester függő, de vannak olyan nevek is amiket szinte mindenki használ pl.:
i, k, v (legtöbbször for-nál szokott előfordulni)
s (sokan select parancs értékeinek tárolására használják)

De nem meglepő ha a változó által tárolt dologról nevezik el őket pl.:
num, number, iVariable (ez mondjuk lua-ban ritka, pedig jó kis módszer, egy vagy két betűvel jelezni a változó nevének elején, hogy mit is tárol pontosan)

Ha viszont nem tudjuk milyen adatok lesznek tárolva benne (pl. üres tömböt hozunk létre amit majd a felhasználótól bekért vegyes adatok tárolására akarunk használni) akkor a következőkre törekedjünk:
rövid, az angol ABC betűiből, valamennyire utaló legyen arra hogy mire is hivatott a változó, vagy tömb ha már azt hoztam fel példának!

Ennyi lenne, a későbbiekben még módosítgatom, írok hozzá!

Köszönöm, hogy elolvastad! Remélem hasznodra válik!

Üdvözlettel iAlcon!