Aldagaiei balio zehatzak esleitzea baino, zenbaki aleatorioekin lan egitea interesgarriagoa izango da. Horrela, kasu ezberdinen aurrean zer egin erabaki ahal izango dugu.
Horretarako, zenbaki aleatorien sortzaile bat beharko dugu.
Initialize funtzioan (Giltzaren ostean ) ondoko koadroan fondo laranja duen kodea itsatsiko dugu:
Kasu honetan, bai randomGenerator, zenbakia1, zenbakia2 eta zenbakia3 aldagaiak "lokalak" dira, hau da, funtzioaren baitan soilik erabili daitezke eta funtzio horretatik kanpo aldagaiak ez dira existituko. Aldagai hauek izenak BETI letra xehez hasi behar dira.
DieRoll eta Range, Random objektuaren metodoak (edo komandoak) dira. (Idatzi Random. eta agertuko dira aukera guztiak)
DieRollek, parametro bakarra du eta 1 zenbakia eta parametro modura pasatutako zenbakiaren arteko zenbaki oso (Integer) bat emango digu. Ematen diogun zenbakia, dado baten aurpegi kopurua balitz bezala funtzionatzen du eta DieRollek dadoa botako bagenu bezala, aurpegi horietako baten balioa emango digu aleatorioki.
Range funtzioak aldiz, bi parametroetan pasatutako bi zenbakien arteko zenbaki erreal (Real) bat emango digu, edozein, aleatorioki.
Zenbaki "Real" bat "Integer" bezala manejatu nahi izango bagenu, aldagaiaren balioaren ostean "as Integer" ipin genezake. (Jakin egin daitekeela, besterik gabe)
Baina zenbaki aleatorioen sortzaile hau, ZilchScript honetako hainbat funtziotan erabili nahi izanez gero, sortzaile hau klaseko aldagai bezala deklaratuko dugu, eta klase honetako (script honetako) edozein funtziotan erabili ahal izango dugu.
Egin dezagun, bada:
Fondo laranja duen kodea hortxe idatzi ondoren, ezabatu ezazu Initialize funtzioan aurretik idatzitako kodea randNumGenerator izeneko aldagaia definitzeko.(Eta bere azalpenaren oharra!)
Klase aldagaien izenak letra larriz hasi behar dira BETI.
Aldagaia ez denez lokala, hau da funtzioan bertan definitutakoa, berari erreferentzia egiteko, this. idatzi beharko dugu aldagaiaren izenaren aurretik.(fitxategi honetako...)
Aldaketa egin ondoren, Play-ari ematen badiozu akats pare bat agertuko dira kodean. Aurreko paragrafoa irakurri baduzu, gai izango zara akats hori zuzentzeko...
var zenbakia1 = this.RandNumGenerator.DieRoll(20);
var zenbakia2 = this.RandNumGenerator.Range(20,30);
Orain OnLogicUpdate funtzioan idatzi ondoko kodea: (Kopiatu soilik fondo laranja duen kodea eta itsatsi OnLogicUpdate funtzioaren paresntesien ondoren.)
Honek funtziona dezan, ez ahaztu Initialize funtzioan deskomentatzea (kendu //) berez komentatuta egoten den ondoko komandoa: Zero.Connect(this.Space, Events.LogicUpdate, this.OnLogicUpdate);
Gogoratu zer egiten duen komando honek:
Space objektuak bidalitako LogicUpdate ebentoak edo mezuak jasoko ditu eta jasotzerakoan, klase honetako (this.) OnLogicUpdate izeneko funtzioa exekutatu behar duela.
Space izeneko objektuak, LogicUpdate ebento edo mezu hori segundu bakoitzean 60 aldiz bidaltzen du, beraz, programa geratu arte, Consolean testu piloa agertzen joango da, segunduan 60 mezu non zenbaki aleatorioak agertzen joango diren.
Froga egin ondoren berriz komentatu Zero.Connect komandoa!
Aprobetxatu dugu zenbait funtzio matematikoren erabilpena lantzeko. Horretarako, ZilchScript-eko Math izeneko objektuaren zenbait funtzio erabili ditugu. Kasu honetan, Math.Round eta Math.Truncate funtzioak hain zuzen. Jakingo duzue zer egingo duten, ez? Batek zenabaki erreal bat borobildu eta besteak zenbaki erreala moztu. Biak Math objektuaren metodoak(funtzioak) dira eta biek Integer moduko zenbakiak bueltatzen dituzte.
Math idatzi eta jarraian puntu bat jarriz, zerrenda bat agertuko zaizu erabili ditzakezun funtzio guztiekin