[ARHIIV] mängumeistrid
Pole sisse logitud. [Logi sisse ]
Mine lehekülje algusesse
Prinditav versioon | Telli teema e-mailile | Lisa lemmikutesse  
Loll küsimus koodimise kohta... if and or jne...
Ker7
Level 2


Liitunud: 5.6.2009
Postitusi: 19
[EEMAL]




postitati 12.7.2009 22:00 Tsiteeri
Loll küsimus koodimise kohta... if and or jne...



Mul on siin vaja testida paari tingimusi aga tundub, et ma ei oska "sidesõnasid" hästi kasutada... :s

if a=1 or a=2 and b=1 and c =1 {d=1}

Kas siis selle järgi on nii et kui ma tahan d muutuja saada üheks, siis peavad mul b ja c ilma mingi tingimuseta 1 olema, aga a võib olla veel 1 või 2? Sest see mu eesmärk oli koodikirjutamisel ja sellisel kujul ma ta kirja paningi aga mingi kala on sees, d muutub a väärtusest hoolimata 1-ks...

Kas on mul koodi kirjutamises viga, või ikka kuskil muutujates? Debugiga ma proovisin mängida ja jälgisin muutuja väärtusi mängu ajal, peaks nagu korras olema...

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
valter
1


Liitunud: 19.1.2005
Postitusi: 1553
[EEMAL]




postitati 12.7.2009 22:08 Tsiteeri


targem oleks teha nii:

if (a=1 or a=2) and b=1 and c=1 { d =1; }

praegu on nii,
et
kui a on 1
Või:
a on 2, b on 2 ja c on 1

http://www.dmgamez.pri.ee/GRONGO1/uss_walk.gif
Ralli I: dm11Veresaun III: dm11<br>Emo1: icedude, valter8bit I: võistlus kestabAktsioon III (2009): -<br>Aasta mäng 2009: Pilvemees, valter<br>Vabateema II: valter
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
Ker7
Level 2


Liitunud: 5.6.2009
Postitusi: 19
[EEMAL]




postitati 12.7.2009 22:33 Tsiteeri


sain kätte mis viga oli, ikka oli muutujas süü.... ilma sulgudetta töötab kaa... nüüd saab vaenlasele hiilides selja taha minna ja nuga anda või silenceriga silencida... aga kui kõndides lähed siis kuuleb raibe... see kood mille kohta abi küsisin oli vaatevälja kohta... suht odava koodiga sai see vaateväli paika pandud

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
valter
1


Liitunud: 19.1.2005
Postitusi: 1553
[EEMAL]




postitati 12.7.2009 22:35 Tsiteeri


ok.. panin ise vist mööda ka.

krt see and or and on nii mitmesti tõlgendavad ikka..

http://www.dmgamez.pri.ee/GRONGO1/uss_walk.gif
Ralli I: dm11Veresaun III: dm11<br>Emo1: icedude, valter8bit I: võistlus kestabAktsioon III (2009): -<br>Aasta mäng 2009: Pilvemees, valter<br>Vabateema II: valter
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
jnt
Veebiguru
Avatar

Liitunud: 3.2.2005
Postitusi: 731
[EEMAL]




postitati 13.7.2009 11:34 Tsiteeri


ja veel arusaadavam oleks kasutada if'i õiget süntaksit:
if(tingumus){
tegevus
}

ehk tingimusel on ALATI sulud ümber.

GigAHerZ Web - http://jnt.pri.ee/
Banner Exchange - http://be.jnt.pri.ee/
Mission Possible - http://web.zone.ee/mispos/
Black Nova Traders - http://bnt.jnt.pri.ee/
Aktsioon I: jnt
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
jyri1234
Level 9
Avatar

Liitunud: 16.1.2008
Postitusi: 542
[EEMAL]




postitati 15.7.2009 13:35 Tsiteeri


PHP's on () ümber, aga kas GM'is oli ka??
_________________________________
Eestikeelsed tasuta PHP õpetused - php.ee
PHP Manuaal - php.net
Jõulu 2008 III: Jyri1234<br>
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 15.7.2009 13:36 Tsiteeri


alati, alati peaks panema.

Kuigi GM "saab aru" ka siis, kui ei ole.

Ikkagi peaks panema.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 15.7.2009 23:12 Tsiteeri


Tegelikult tuleb mingis osas kiirus ka mängu, mingit moodi on sulgudega kiirem, mingit moodi mitte, täpsemalt seda vahet ei mäleta, samuti ei tea, kas GMLil ka nii on, C-l/cpp-l on igatahes
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 16.7.2009 07:05 Tsiteeri


1) Sulgude abil on parem lugeda omaenda koodi, väldid vigu
2) Boolean võrdlusi (and/or) on ALATI vaja sulgudega teha ...näiteks if ((a > b) || (a < c) && (c != 0))
muidu läheb metsa ja rappa kõik
3) Samamoodi saab sulgudega teha mitmest tingimusest ühe tervikliku tingimuse osa: if (((a > b) && (a > c)) || (c != 0)) -- KAS esimesed 2 tingimust VÕI kolmas?
4) Koolimatemaatikas kasutatakse alati sulge. Ja kindla poindiga: Enne arvutad selle, mis sulgudes on. GM töötab samamoodi!

5) and ja or asemel oleks mõistlikum kasutada vastavaid sümboleid:

and -- &&
or -- ||

6) Sulgude korralikult kasutaja saab jätta ka ühe ja nulliga võrdlused välja kirjutamata

if (A)
on sama mis
if (a != 0) // a ei ole null

ja

if !(A)
on sama mis
if (a = 0) // a on null

(a sulgudes peab väike olema, panin suure et lolli emoticoni ei tuleks))
Ja nulliga võrdlemisi tuleb päris tihti ette.

Näiteks tahad tulistada, kuni on kasvõi üks kuul järel...

if (kuulid) ... tulistamise kood

-----------------
originaalkoodis võiks teha nii:

Kood:

if ((A) && ( b) && (c)) d = 1;


...kui TOHIB d väärtust muuta ka juhul kui a oleks näiteks 2 või 28

või kavaldada hoopiski:

if ((a+b+c = 3) || (a+b+c = 4)) d =1

:D
aga see oleneb jälle sellest, kas a või b ei saa olla suuremad kui 1
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Perfoon
Level 5
Avatar

Liitunud: 11.8.2008
Postitusi: 192
[EEMAL]




postitati 16.7.2009 09:47 Tsiteeri


If laused sulgude sisse panna on kindlasti hea harjumus, ometi sulgudega ülepakkumine on ka veidike liig minumeelest. Algajal on vahest tõesti parem vaadata, kus üks tingimus lõppeb ja teine algab aga sellest võib kujuneda paha harjumus. Näiteks programmeerimis praktikumis, olen pidanud korduvalt parandama algajate koledat koodipilti: topitakse sulge igasse võimatusse kohta (see tähendab kompilaatori jaoks siiski võimalikku, sest üldjuhul viga ei ole). Nii tekivadki koledalt keerulised avaldised milles on sulgude sees sellised asjad:
a+(b-c) ja (a mod b) ning funktsioonid on omakorda sulgudes (abs(a)).

Ahjaa, kui juba õpetussõnade jagamiseks läks, siis kindlasti tuleks iga rea lõppu siiski semikoolon panna. Lihtsalt selline lohakas kirjapilt jääb kiiresti külge ja oi milline jama, kui peaks mõne korraliku keelega kirjutama hakkama.
Kambakas I: jorss, PerfoonEmo1: icedude, valterEmo2: InCreatorEmo3: emoemo<br>
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
jnt
Veebiguru
Avatar

Liitunud: 3.2.2005
Postitusi: 731
[EEMAL]




postitati 16.7.2009 10:44 Tsiteeri


hmm, inc'i tekstist loen üht sulgude osa suht esimest korda... nimelt, et nö ühekordsele tingimusele pannakse sulud ümber. nt. if ( (a=1) || (b=2) )... Et siin on vähemalt palju võitu neid sulge natuke imo...

Et ise järgin praktikat, et if (tingimus)... ja kui mul on if'i sees nii and'e kui ka or'e, siis "grupeerin" tingimusi lisasulgudega. Kuid jah, selliseid üksiktingimusi omaette sulgudesse panna... Esimest korda nägin. :D

Aga ei, sulge tuleks võimalikult palju kasutada. Hoiab probleemidest eemal ja värki. Muidu pärast jälle, kas tuleb mingi viga või lihtsalt tekivad toimimises anomaaliad ja ei saa hästi pihta ka, et kus see viga siis lõppude-lõpuks on.

Ja noh, semikoolonid on muidugi samuti nõutavad. Aga päris igale reale need ei käi:
if (tingimus) { <-Siia semikoolonit ei käi. { ja } lõppevad read semokoolonit ei vaja. ;)

GigAHerZ Web - http://jnt.pri.ee/
Banner Exchange - http://be.jnt.pri.ee/
Mission Possible - http://web.zone.ee/mispos/
Black Nova Traders - http://bnt.jnt.pri.ee/
Aktsioon I: jnt
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 16.7.2009 12:25 Tsiteeri


Bugide vältimiseks kasutan võrdluseta sulg-ifi tihti. Mitte niipalju kontrollimiseks mis on mis, vaid selleks, kas mingil muutujal ÜLDSE ON VÄÄRTUS, ja kas on ta üldse objektil olemas? (et ei ole 0 või uninitialized (kui "treat uninitialized variable as 0" on sees))

Näiteks tegelasel on mingi muutuja, mis tekib alles millalgi. Minu katsetes on väga popp muutuja "vastane", milles hoian objetki id-d, mida tegelane peab vaatama, tulistama või taga ajama.

Näiteks tagaajamise ees

if (vastane)
move_towards_point((vastane).x,(vastane).y,3);
else
vastane = 0;

Me ei saa siin mingeid variante võrrelda, sest muutujas "vastane" võib olla ükskõik-mis-number (suvalise objekti id). No saab tsekkida kas vastane ei ole null või kas ta on suurem kui null.... aga milleks? pikem kood ju. Ja lugeda halvem.

See kood toimib, kuni on olemas muutujas "vastane" suvaline number mis pole null. Ja kohe kui vastase objekt sureb, objekt kaob vms, tegelane ei liigu.
Muudel meetoditel saaks pahh errori kohe. Kuigi seda saaks väga mitut moodi teha...

See oli praktiline näide nagu.

Mina kasutan küll sulge paksult ja igal pool. Ja pole veel täheldanud et kusagil ülearu oleks või paha lugeda või sassi kipuks minema. Mul on meetod ka:

Pikki sulgude if-e tehes on muidu hea mõttes lugeda üles ja alla. Loendad lahtisi sulge. Ja iga kord kui paned teispidi sulu, miinus üks. Kui rea lõpus ei ole nullis tagasi, oled vea teinud...

Nii lugedes ei teki viga. Sama lugu loogiliste sulgudega koodis, kus jupid kisuvad väga "kastistatuks" minema... Aga seal on natuke keerulisem - võid mitukümmend rida koodida ja vahepeal ununeb number ära. Siis on hea kohe "lõpetav" loogiline sulg panna. Aga kui sa numbri juba unustad, võid ka unustada, et juba "lõpetasid"...
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
jyri1234
Level 9
Avatar

Liitunud: 16.1.2008
Postitusi: 542
[EEMAL]




postitati 16.7.2009 13:12 Tsiteeri


Need loogilised sulud vast ikka loogElised sulud.
_________________________________
Eestikeelsed tasuta PHP õpetused - php.ee
PHP Manuaal - php.net
Jõulu 2008 III: Jyri1234<br>
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
valter
1


Liitunud: 19.1.2005
Postitusi: 1553
[EEMAL]




postitati 16.7.2009 13:21 Tsiteeri


pirrn
http://www.dmgamez.pri.ee/GRONGO1/uss_walk.gif
Ralli I: dm11Veresaun III: dm11<br>Emo1: icedude, valter8bit I: võistlus kestabAktsioon III (2009): -<br>Aasta mäng 2009: Pilvemees, valter<br>Vabateema II: valter
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 16.7.2009 13:38 Tsiteeri


InCi sa vist päris väsinud..

"if (A)
on sama mis
if (a != 0) // a ei ole null
"
ei ole, esiteks A!=a ja

if a
on sama, mis
if a>0

samuti

if !a
on sama, mis
if a<=0

EDIT: muide

"Nii lugedes ei teki viga. Sama lugu loogiliste sulgudega koodis, kus jupid kisuvad väga "kastistatuks" minema... Aga seal on natuke keerulisem - võid mitukümmend rida koodida ja vahepeal ununeb number ära. Siis on hea kohe "lõpetav" loogiline sulg panna. Aga kui sa numbri juba unustad, võid ka unustada, et juba "lõpetasid"... "

Lihtsam oleks kasutada korralikku indentimist.

Muide, kui GML välja arvata siis enamus keeltele on toredad tekstiredaktorid kirjutatud, mis sulust üle hoverides hiirega sellele vastava sulu highlightib.
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 16.7.2009 13:40 Tsiteeri


ah? Võib-olla.
ma ei tea täpselt. Peaasi et arusaadav :D
braces!

Ja eesti keeleteadlased võivad persse käia. sa jyri ka. Sõna loogEline kõlab nii värdjalt.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
jnt
Veebiguru
Avatar

Liitunud: 3.2.2005
Postitusi: 731
[EEMAL]




postitati 16.7.2009 14:40 Tsiteeri


inc, said mu mõttele nats valesti pihta, aga olgu... :P ma mõtsin, et kui ma kontrollin muutujal kindlat väärtust, õigemini kahel näiteks ja neil vahel mingi või või ja, siis nendele kontrollimistele ma sulge veel ümber ei pane. Kui aga on rohkem, kui 2 muutujat vaja kontrollida ja nende muutujate vahel on nii ja'sid kui ka või'sid, siis kasutan sulge, et grupeerida tingimusi nii, et nad soovitud tulemusi annaks. ;)
GigAHerZ Web - http://jnt.pri.ee/
Banner Exchange - http://be.jnt.pri.ee/
Mission Possible - http://web.zone.ee/mispos/
Black Nova Traders - http://bnt.jnt.pri.ee/
Aktsioon I: jnt
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
icedude
Mr. tl;dr
Avatar

Liitunud: 15.12.2008
Postitusi: 456
[EEMAL]




postitati 16.7.2009 15:02 Tsiteeri


Ma üldiselt selliseid asju ei tee nagu
if ((a > b) || (a < c) && (c != 0))
Ma kunagi ei jaga matsu kumb ennem oli, OR või AND.:D

Mis puutub sulgude kasutamisse ,siis ma teen üldjuhul kõik üksikud võrdlused sulgudes. Siis näeb editoris , kus ja kui pikalt midagi toimub, kui mingit highlight asja pole editoril built in.

if ((a+k)>b)
-Tee asja 1
elseif (a<c)
-if (c!=0)
--Tee asja 1

1) Kui kõik IF võrdlused peaks toimuma siis on IF võrdlemiste aeg sama. Lõpp vastuse saab pooltel juhtudel kiiremini kuna ei toimu lisa IF võrdlusi, eriti kui on palju objecte siis ajaline võit võib olla märkimisväärne olenevalt kuidas IF puu ülesse on ehitatud. Üldjuhul ma panen ka tihedamini esinevad võrdlused sel juhul IF puul kõrgemal, et ajaline võit oleks maksimaalne. Näiteks rect to rect collisioni saab tunduvalt kiiremaks. Kood läheb koledamaks, aga see on hind mida tuleb vahest maksta.
Emo1: icedude, valter8bit III: võistlus kestab<br>
Vaata kasutaja profiili Saada kasutajale e-mail Otsi kasutaja postitusi Saada privaatsõnum
StopB
Level 3


Liitunud: 1.3.2007
Postitusi: 55
[EEMAL]




postitati 22.7.2009 12:33 Tsiteeri


Ei jaga matsu kas kana v6i muna :P
http://stopb.planet.ee/

Eesti Suurim Shuffle Foorum! :D
// Minu tehtud btw XD.

Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i

Hetkel loevad seda teemat:
Mitte ühtegi - 1 külaline

Mine lehekülje lõppu





Foorumi algbaas põhineb XMB mootoril, modifitseeritud Valter Pundi poolt
Kodulehekülg on tehtud Valter Pundi poolt vpundi ät gmail punkt komm