Você está na página 1de 16

Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 1

Sumrio
1. Introduo a Lgica ................................................................................................ 03
2. Verdadeiro e Falso .................................................................................................. 03
3. Conectivo E e OU ................................................................................................... 03
. !egao ................................................................................................................. 0
". Introduo a #rogra$ao ..................................................................................... 0
%. Ele$entos &'sicos de u$ Cdigo Fonte ............................................................... 0
%.1 #alavras (eservadas .................................................................................................. 0
%.2 Co$ent'rios ................................................................................................................ 0
%.3 O)eradores .................................................................................................................. 0
%. *tri+uio ..................................................................................................................... 0
%." Constantes .................................................................................................................. 0"
%.% Vari'veis ...................................................................................................................... 0"
,. *rra-s ...................................................................................................................... 0%
,.1 Vetores ......................................................................................................................... 0%
,.2 .atri/es ....................................................................................................................... 0%
0. E1)ress2es Lgicas e *rit$3ticas .......................................................................... 0,
0.1 O)eradores *rit$3ticos ............................................................................................... 0,
0.2 O)eradores Lgicos .................................................................................................... 0,
0.3 O)eradores (elacionais .............................................................................................. 0,
0. E1)ress2es 45+ridas ................................................................................................... 0,
0." Lineari/ao de E1)ress2es ....................................................................................... 00
6. #lano cartesiano do 7a$e .a8er .......................................................................... 00
10. Condicional IF e EL9E .......................................................................................... 06
11. Condicional 9:I;C4 ............................................................................................. 10
12. Lao de (e)etio FO( ........................................................................................ 11
13. Lao de (e)etio :4ILE .................................................................................... 12
1. Lao de (e)etio <O=U!;IL ............................................................................... 12
1". Fun2es ................................................................................................................. 13
1".1 Fun2es se$ (etorno ............................................................................................... 1
1".2 Fun2es co$ (etorno ............................................................................................... 1"
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 2
1. !"#$%&'($ A L)G*A
.uita gente descon>ece a Lgica .ate$'tica? )ois ela 3 u$a ci@ncia Aue
geral$ente 3 ensinada no curso su)erior. 9e +aseia e$ c'lculos diretos? onde no so
utili/ados nB$eros? $as si$ so$ente dois valores lgicosC VE(<*<EI(O ou F*L9O.
*s )essoas Aue tra+al>a$ co$ o 7a$e .a8er? )or3$ descon>ece$ so+re a
linguage$ de )rogra$ao ou lgica? ne$ i$agina$ Aue ao $es$o te$)o Aue esto se
divertindo? ta$+3$ esto a)rendendo so+re os valores lgicos.
2. +,#%A%,#$ e -ALS$
!o )ara$os )ara notar? $as os valores lgicos
esto e$ nosso cotidiano? e$ AualAuer coisa Aue
Dala$os? ouvi$os ? le$os ou escreve$os. O si$)les
ato de a)rovar ou negar algo? 3 u$ valor lgico.
Os valores lgicos so tra+al>ados e$
linguage$ de )rogra$ao? onde u$ resultado ser'
se$)re verdadeiro ou Dalso? veEa na ta+ela a seguir? os
res)ectivos sinFni$os desses valores nas linguagens?
outras literaturas e at3 $es$o e$ nosso cotidianoC
.. *$!,*"+$S /$&0 e /,0
I$agine$os Aue voc@ te$ 10 reais? e vai G u$a loEa de utilidades onde te$ u$
carrin>o custando 10 reais e u$a +oneca ta$+3$ no $es$o valor. Co$ esse din>eiro
voc@ so$ente )oder' co$)rar o carrin>o $& a +oneca. Caso v' G loEa co$ 20 reais?
)oder' co$)rar o carrin>o , a +oneca.
*o1ecti2o /,0 3co14u1o5 = 3 utili/ado se$)re
)ara dar u$a ideia de si$ultaneidade. Ou seEa? enAuanto u$
dos valores ou os dois valores Dore$ Dalsos? o resultado lgico
se$)re ser' Dalso. #ode ser re)resentado )or a1d ou 66
E1e$)loC Hoo te$ 20 anos IVJ e no te$ carteira de
$otorista IFJ. Hoo 1o )ode dirigir IFJ.
*o1ecti2o /$&0 3dis4u1o5 = 3 utili/ado )ara di/er se
ocorrer' u$ evento ou outro? ou seEa? se ocorrer u$ dos
eventos IverdadeiroJ ou os dois eventos? o valor lgico ser'
verdadeiro. 9o$ente ser' Dalso Auando os dois eventos Dore$
Dalsos. #ode ser re)resentado )or or ou 77
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 3
E1e$)loC * se$ana te$ 0 dias IFJ ou o &rasil 3 o )a5s do Dute+ol IVJ. O resultado dessa
disEuno 3 verdadeira IVJ? )ois a segunda )ro)osio 3 verdadeira.
8. !,GA'($
* negao 3 utili/ada )ara eDetuar a inverso de valores? ou
seEa? se o valor 3 verdadeiro ele Dica Dalso e vice=versa.
#ode ser re)resentado )or 1o395? :9 e ;9? veEa na ta+ela ao
lado.
<. !"#$%&'($ A P#$G#AMA'($
Linguage$ de )rogra$ao 3 u$ conEunto Dinito de s5$+olos utili/ados )ara
escrever )rogra$as de co$)utador ou criar Eogos.
!o caso tra+al>are$os co$ cdigos ligados a 7.L I7a$e .a8er LanguageJ? Aue 3
+asica$ente a unio de algu$as outras linguagens co$o C? CKK e #ascal.
.uitas )essoas acredita$ Aue Da/er u$ Eogo no 7a$e .a8er 3 so$ente arrastar
+oto e ver acontecer. #or3$? na realidade? e1iste $uita lgica e )rogra$ao envolvidos?
e 3 isso Aue voc@ ver' a seguir.
=. ,L,M,!"$S B>S*$S %, &M *)%G$?-$!", 3S*#P"S5
=.1 Pala2ras #eser2adas@ )alavras Aue te$ u$ signiDicado es)ecial no cdigo? ou
seEa? geral$ente so aAuelas )alavras Aue e1ecuta algu$ co$ando e )or isso no )ode$
ser usadas )ara outros Dins? co$o no$ear vari'veis. E1e$)losC iD? else? +rea8? continue?
t>en? etc...
=.A *ome1trios@ so )alavras ou Drases Aue no interDere$ no cdigo? sua Duno
3 a)enas e1)licativa? no altera nada na seAu@ncia lgica do scri)t. #ara colocar u$
co$ent'rio insira LMMN Iduas +arrasJ seguido da Drase? caso seEa s u$a lin>a ou ta$+3$
coloAue o te1to entre MO e OM Iasterisco e +arraJ se Dor $ais de u$a lin>a.
=.. $peradores AritmBticos e Lgicos@ no cdigo Donte? os sinais $ate$'ticos e
lgicos so re)resentados )orC
C 3mais5 P 9o$a e concatenao
? 3me1os5 P 9u+trao
D 3asterisco5 P .ulti)licao
E 3Farra5 P <iviso
GG 3A iguais5 P Igualdade
; 3e9clamao5 P !egao
true ou 1 P Verdadeiro
Halse ou I P Falso
J 3maior5 P .aior
K 3me1or5 P .enor
=.8 AtriFuio@ u$a das )rinci)ais $aneiras de ar$a/enar u$a inDor$ao nu$a
vari'vel. O s5$+olo de atri+uio 3 o igual IQJ? le$+rado Aue Q Iatri+uioJ 3 diDerente de QQ
IIgualdadeJ
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 4
9inta1eC RvariavelS G RconstanteS ou RvariavelS ou Re1)ressaoS
E1e$)loC )ersonage$ Q 1K2
=.< *o1sta1tes@ so valores Di1os Aue no $uda$ no decorrer da e1ecuo?
geral$ente 3 atri+u5do a algu$a vari'vel ou 3 utili/ado direta$ente nu$ c>a$ado. 9o
constantes nB$eros? strings? e1)ress2es e valores lgicos.
P Stri1gs so conEunto de caracteres? onde deve$ ser colocados entre TeT Ias)as si$)lesJ
ou entre LeN Ias)as nor$alJ. O LKN I$aisJ entre duas strings Da/ a concatenao IDusoJ
delas. E1. de stringsC LcarroN? LOr8utN? etc... ConcatenaoC LcarroNKNcasaNQNcarrocasaN
P 1teiros so nB$eros naturais inteiros? seEa ele negativo ou )ositivo. E 1o se utili/a
as)as )ara atri+u5=los ou c>a$a=los. E1. de inteirosC =2"? ="2? 0? ,0? 3? =1? 2? etc...
P -lutua1tes so nB$eros reais? ou seEa? aAueles Aue no so e1atos. E 1o se utili/a
as)as )ara atri+u5=los ou c>a$a=los. E1. de DlutuantesC 2."? =1.2? 0.2? .0,? =%.,? =0.1? etc.
P +alores lgicos so condi2es verdadeiras ou Dalsas. !o 7a$e .a8er )ode$os usar 1
IverdadeiroJ e 0 IDalsoJ? $as )ara evitar erros e conDus2es co$ inteiros? o ideal 3 usar true
ou Dalse.
P ,9pressLes so c'lculos e1ecutados durante o )rocesso? e )ode o+ter resultado
arit$3tico? lgico ou >5+rido. E1.C 2K%? 2"=O%? "RS%? "K0R6? etc. Vere$os logo $ais?
detal>ada$ente so+re as e1)ress2es.
=.= +ari2eis@ so es)aos na $e$ria Aue guarda$ inDor$a2es durante a
e1ecuo do Eogo. Essas inDor$a2es )ode$ variar no decorrer da e1ecuo. #ara
declarar o valor de u$a vari'vel? 3 necess'rio colocar nos eventos Create? 7a$e 9tart ou
(oo$ 9tart? utili/ando u$ sinal de atri+uio IQJ. E1e$)loC carro G 1. O valor de LcarroN no
in5cio do Eogo? ser' 1.
#ara alterar o valor de u$a vari'vel no decorrer do Eogo? +asta Aue no evento? coloAue a
vari'vel seguida do sinal de atri+uio e do novo valorC carro Q 3. *gora? LcarroN vale 3. .as
se voc@ Auer acrescentar ou retirar valores da vari'vel? +asta colocar u$ sinal $ate$'tico
ao atri+uir.
E1e$)loC <iga$os Aue casa G A
casa Q casaK3 P *Aui? LcasaN rece+er' ela $es$o $ais 3? agora )assa a valer "U
casa Q casa=1 P *gora? LcasaN rece+e ela $enos =1? )assa a valer U
casa Q 0 P *Aui LcasaN rece+e 0? onde 3 seu novo valorU
casa Q casaM2 P *gora LcasaN rece+e ela dividido )or dois? )assa a valer U
casa Q casaO3 P #or Di$? LcasaN rece+e ela $ulti)licado )or 3? )assando a valer 12.
#ode$os resu$ir o cdigo de atri+uio? e1e$)loC Env3s de Farra G FarraCA )ode$os
usar Farra CG A. Vale )ara AualAuer c'lculo arit$3ticoC CG? ?G? DG e EG.
E1e$)los de co$o c>a$ar u$a vari'vel co$ a Duno L<raVNC
draMNte9t39OPOcasa5 P .ostrar' na tela o valor 12 da vari'vel LcasaN.
draMNte9t39OPOcasaC1<5 P .ostrar' na tela o valor 2, co$o resultado.
draMNte9t39OPOcasaC0carros05 P .ostrar' na tela o valor 12carros co$o resultado.
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 5
Q. A##ARS 3+A#>+,S *$M S,"$#,S5
Q.1 +etores@ so vari'veis Aue )ossue$ v'rios setores e$ seu es)ao de $e$ria?
sendo assi$? no 3 necess'rio declarar u$a vari'vel $ais de u$a ve/? +asta declarar u$a
ve/ e de)ois alterar os 5ndices atri+uindo u$ valor diDerente )ara cada u$.
9inta1eC RvariavelSWRindiceSX
E1e$)loC
+loco Q 0 P <eclara$os L+locoN co$ o valor 0U
+locoW0X Q 2K1 P O 5ndice 0 de L+locoN rece+e resultado da e1)resso 2K1U
+locoW1X Q 20 P O 5ndice 1 de L+locoN rece+e 20U
+locoW2X Q Dalse P O 5ndice 2 de L+locoN rece+e valor lgico DalsoU
+locoW3X Q Lte1toN P O 5ndice 3 de L+locoN rece+e string Lte1toNU
+locoWX KQ 2=" P O 5ndice 3 de L+locoN rece+e resultado de u$a e1)resso.
<e)ois de atri+uir u$ valor a u$ 5ndice de u$ vetor? ao e1i+i=lo ou co$)ara=lo? deve=
se indicar o 5ndice. 9e )or e1e$)lo? declarar$os o vetor L+locoN co$ 5ndices? ao us'=lo
Inu$ evento L<raVN )or e1e$)loJ? deve$os indicar o valor do 5ndice? e1e$)loC +locoW2X?
caso contr'rio ele retornar' o valor original da declarao e se colocar u$ 5ndice
ine1istente? dar' erro na e1ecuo.
Q.A Matrizes@ u$ Array ta$+3$ )ode ser u$a .atri/? ou seEa? )ode ter seus valores
guardados nu$a ta+ela. * declarao da vari'vel 3 a $es$a do vetor? )odere$ na
atri+uio dos 5ndices se)ara$os as colunas e lin>as )or v5rgulaC
9inta1eC RvariavelSWRcolS?RlinSX
E1e$)loC
+loco Q 0 P <eclara$os L+locoN co$ o valor 0U
+locoW1?0X Q LDraseN P #osio 1?0 de L+locoN rece+e resultado da e1)resso 2K1U
+locoW2?0X Q 20 P #osio 2?0 de L+locoN rece+e 20U
+locoW3?0X Q Dalse P #osio 3?0 de L+locoN rece+e valor lgico DalsoU
+locoW1?1X Q 3K" P #osio 1?1 de L+locoN rece+e resultado da e1)ressoU
+locoW3?1X Q true P #osio 3?1 de L+locoN rece+e valor lgico verdadeiroU
+locoW0?2X Q LnovoN P #osio 0?2 de L+locoN rece+e string LnovoNU
+locoW2?2X Q O0=1" P #osio 2?2 de L+locoN rece+e resultado da e1)resso.
Os es)aos Aue so+ra$ Ie$ cin/a escuro riscadoJ? so c>a$ados de Lli1osN? isso
)orAue so es)aos )erdidos. 9e c>a$'sse$os? )or e1e$)lo? o 5ndice FlocoSIO1T o 7a$e
.a8er retornar' 0 IDalsoJ? se Dosse nu$ outro co$)ilador de soDtVares Ico$o <evCKKJ? iria
a)arecer u$ $onte de s5$+olos se$ sentido. Esses es)aos )erdidos ta$+3$ conso$e$
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 6
$e$ria? )or isso siga se$)re essa dicaC !unca dei1e es)aos e$ +ranco nu$ arra-? seEa
ele u$ vetor ou u$a $atri/.
E1e$)los de co$o c>a$ar u$ arra- co$ a Duno L<raVNC
draMNte9t39OPOFlocoS1T5 P .ostrar' na tela o valor 20 do vetor L+locoN
draMNte9t39OPOFlocoS.O1T5 P .ostrar' na tela o valor lgico 1 da $atri/ L+locoN.
U. ,VP#,SSW,S L)G*AS , A#"MX"*AS
E1)resso 3 u$ conEunto de vari'veis eMou constantes Aue se relaciona$ )or $eio
de o)eradores e a sua avaliao gera u$ resultado.
O)eradores so ele$entos Aue atual so+re o)erandos e )rodu/e$ u$ resultado. <e
acordo co$ o nB$ero de o)erandos? )ode$ ser c>a$ados deC
P &in'riosC atua$ so+re dois o)erandos co$o so$a? su+trao? diviso? etc...
P Un'riosC atua$ so+re u$ o)erando co$o sinal de negativo e negao.
U.1 $peradores AritmBticos@ se$)re iro retornar u$ valor nu$3rico seEa ele
inteiro ou Dlutuante? e1e$)losC 2K"Q,? 2."O2Q"? 2="Q=3? etc...
U.A $peradores Lgicos@ se$)re retorna u$ valor lgico? ou seEa? verdadeiro ou
Dalso? e1e$)loC true or Dalse Q true
U.. $peradores #elacio1ais@ se$)re retorna valores lgicos? ou seEa? Da/ u$a
co$)arao entre o)erandos? e1e$)losC 0R2QDalse? ="2R"0Qtrue? "YQ"QDalse? etc...
U.8 ,9presso YZFrida@ )ode ter o)eradores arit$3ticos? lgicos e relacionais?
)or3$ se$)re ir' retornar u$ valor lgico. E1e$)loC "K3="R"=10Qtrue
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 7
U.< Li1earizao de ,9pressLes@ 3 o ato de des$anc>ar u$a e1)resso?
colocando=a nu$a lin>a s. VeEa o e1e$)lo a seguirC
!a linguage$ de )rogra$ao? no >' co$o colocar essa Dr$ula no cdigo Donte?
)ara isso deve$os lineari/ar? res)eitando os o)eradores e sua )reced@ncia. *ssi$C
3ACs[rt38DACU55E3ADADA5
Co$o todos deve$ sa+er desde o ensino Dunda$ental? nu$a e1)resso se$
)ar@nteses? os o)eradores te$ u$a orde$ de )reced@ncia Aue deve$os seguir Ita+elas
aci$aJ? onde Aue se errado o c'lculo? o resultado )ode ser diDerente do es)erado. .as
)ara nossa Delicidade? os co$)iladores e$ geral? e1ecuta$ res)eitando essa )reced@ncia
auto$atica$ente? +asta inserir$os correta$ente a e1)resso utili/ando )ar@nteses )ara
indicar a )reced@ncia e1ata e )ara Dicar $ais agrad'vel visual$ente.
Zuanto a Auesto de rai/ Auadrada e e1)onenciao? o 7a$e .a8er E' conta co$
Dun2es es)ec5Dicas )ara isso e )ara outros c'lculos. #or e1e$)loC rai/ Auadrada de 1%
sArtI1%J e a )ot@ncia de 0 sArI0J.
\. PLA!$ *A#",SA!$ %$ GAM, MA],#
;odos esta$os acostu$ados co$ aAuele )lano cartesiano Aue a)rende$os Auando
ainda esta$os no ensino $3dio onde na lin>a 9? )ositivo 3 G direita do /ero e negativo G
direita e onde e$ P? )ositivo 3 )ara ci$a e negativo )ara +ai1o. #ois esAuea desse )lano
cartesiano? )orAue o do 7a$e .a8er a lin>a do L-N 3 inversa? veEa a+ai1o )orAue.
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 8
1I. *$!%*$!AL /-0 , /,LS,0
&asica$ente a condicional LIDN Ie$ traduo livre LseNJ? tra+al>a co$ os valores
lgicos? verdadeiro e Dalso. 9e no ocorre u$ evento? ento ocorre outro. VeEa o e1e$)lo 1
a seguir logo $ais leia a e1)licaoC
EXEMPLO 1
Se Joo > 18 anos
ento Poder dirigir
&o$? ca5$os nu$a Auesto lgica? onde
Hoo s )oder' dirigir se tiver $ais de 10
anos? caso contr'rio no )oder'.
EXEMPLO 2
Se (Maria == Solteira) && (Maria > 21 anos)
ento Maria pode se asar
!esse e1e$)lo 2? utili/a$os u$ LeN? onde
.aria s )oder' se casar se tiver 21 anos e
estiver solteira. Caso so$ente u$ dos
eventos seEa verdadeiro? ela no )oder' se
casar.
EXEMPLO 3
Se (Pa!la > " reais) o! (Pa!la == " reais)
ento Pa!la #iar e$ asa
!o e1e$)lo 3? #aula )ode ou no ter
din>eiro Aue Dicar' e$ casa do $es$o Eeito.
.as co$o isso Dicaria no 7a$e .a8er[ &o$? no 7. utili/a$os no lugar de LseN? o
LiDN e no lugar de LentoN? usa$os L\ ]N Ia+re e Dec>a c>avesJ.
EXEMPLO 4
If % > & {
dra'(te)t()*y*$aior)
}
9e a condio Dor verdadeira? e1ecutar'
tudo o Aue estiver entre c>aves. Le$+rando
Aue? se Dor s u$a lin>a no 3 necess'rio o
uso da c>aves? )ode ser na $es$a lin>a da
e1)ressoC If % > & dra'(te)t()*y*$aior)
Caso Aueira colocar $ais u$a condio caso ela seEa Dalsa? a5 entra e$ ao o LelseN IAue
e$ traduo livre 3 LsenoNJ.
EXEMPLO 5
Se arro + ,"-$./
ento 0o le1a $!lta
Seno 2le 3 $!ltado
EXEMPLO 6
Se (% == %) && (%4=,)
ento 5 ig!al
Seno 5 di#erente
#ara inserir essas condi2es no 7a$e .a8er? a sinta1e 3 +e$ )arecida co$ a do 7a$e
.a8er? )or3$ env3s de LsenoN? utili/a$os LelseN. Va$os Da/er o e1e$)lo , usando o C
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 9
EXEMPLO 7
If % > & {
dra'(te)t()*y*$aior)
} else {
dra'(te)t()*y*$enor)
}
9e o nB$ero " Dor $aior Aue 3? escreva
L$aiorN? seno? escreva L$enorN.
E al3$ de constantes co$o inteiros?
Dlutuantes? lgicos e strings? ta$+3$
)ode$os utili/ar vari'veis )ara co$)arar.
EXEMPLO 8
If arro + ," {
dra'(te)t()*y*0o 3 $!ltado)
} else {
dra'(te)t()*y*5 $!ltado)
}
9e o carro no ultra)assar %0 ^$M>? ele no
ser' $ultado? )or3$ caso ultra)asse? ele
ser' $ultado.
&o$? ainda e1iste u$ terceiro caso Aue )ode$os adicionar? veEa no )ro+le$a a seguirC
6a7a !$ sript onde esre1a na tela se o n!$ero digitado pelo !s!rio 3 $aior* $enor o!
ig!al a %8
* Auesto 3 a seguinte? co$o )ode$os colocar essa terceira condio se s
o+te$os duas[ IID e ElseJ
* res)osta 3 si$)les? )orAue )ode$os inserir se$)re u$a Duno dentro da outra? ou seEa?
)ode$os colocar u$a condicional dentro da outra? veEa na resoluo a seguirC
EXEMPLO 9
If n!$ero > % {
dra'(te)t()*y*Maior)
} else {
if n!$ero + % {
dra'(te)t()*y*Menor)
} else dra'(te)t()*y*9g!al)

}
Lnu$eroN 3 a vari'vel onde Dicar' guardado
o valor Aue o usu'rio digitar. 9e ele digitar
u$ nB$ero $aior Aue "? ir' escrever na tela
L.aiorN? seno? se colocar u$ nB$ero
$enor? vai escrever L.enorN? seno?
escrever' LIgualN.
Le$+rando Aue 3 +o$ se$)re identar.
P de1tar 3 dar u$ recuo G direita na lin>a
inDerior? )ara Aue a $es$a DiAue
co$)reens5vel.
11. *$!%*$!AL /S^"*Y0
!a condicional L9Vitc>N ILescol>aNJ? 3 testada u$a vari'vel nu$a seAu@ncia de lin>as at3
Aue seEa encontrada u$a coincid@ncia. *)s ser encontrada? ser' encerrada a condio.
VeEa o e1e$)lo a seguirC
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 10
EXEMPLO 1
1G<
switc !n"
{
c#se 1$
dra'(te)t(roo$('idt/.2* roo$(/eig/t.2* :;$:)
%&e#'(
c#se 2$
dra'(te)t(roo$('idt/.2* roo$(/eig/t.2* :<ois:)
%&e#'(
)ef#*lt$
dra'(te)t(roo$('idt/.2* roo$(/eig/t.2* :0en/!$:)=
}
O LnN vale "? a)s entrar na
condio? ser' veriDicado e$
cada caso Aual 3 igual a vari'vel.
Zuando encontrar u$a lin>a igual
ao valor da vari'vel? ele sa5r' da
condio.
O L>rea?N IL)ararNJ? serve )ara
)arar o teste ao encontrar a lin>a
verdadeira? no continuando a
veriDicao.
O Lde#a!ltN IL)adroNJ? 3 u$a
lin>a onde 3 ativada Auando
nen>u$a das condi2es
anteriores 3 verdadeira.
EXEMPLO 2
switc !?ey>oard(?ey"
{
c#se 1?(le#t$
c#se 1?(n!$pad@$
) A= @=
%&e#'(
c#se 1?(rig/t$
c#se 1?(n!$pad,$
) B= @=
%&e#'(
}
O usu'rio ir' )ressionar u$a
tecla? entrando na condioC
Caso essa tecla Dor Ldirecional
esAuerdoN ou Lnu$ero N 1
rece+er' = Iou gan>ar' )ara a
esAuerdaJ. Caso seEa Ldirecional
direitoN ou Lnu$ero %N 1 rece+er'
Iou gan>ar' )ara a direitaJ.
1A. LA'$ %, #,P,"'($ /-$#0
Co$ando LDorN IL)araN e$ traduo livreJ? 3 u$ conEunto de e1ecu2es co$ u$
nB$ero )r3 deter$inado de re)eti2es? ou seEa? ele e1ecutar' u$ loo) at3 Aue a vari'vel
Dinal c>egue. E1e$)loC
EXEMPLO 1
P#&# M )e " a 1"" f#+#
(C)
fi,-#&#
!esse e1e$)lo? ele e1ecutar' o I_J at3 Aue
. c>egue a 100 Ide 1 e$ 1J.
*gora veEa co$o Dica no 7a$e .a8erC
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 11
EXEMPLO 2
fo& !M="= M==1""= MB=1" {
(C)
}
* diDerena )ara a linguage$ do 7a$e
.a8er 3 Aue so$ente escreve$os o LDorN
IL)araNJ? e e$ seguida indica$os a vari'vel
Aue co$ear'? co$ o valor inicial? o valor
Dinal e Auando ser' acrescentado a cada
loo) Ise)arados )or )onto=e=virgulaJ.
EXEMPLO 3
fo& !i="= i+=,"= MB=1" {
arroB=2
}
!o Dinal da e1ecuo desse lao? o valor de i
ser' %0 e da vari'vel carro ser' 120.
1.. LA'$ %, #,P,"'($ /^YL,0
O L:>ileN ILEnAuantoNJ? 3 u$ co$ando onde s te$ Di$ Auando a e1ecuo 3 Dalsa?
ou seEa? s sai do loo) Auando a seAu@ncia de co$andos Dor diDerente da condio.
E1e$)loC
EXEMPLO 1
, . 1
wile !$ + 2"""
{
$ = $ B 1=
dra'(te)t(roo$('idt/.2* roo$(/eig/t.2* $"
}
EnAuanto L$N Dor $enor Aue 200? e1ecute o
Aue est' entre c>aves.
!a c>aves? L$N a cada loo)? ir' rece+er ele
e $ais u$ e escrever' na tela..
*o c>egar e$ 200? sair' do loo)? )arando
de adicionar a L$N.
Caracter5sticas )rinci)ais do L:>ileNC
P O co$ando )ode ser va/io? si$)les ou +locoU
P Ele 3 e1ecutado desde Aue a condio seEaU
P ;esta a condio antes de e1ecutar o lao? ou seEa? se a condio Dor Dalsa ele ne$
e1ecutar' o lao? enAuanto o L<o=untilN e1ecuta o lao )ara de)ois ver se a condio 3
Dalsa ou verdadeira.
18. LA'$ %, #,P,"'($ /%$?&!"L0
Os )rogra$adores e$ geral? con>ece$ o L<o=V>ileN ILFaa=enAuantoNJ? )or3$ a
linguage$ do 7a$e .a8er utili/a o L<o=untilN ILFaa=at3 AueNJ 3 Auase o $es$o caso do
L:>ileN? a diDerena 3 Aue ele testa a condio de)ois de e1ecutar a seAu@ncia de
co$andos? e s sa5ra do lao a)s a condio ser verdadeira. Va$os rever o e1e$)lo
anterior usando o L<o=untilNC
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 12
EXEMPLO 1
, . 1
)o {
$ = $ B 1=
dra'(te)t(roo$('idt/.2* roo$(/eig/t.2* $"
} *ntil !$ == 2"""
E1ecute o Aue est' entre c>aves? at3 Aue
L$N seEa igual a 200.
!a c>aves? L$N a cada loo)? ir' rece+er ele
e $ais u$ e escrever' na tela..
*o c>egar e$ 200? sair' do loo)? )arando
de adicionar a L$N.
VeEa u$ outro e1e$)lo do L<o=untilNC
EXEMPLO 2
)o {
D B= 1
dra'(te)t(roo$('idt/.2* roo$(/eig/t.2*
:0o %"":)
} *ntil !D == %"""
Escreva a Drase na tela e adicione 1 ao LEN
at3 Aue LEN seEa igual a "00.
1<. -&!'W,S
Unidade autFno$a no cdigo? Aue e1ecuta u$a tareDa )articular. *l3$ de dei1ar o
cdigo $ais organi/ado? ele )ode ser utili/ado e$ $ais de u$ evento ou o+Eeto? dei1ando o
Eogo $ais leve. #ara isso usare$os ta$+3$ a )asta L9cri)tsN Aue se locali/a na navegao
lateral do 7a$e .a8er. VeEa o esAue$a a seguirC
P 1. #asta co$ Lista de Fun2es Iou 9cri)tsJ?U
P 2. !o$e dada G Duno IAue $ais tarde ser' usada )ara c>a$'=la no o+EetoJU
P 3. Lista co$ as e1ecu2es da Duno? onde arg!$ent+n!$> 3 )adroU
P . Lista contando seus o+Eetos? onde )ode$ ou no usar Dun2es.
9inta1e L9cri)tsNC RvariavelS Q argu$entRnu$S
9inta1e LO+EectsNC RDuncaoSIarg0?arg1?arg2...J
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 13
15/1 0*n+1es se, 2eto&no$ 3 u$a Duno Aue no utili/a u$ retorno de u$a
e1ecuo es)ec5Dica. (etornando a Blti$a lin>a de co$ando? e se necess'rio acu$ulando
$ais valores das anteriores.
EXEMPLO 1
P#st# 3O%4ects5
dra'(te)t(roo$('idt/.2* roo$(/eig/t.2*
teste!26")
P#st# 3Sc&i-ts5 no,e 3teste5
i = #&7*,ent6
i B= &"
9er' desen>ado na tela o valor e1ecutado
na Duno LtesteN? onde arg!$ent" 3 L20N.
!o scri)t? o arg!$ent" Doi atri+u5do )ara a
variavel LiN? onde e$ seguida Doi adicionado
30 ao valor original? retornando "0 no
o+Eeto.
EXEMPLO 2
P#st# 3O%4ects5
dra'(te)t(roo$('idt/.2* roo$(/eig/t.2*
o*t&oteste!3845")
P#st# 3Sc&i-ts5 no,e 3o*t&oteste5
$ = #&7*,ent6
n = #&7*,ent1
i = ,B&
? = $Bn
9er' desen>ado na tela o valor e1ecutado
)or LoutrotesteN? onde arg!$ent" 3 L3N e
arg!$ent1 3 L"N.
!o scri)t? o arg!$ent" Doi atri+u5do )ara L$N
e arg!$ent1 )ara LnN.
Logo e$ seguida Doi calculado e$ LiN a
e1)resso L%K3N e no Di$ Doi so$ado L$N
co$ LnN e atri+u5do )ara L8N.
.as co$o di/ na e1)licao aci$a? ele
so$ente retorna a Blti$a lin>a? ento a lin>a
i = ,B& no te$ valor signiDicativo )ara o
o+Eeto.
15/2 0*n+1es co, 2eto&no$ 3 u$a Duno Aue utili/a u$ retorno )ara colocar no
o+Eeto a e1)resso ou vari'vel. VeEa os e1e$)los a seguirC
EXEMPLO 1
P#st# 3O%4ects5
dra'(te)t(roo$('idt/.2* roo$(/eig/t.2*
&eto!15")
P#st# 3Sc&i-ts5 no,e 3&eto5
p = #&7*,ent6
p B= 1"
ret!rn pB2&
9er' desen>ado na tela o valor e1ecutado
na Duno LretoN? onde arg!$ent" 3 L1"N.
!o scri)t? o arg!$ent" Doi atri+u5do )ara a
variavel L)N? onde e$ seguida Doi adicionado
10 ao valor original? retornando L)N $ais %"
)ara o o+Eeto.
EXEMPLO 2
P#st# 3O%4ects5
dra'(te)t(roo$('idt/.2* roo$(/eig/t.2*
&eto2!4855")
9er' desen>ado na tela o valor e1ecutado
)or Lreto2N? onde arg!$ent" 3 LN e
arg!$ent1 3 L""N.
!o scri)t? o arg!$ent" Doi atri+u5do )ara LoN
e arg!$ent1 )ara L>N.
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 14
P#st# 3Sc&i-ts5 no,e 3&eto5
o = #&7*,ent6
/ = #&7*,ent1
i = ,B&
ret!rn $Bn
Logo e$ seguida Doi calculado e$ LiN a
e1)resso L%K3N. .as no Dinal ele )ede
retorno so$ente da so$a das vari'veis L$N
co$ LnN? ignorando a var'vel LiN e sua
e1)resso.
U$a Duno te$ $uitas utilidades na criao de u$ Eogo ou )rogra$a. !o e1e$)lo
a+ai1o? Doi Deita u$a estrutura co$ DunoC
EXEMPLO 3
!o$e da FunoC L4ogoI1N
iD I8e-+oard`8e- QQ argu$ent0J\
1 =Q
] else \
iD I8e-+oard`8e- QQ argu$ent1J\
1 KQ
]
]
O+Eeto 01C LalHaFetoN evento L9te)N O+Eeto 02C Ldirecio1aisN evento L9te)N
4ogoI13ordIT*TJ? ordIT<TJ5 4ogoI13v8`leDt? v8`rig>t5
VeEa Aue? c>a$a$os o cdigo de teclado e$ 2 o+Eetos diDerentes e co$ teclas
diDerentes? s Aue os dois utili/a$ a $es$a Duno? Aue 3 Da/er os o+Eetos andare$ )ara
esAuerda e )ara a direita. 9endo assi$ no )recisa$os re)etir o cdigo duas ve/es.
,1HimO e9istem 2rias outras Hu1Les prprias do Game MakerO da pr9ima 2ez Halarei
mais soFre o assu1to. $Frigado pelo doM1load e pela leitura.
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 15
,ditado por Giosepe Luiz
giosepeNluiz._`otmail.com
+erso do Game Maker &sada@ U.I
A\ de maio de AI1I
*uritiFa ? Para1 ? Brasil
Con>ea $ais so+re o 7a$e .a8er? +ai1e s)rites? engines? outros e
ten>a a aEuda Aue )recisar nos sites a seguirC
`ttp@EEMMM.gamemakerFrasil.com
`ttp@EEMMM.spriters?resource.com
9ai+a tudo so+re InDor$'tica e ;ecnologia? o+tendo dicas e doVnloads
das $el>ores Dontes e sites da Ve+Y
`ttp@EEMMM.dicasemgeral.com
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 16