Duvidas

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Duvidas

Mensagem por jose rocha 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.

jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Duvidas

Mensagem por manobrother 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:)

manobrother

Número de Mensagens : 206
Idade : 16
Data de inscrição : 31/10/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Duvidas

Mensagem por jose rocha 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
}

jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Duvidas

Mensagem por Camin em Seg 16 Jun 2014, 18:59

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.

Camin

Número de Mensagens : 101
Idade : 23
Data de inscrição : 26/03/2011
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Duvidas

Mensagem por jose rocha em Qua 18 Jun 2014, 21:32

caraças, a sua explicação é melhor que um tutorial. Estou exclarecido mais uma vez obrigado.

jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Duvidas

Mensagem por Conteúdo patrocinado Hoje à(s) 15:40


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum