Está en la página 1de 8

FacultaddeCiencias,UNAM

InteligenciaArtificial

ProgramacinenLUA
Debidoalampliousocomolenguajedescriptparaprogramadoresdevideojuegos,fcilmanejo, yrpidaejecucin,elcursodeinteligenciaartificialtendrcomoalternativadeprogramacinel lenguajeLUA.

Sintaxis1 Palabrasreservadas
a n d e n d i n r e p e a t b r e a k f a l s e l o c a l r e t u r n d o f o r n i l t h e n e l s e f u n c t i o n n o t t r u e e l s e i f i f o r u n t i l w h i l e

Tiposbsicos
Luatienetiposperonoestfuertementetipado,asquenoesnecesarioindicareltipodeuna variable.EstossonlostiposquemanjeaLua:
n i l ,b o o l e a n ,n u m b e r ,s t r i n g ,f u n c t i o n ,t a b l e ,u s e r d a t a ,t h r e a d

LadocumentacincompletadeLuaseencuentraen:http://www.lua.org/manual/5.1/manual.html

FacultaddeCiencias,UNAM

InteligenciaArtificial

Asiganaciones
Lasasignacionespuedenrepresentarcualquierexpresinytiposmencionados. v a r=e x p r l i s t a _ v a r x p ,e x p , , e x p n =e 1 2 n Ejemplos: i=3 i ,a [ i ]=i + 1 ,2 0

Estructurasdecontrol
Ciclowhiledondecondicionseevaluaaunvalorbooleano.
w h i l ec o n d i c i o nd o -D e c l a r a c i o n e s e n d

Equivaleaciclodowhile.
l o c a lc o n d=f a l s e r e p e a t -D e c l a r a c i o n e s u n t i lc o n d

Ciclofor,aumentaenunaunidadhastaqueelndicesea5.
f o ri n d e x = 1 ,5d o p r i n t ( i n d e x ) e n d

Cicloforconunparmetroadicionalparamodificarelaumentodecadaciclo.
l o c a li n i c i o , f i n a l , d e l t a=1 0 , 1 , 1d e l t ap u e d es e rn e g a t i v op a r ac u e n t a s r e g r e s i v a s . f o ri n d e x=i n i c i o , f i n a l , d e l t ad o p r i n t ( i n d e x ) e n d

FacultaddeCiencias,UNAM

InteligenciaArtificial

FacultaddeCiencias,UNAM

InteligenciaArtificial

Declaracioneslocales
Lasdeclaracioneslocalessepuedenrealizarencualquiermomentoysoloconservansuvalor dentrodelbloquedecdigodondeserealizlaasignacin.Ejemplo:
x=1 0 d o l o c a lx=x p r i n t ( x ) x=x + 1 d o l o c a lx=x + 1 p r i n t ( x ) e n d p r i n t ( x ) e n d p r i n t ( x ) >1 0 ( l a x g l o b a l ) >1 1 -o t r ob l o q u e -o t r a' x ' >1 2 -v a r i a b l eg l o b a l -n u e v ob l o q u e -n u e v a' x ' ,c o nv a l o r1 0 >1 0

Operadoresaritmticos
+(suma),(resta),*(multiplicacin),/(divisin),%(mdulo),^(exponenciacin).

Operadoresrelacionales
Estosoperadoressiempredevuelvenunvalorbooleano. ==(igual),~=(diferente),<(menorque),>(mayorque),<=(menoroigualque),>=(mayoro igualque).

Operadoreslgicos
ParaLualosvaloresfalseynilsonconsideradosfalsoycualquierotracosacomoverdadero (true). not and or Siempredevuelvelanegacindetrueofalse. Devuelveelprimerargumentosistevaloresfalseonil,encasocontrariodevuelve elsegundoargumento. Devuelveelprimerargumentosistevaloresdiferentefalseonil,encasocontrario devuelveelsegundoargumento.

Estaformadeevaluaroperadoreslgicosseconocecomoshortcutevaluation,yaquesolo bastaverificarelprimerargumento.Ejemplos:
1 0o r2 0 >1 0

FacultaddeCiencias,UNAM

InteligenciaArtificial

1 0o re r r o r ( ) n i lo r" a " n i la n d1 0 f a l s ea n de r r o r ( ) f a l s ea n dn i l f a l s eo rn i l 1 0a n d2 0

>1 0 >" a " >n i l >f a l s e >f a l s e >n i l >2 0

Operadordeconcatenacin:..(dospuntosseguidos) Operadordelongitud(tablas):#(hashtag)

Precedenciadeoperadores
o r a n d < ,> ,< = ,< = ,~ = ,= = . . + ,* ,/ ,% n o t ,# ,-( u n a r i o ) ^

Tablas
SonlaestructuramsimportantedeLuaysonconceptualmentesimilaresalosarreglosdel lenguajePHPolosdiccionariosenPython. Lastablassecreanmediantelasintaxisdelconstructor{}: tabla={} Yposteriormentesepuedeagregarcualquierexpresinmediantendices:
t a b l a [ 1 ]=2 t a b l a [ 2 ]= h o l a t a b l a [ 3 ]=t r u e t a b l a[ 4 ]=f ( )

Queconceptualmenteseveradelasiguientemanera:
t a b l a={2 , h o l a ,t r u e ,f ( )}

Otramaneradeagregarelementosaunatablamediantelanotacinpunto:
t a b l a . x=1 0 0 t a b l a . n o m b r e= M it a b l a

FacultaddeCiencias,UNAM

InteligenciaArtificial

Funcionesbsicas(ytiles)

d o f i l e ( f i l e n a m e )

AbreelarchivoyloejecutacomounbloquedecdigodeLua.
t o n u m b e r ( e )

Tratadeconvertirelargumentoenunnmero.Denoserposiblelaconversindevuelve nil.
t o s t r i n g ( e )

Recibeunargumentodecualquiertipoyloconvierteacadenaenunformatorazonable.
t y p e ( v )

Devuleveeltipodelargumentoenformadecadena.Porejemplo:number,string, function,etc.

Manipulacindecadenas

s t r i n g . l e n ( s t r i n g )

Recibeunacadenaydevuelvesulongitud,tomandoencuentaquelacadenavacatiene longitud0.
s t r i n g . r e v e r s e ( s t r i n g )

Recibeunacadenaydevuelvelareversadelacadena.
s t r i n g . l o w e r ( s t r i n g )

Recibeunacadenaydevuelveunacopiacontodosloscaracteresenminscula.
s t r i n g . u p p e r ( s t r i n g )

Recibeunacadenaydevuelveunacopiacontodosloscaracteresenmayscula.
s t r i n g . s u b ( s , i , j )

Devuelvelasubcadenadesqueempiezaenelndiceiyterminaenelj.

Manipulacindetablas

t a b l e . i n s e r t ( t a b l e ,[ p o s , ]v a l u e )

Insertaelelementovalueenlaposicinposdetable.Elvalorpredeterminadodeposes n+1(dondeneslalongituddelatabla).Lallamadat a b l e . i n s e r t ( t ,x ) insertaxalfinal delatablat.


t a b l e . r e m o v e ( t a b l e[ , p o s ] )

Eliminadelatablaelelementoenlaposicinpos.recorriendoloselementosdelatabla parallenarelhueco,siesnecesario.Devuelveelvalordelelementoqueseelimina.El valorpredeterminadodeposesn,asiquelallamadat a b l e . r e m o v e ( t ) eliminaelltimo elementodelatablat.


t a b l e . s o r t ( t a b l e )

Ordenaloselementosentable,desdet a b l e [ 1 ] hastat a b l e [ n ] ,dondeneslalongitudde latabla.Eloperadordecomparacines<(menorque).

FacultaddeCiencias,UNAM

InteligenciaArtificial

FacultaddeCiencias,UNAM

InteligenciaArtificial

Funcionesmatemticas

m a t . a b s ( x )

Devuelveelvalorabsolutodex.
m a t h . s i n ( x )

Devuelveelsenodex(asumiendoqueestenradianes).
m a t h . c o s ( x )

Devuelveelcosenodex(asumiendoqueestenradianes).
m a t h . t a n ( x )

Devuelvelatangentedex(asumiendoqueestenradianes).
m a t h . c e i l ( x )

Devuelveelmenorenteromayoroigualquex.
m a t h . f l o o r ( x )

Devuelveelmayorenteromenoroigualquex.
m a t h . m a x ( x , )

Devuelveelmximovalordeentretodoslosargumentos
m a t h . m i n ( x , )

Devuelveelmnimovalordeentretodoslosargumentos
m a t h . r a n d o m ([ m[ , n ] ])

Generadordenmerospseudoaleatorios.Cuandoesllamadosinargumentosdevuelve unnmerorealenelrango[0,1).Cuandoesllamadoconunnmeroenterom,devuelve unenteroenelrango[1,m].Cuandoesllamadocondosparmetrosenterosmyn, devuelveunenteroenelrango[m,n].

También podría gustarte