Conectar-se
Quem está conectado
28 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 28 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 06/10/2013
Número de Mensagens : 76
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Duvidas

em Dom 08 Jun 2014, 16:21
Olá a todos, tenho umas duvidas de código, agradeço desde já a quem me poder ajudar:

1- Sempre que vejo isto mesmo num tutorial não entendo, gostaria que alguém me explicasse isto linha por linha:

ordem = 0;
for(i=0;i<5;i+=1) {
if letras[i] == true {
draw_text(0, ordem * 16, chr(55+i));
ordem += 1;
}
}

Este código refere-se ao meu post:
http://gmbr.forumeiros.com/t28238-preciso-de-ajuda-para-sistema


2- Como posso fazer algo se repetir até atingir o valor desejado? exemplo:

global.numero = irandomrange (0,7) ((((quaquer coisa assim,não interessa))))

if global.numero = global.numero 2

{
aqui eu queria que ele volta-se á primeira linha (por ser igual) e volta-se a gerar o numero
}

3- Tem alguma maneira de organizar a estrutura do "if dentro de if"? exemplo:

if qualquer coisa {
if outra qualquer coisa também {

resultado
}}

Queria saber se tem maneira de fazer isto mais fácil porque eu tiver que meter um monte de condiçoes então fica confuso.

Obrigado pela atenção.
avatar
Data de inscrição : 31/10/2013
Número de Mensagens : 206
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 10

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuário

Re: Duvidas

em Dom 08 Jun 2014, 17:10
O 1 e o 2 infelizmente não sei te responder mas no caso do 3 pode sim fazer, por exemplo:

if keyboard_check(vk_right){
if sprite_index = spr_personagem_esq{
sprite_index = spr_personagem_dir
}
}



Espero ter ajudado:)
avatar
Data de inscrição : 06/10/2013
Número de Mensagens : 76
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: Duvidas

em Dom 08 Jun 2014, 17:29
Obrigado pela resposta mas isso sei eu, talvez eu me tenha explicado mal:

Quero fazer isso mas de outro maneira porque se eu tiver muitos "if" vira confusão.

qualquer coisa do tipo:

if keyboard_check(vk_right) and sprite_index = spr_personagem_esq and sprite_index = spr_personagem_dir
{
qualquer coisa aqui
}
avatar
Data de inscrição : 26/03/2011
Número de Mensagens : 101
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Duvidas

em Seg 16 Jun 2014, 18:59
Reputação da mensagem: 100% (2 votos)
Vou tentar explicar :  

---------------------------------------------------------------------
1.:


ordem = 0;
for(i=0;i<5;i+=1) {
if letras[i] == true {
draw_text(0, ordem * 16, chr(55+i));
ordem += 1;
}
}

"ordem = 0;" declaração(criação) da variável ordem.

---------------------------------------------------------------------

"for(i=0;i<5,i+=1) { laço }"
o laço "for" possui três argumentos divididos por ";"(ponto e vírgula):

for(argumento1;argumento2;argumento3)

argumento1:Este argumento acontece uma vez, dá um valor a uma variável, neste caso "i=0"( i recebe 0 )

argumento2:condição para o laço continuar repetindo, ou seja, o laço({}) vai repetir enqüanto "i<5"(i for menor que 5)

argumento 3: acontece cada vez que o laço se repetir "i += 1" (i adicionará mais 1)

inicialmente "i=0",e enqüanto "i<5" o que está dentro das chaves({aqui}) irá se repetir, e cada vez que repetir "i += 1";(repetirá 6 vezes)
Isso é muito útil em certas situações, depois que se aprende a usar o for muitas coisas ficam mais fáceis.
---------------------------------------------------------------------
"if (letras[i] == true) { laço }"
'if' significa 'se'
'letras[i]' isso é um vetor, é mais ou menos assim:
letras[5] ([0]=true [1]=true [2]=false [3]=true [4]=false [5]=false)
é como se fosse um monte de variáveis numa só. O "i" nesse caso indica qual valor será acessado.
----------------------------------------------------------------------
"draw_text(0, ordem * 16, chr(55+i));"
draw ( x , y , text )
desenha (ou escreve ) um texto na posição (x,y).
----------------------------------------------------------------------
"ordem += 1"
ordem adiciona mais 1.
----------------------------------------------------------------------
---------------------------------------------------------------------
2.:


Use o laço for falado acima:
for ( numero = 2 ; numero <7 ; numero +=1 )
{
laço de comando
}
neste caso o que estiver dentro do laço se repetirá cinco veses.
---------------------------------------------------------------------
3.:

Sim!
compare:
&& ---------- and (e)
|| ---------- or (ou)
! ---------- not (não)


para testar duas condições:

if (qualquer_coisa == 0)&&(outra_coisa ==0) { laço }
ou
if (qualquer_coisa == 0)and(outra_coisa ==0) { laço }
se qualquer_coisa e outra_coisa forem 0.

if (qualquer_coisa == 0)||(outra_coisa ==0) { laço }
ou
if (qualquer_coisa == 0)or(outra_coisa ==0) { laço }

se qualquer_coisa ou outra_coisa forem 0.
---------------------------------------------------------------------

Uma dica que pode ser útil: colocar comentários próximos ao fim do laço.
veja a situação por exemplo:

if (alguma_coisa == 0)
{
if ((outra_coisa)&&(mais_outra_coisa)>0)
{
 if ((maisOutraCoisaAinda)||(SebeDeusOque)<80)
 {
  for (troco = 0; troco < coisa ; troco += 1)
  {
   SabeDeusOque += 3;
  }//fim de FOR
 
  if ( tu ) != ( ele )
  {
   tu +=1;
  }// fim de tu és diferente dele
 }//fim de +outracoisa e SabeDeus
}//fim de outra e mais outra coisa!

if (Alguma_coisinha == 0)
{
 algo +=1;
}//fim de alguma coisinha!
}//fim de alguma_coisa!

usando comentários facilitam quando se possui um carnaval de IFs.


Desculpe qualquer coisa, quis deixar o mais bem explicado possível.
Se tiver mais alguma dúvida escreva.
avatar
Data de inscrição : 06/10/2013
Número de Mensagens : 76
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: Duvidas

em Qua 18 Jun 2014, 21:32
caraças, a sua explicação é melhor que um tutorial. Estou exclarecido mais uma vez obrigado.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum