Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Alapok #2
#1
Ebben a témában folytatom tovább az alapokat.

Ha egy parancs van egy ágon akkor nem muszáj {}-et tenni.
Alapból így nézne ki:
Code:
if(players[i].health>100)
{
players[i].health=100;
}

Egyszerűsítve pedig:
Code:
if(players[i].health>100) players[i].health=100;

Vagy így:
Code:
if(players[i].health>100)
    players[i].health=100;


A függvényeken belül végtelen ciklusokat is csinálhatunk (2 fajta ciklus van, feltételes(while) számlálós(for(;;)).
Példa:
Code:
fuggveny()
{
for(i=0;i<5;i++) // a játékot nem zavarja, hogy az i az egy szám.
{
self iprintlnbold(i); // ki írja a számokat 1-től 5-ig.
wait 0.5; // vár fél másodpercet, egyébként ide nem muszáj várakoztatást rakni de akkor egyből ki írná az összes számot és ha mondjuk nem 5-ig hanem 100-ig írná ki akkor nem tudnád elolvasni.
}
} // mivel 2 {-et nyitottunk ezért 2-vel kell zárnunk is.

A for ciklus másik verziója: 
Code:
fuggveny()
{
i=0; // i változónak 0 értéket adunk. Nem összetévesztendő a == mert ez értékellenőrzést jelent.
for(;;) // így végtelen ciklust indítunk míg az elsőnél nem.
{
i++; // az i értékét megnöveli 1-el, van --; is.
self iprintlnbold(i);
if(i==5) break; // ha ki írta az összes számot akkor kilép a függvényből. A break a függvény bármely pontján ki tud lépni és ez lépki a switch-ből is.
wait 0.5; // ide kötelező a várakoztatást mert különben kifagy a játék.
}
}

A while ciklus:
Code:
fuggveny()
{
i=0; // i változónak 0 értéket adunk.
while(i<5)
{
i++; // az i értékét megnöveli 1-el, van --; is.
self iprintlnbold(i);
if(i==5) break;
wait 0.5; // ide kötelező a várakoztatást mert különben kifagy a játék.
}
}
A várakoztatást mindig a cikluson belül kell rakni. 
A while-nál is indíthatunk végtelen ciklust ami így néz ki while(1) míg a fornál for(;;) 

A függvényen belül lehetnek elágazások:
Code:
fuggveny()
{
switch(valtozo)
{
case"ertek1":parancs1;break; // a változó egyenlő az ertek1-el akkor lefut a parancs1 majd kilép az elágazásból.
case"ertek2":parancs2;break; // a változó egyenlő az ertek2-el akkor lefut a parancs2 majd kilép az elágazásból.
}
}

if = ha 

else = különben vagy külön

Értelmezzünk egy példát:
Code:
if(level.mapended == 1) 

    iprintLnBold("A mapnak vége van!"); 
}
Ez annyit csinál, ha a "level.mapended" egyenlő 1-el akkor ezt a szöveget kiírja.

Most nézzünk egy példát az "else" használatával:
Code:
if(level.mapended == 1) 

    iprintLnBold("A mapnak vége van!"); 
}else{ 
    iprintLnBold("A mapnak még nincs vége!"); 
}
Ha a "level.mapended" egyenlő 1-el akkor kiírja a szöveget, különben kiírja a másik szöveget. 

Az "else if"-t akkor használjuk, hogy ha 2 vagy több parancsot vagy "blokkot" szeretnénk futtatni. 
Itt egy példa:
Code:
if(level.mapended < 0)
{
    iprtinlnbold("Nincs mapvége");
}else if(level.mapended == 1)
{
    thread mapvege();
}else if(level.mapended == 2)
{
    mapended = "asd";
}
Ha "level.mapended" nagyobb mint nulla, kiírja hogy nincs mapvége. Ha a "level.mapended" egyenlő 1-el akkor betölti a "mapvege" függvényt. Ha a "level.mapended" egyenlő 2-vel akkor a parancs az lesz hogy "mapended = "asd").

Az első témámban volt szó a változókról, amiket 3 felé csoportosítottunk.
Nos, itt egy kis jelmagyarázat hozzá:
Code:
self.cod2++; <- így hozzá adunk 1-et.

self.cod2--; <- így elveszünk 1-et.

self.cod2+=1; <- így is 1-et.

self.cod2+=10; <- így 10-et.

self.cod2-=1; <- így elvesz 1-et.

self.cod2-=10; <- így elvesz 10-et.

Sipex


Forum Jump:


Users browsing this thread: 1 Guest(s)