Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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 )
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 ] ])