Igualar variaveis

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

Igualar variaveis

Mensagem por uilson em Qua 27 Ago 2014, 22:55

Galera, a duvida é a seguinte... eu tenho as variaveis var1 e var2 e preciso que var 2 seja igual a var1 e vice versa...
O problema é que se eu disser que var2=var1, caso eu modifique o valor de var1, o var2 muda automaticamente, mas se eu fizer o inverso, isso não acontece, preciso que eles sejam iguais simultaneamente... existe algum sinal ou expressão para isso?

uilson

Ranking : Nota A
Número de Mensagens : 41
Idade : 30
Data de inscrição : 22/03/2011
Notas recebidas : A
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por Isaque Onix em Qua 27 Ago 2014, 23:14

var1=var2
var2=var1

'-'

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por Dotted Chaos em Qua 27 Ago 2014, 23:17

Mas no seu caso em específico, qual o motivo de não poder usar por exemplo uma var global e compartilhá-la entre os objetos?

Dotted Chaos

Número de Mensagens : 241
Data de inscrição : 27/11/2012
Reputação : 42
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por Gonçalves em Qua 27 Ago 2014, 23:18

Se uma iguala a outra, qual seria a necessidade de ter duas variáveis? De qualquer forma você pode criar um script do tipo:

Código:
///Set(Value)
var1=argument0
var2=argument0

Daí você usaria ele assim:

Código:
Set(5)

O que já mudaria o valor das duas para 5 em apenas uma função.

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por VanMall em Qua 27 Ago 2014, 23:57

Olá uilson!

O seu problema é questão de raciocínio lógico, e é muito fácil de se resolver.
Embora seja uma resposta breve e bem simples, vou dar um exemplo para você não cometer mais o erro.

Suponhamos que VAR1 = Vermelho e VAR2 = Laranja
Seu eu pego a VAR1 e a igualo a VAR2, ou seja, se digo que Vermelho = Laranja, então meu retorno lógico seria Vermelho = Vermelho, e ai é que está o problema, quando eu for dizer que VAR2 = VAR1 eu estarei dizendo VERMELHO = VERMELHO. Acho que isso você já percebeu, e talvez tenha surgido uma solução em sua cabeça, vamos a ela.

Para solucionar o problema eu uso uma terceira variável que servirá como variável auxiliar, isto é, ajudará a transferir os valores entre ambas as variáveis.
Em código a resposta ao problema seria:

VAR1 = VAR3
VAR2 = VAR1
VAR3 = VAR2

Entende?
-----------------
Isaque Onix escreveu:var1=var2
var2=var1

'-'

Isaque, sua resposta parece muito óbvia de inicio, mas repare que sua resposta é exatamente o mesmo problema do uilson, provavelmente você não tenha percebido ou ignorou '-'

VanMall

Número de Mensagens : 138
Data de inscrição : 06/03/2014
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por Isaque Onix em Qui 28 Ago 2014, 00:10

uilson escreveu:preciso que eles sejam iguais simultaneamente...

foi oque eu intendi... mais com tantas respostas, preferi nao voltar a responder...

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por uilson em Qui 28 Ago 2014, 09:56

Galera, vlw pela ajuda, mas alguns dos casos citados, eu já tinha tentado... mas não funciona exatamente como eu preciso, essas 2 variaveis são matrizes que estão armazenando informação de quantidade de flecha coletadas. var 1 é a quantidade de flecha no inventario, só que a partir do momento que vc equipa a flecha, o var2 que é quantidade de flecha equipada, passa a compartilhar o valor de var1, caso eu atire ou gaste uma flecha, eu preciso que subtraia a quantidade de flecha de var2 e automaticamente altere o valor de var1 tb, isso não acontece pq na expressão diz que var2=var1, achei que pudesse colocar essa igualdade simultanea de alguma maneira. Eu não tenho como subtrair diretamente o valor de var1, pq existem varios espaços no inventario onde a flecha pode ser alocada, portanto, esse var1 poderia ser var3, ou var4, e por ai vai... por isso a subtração tem que ser feita diretamente da var2(espaço da flecha equipada), e influenciar na var1, mesmo que na expressão diga, var2=var1.

uilson

Ranking : Nota A
Número de Mensagens : 41
Idade : 30
Data de inscrição : 22/03/2011
Notas recebidas : A
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por Isaque Onix em Qui 28 Ago 2014, 11:24

cara, ta bem dificil de intender, mais se voce so quer subtrair a quantidade de flechas, e so colocar
Código:
var1-=1 var2=var1
...

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por Gonçalves em Qui 28 Ago 2014, 12:49

O que você pode também é dividir as variáveis assim:

Código:
Flechas=5
FlechasInventario=8

Daí quando usar a flecha você só subtrai as 'Flechas' e no inventário você mostra a soma entre as flechas preparadas e as no inventário.

Código:
draw_text(0,0,Flechas+FlechasInventario)

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por uilson em Qui 28 Ago 2014, 12:58

Galera, mais uma vez muito obrigado pela ajuda, não consegui usar precisamente as sugestões de vcs, mas me ajudou a clarear a mente sobre algumas opções, e consegui resolver o problema, não do jeito que eu queria, mas funcionou direitinho, eu dei um jeito da flecha verificar a var1 e subtrair direto da var1, dessa forma o var2 é subtraido automaticamente, já que var2=var1.
No caso var1 corresponde ao slot 1 do inventario, daí a flecha verifica se var1 está equipado em var2 que corresponde ao slot da flecha equipada e subtrai var1. Caso a flecha esteja em outro slot do inventario, por exemplo slot 7, a flecha verifica se var7 está equipada em var 2, daí então subtrai var7 e assim por diante.

uilson

Ranking : Nota A
Número de Mensagens : 41
Idade : 30
Data de inscrição : 22/03/2011
Notas recebidas : A
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por Mateus O de Andrade em Qui 28 Ago 2014, 13:01

Boa tarde uilson,

Realmente está BEM difícil de entender o que você quer mas acho que entendi.

Pelo que pude entender você na verdade está trabalhando com 3 variáveis:

-var1 que é a quantidade de flechas no inventário
-var2 que é a quantidade de flechas equipadas
-var3 que é a quantidade REAL de flechas que você tem (e que não existe no seu código)

Dá para montar o seguinte:

var1(Qnt no inventário)=var3(qnt real de flechas)
var2(qnt equipada)=var3(qnt real de flechas
E quando for subtrair é só fazer var3-=1 (ou o valor que quiser)

O exemplo do Isaque Onix só não tem a var3 pois ele não deve ter visto que se você mudar de slot no inventário a var 1 seria outra (ex: var5, var6, etc...) mas é bem nesse caminho.
Espero que se eu não pude ajudar, ao menos mostrei o caminho.

ulison escreveu:preciso que eles sejam iguais simultaneamente...
Isso que você disse é igual a
var1=var2
var2=var1
Um loop (mais uma vez o que o Isaque Onix disse e está certo em dizer).
Você quis dizer que ambos tenham o mesmo valor ao mesmo tempo mas não iguais entre sí.
Qualquer coisa post mais alguma coisa!

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por Gonçalves em Qui 28 Ago 2014, 13:01

Você tem que aprender a usar arrays, vai te facilitar muito neste (e outros) caso.

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por VanMall em Qui 28 Ago 2014, 13:03

Uilson, acho que você deveria ter explicado sua pergunta direito no inicio do tópico, acho que cada um teve uma interpretação diferente de sua pergunta. Sinceramente, dei aquela explicação toda e nem ao menos chega perto do que você queria...

VanMall

Número de Mensagens : 138
Data de inscrição : 06/03/2014
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por Zero. em Qui 28 Ago 2014, 13:18

Achei desnecessário oque você está querendo fazer. Usar uma array pra tirar as flechas de um slot específico ?
Porque você não pega a quantidade total de flechas no inventário e salva em uma variavel e ao atirar retira 1 flecha de qualqer um dos slots do inventário ?
tipo :
Código:

flechas = 0 // variavel que pode ser global para quantidade total de flechas
for(i=1;i<=8;i++) // supondo que há 8 slots
{
    if slot[i] = flecha //se no slot i há uma flecha
    {
        flechas += quantidade[i] // quantidade de flechas no slot i
    }
}

e para retirar uma flecha, vc da um for e checa se no slot[i] há uma flecha e ai vc da break; e retira uma flecha desse slot.

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por uilson em Qui 28 Ago 2014, 13:20

Mateus O de Andrade escreveu:Boa tarde uilson,

Realmente está BEM difícil de entender o que você quer mas acho que entendi.

Pelo que pude entender você na verdade está trabalhando com 3 variáveis:

-var1 que é a quantidade de flechas no inventário
-var2 que é a quantidade de flechas equipadas
-var3 que é a quantidade REAL de flechas que você tem (e que não existe no seu código)

Dá para montar o seguinte:

var1(Qnt no inventário)=var3(qnt real de flechas)
var2(qnt equipada)=var3(qnt real de flechas
E quando for subtrair é só fazer var3-=1 (ou o valor que quiser)

O exemplo do Isaque Onix só não tem a var3 pois ele não deve ter visto que se você mudar de slot no inventário a var 1 seria outra (ex: var5, var6, etc...) mas é bem nesse caminho.
Espero que se eu não pude ajudar, ao menos mostrei o caminho.

ulison escreveu:preciso que eles sejam iguais simultaneamente...
Isso que você disse é igual a
var1=var2
var2=var1
Um loop (mais uma vez o que o Isaque Onix disse e está certo em dizer).
Você quis dizer que ambos tenham o mesmo valor ao mesmo tempo mas não iguais entre sí.
Qualquer coisa post mais alguma coisa!

Vlw,vou experimentar e tentar adaptar aqui na engine que fiz.

uilson

Ranking : Nota A
Número de Mensagens : 41
Idade : 30
Data de inscrição : 22/03/2011
Notas recebidas : A
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por uilson em Qui 28 Ago 2014, 13:21

PedroMatoso escreveu:Uilson, acho que você deveria ter explicado sua pergunta direito no inicio do tópico, acho que cada um teve uma interpretação diferente de sua pergunta. Sinceramente, dei aquela explicação toda e nem ao menos chega perto do que você queria...


Acho que realmente não fui muito claro no primeiro momento.

uilson

Ranking : Nota A
Número de Mensagens : 41
Idade : 30
Data de inscrição : 22/03/2011
Notas recebidas : A
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por uilson em Qui 28 Ago 2014, 13:23

Gonçalves escreveu:Você tem que aprender a usar arrays, vai te facilitar muito neste (e outros) caso.

Na verdade eu estou usando arrays, eu fiz uma matriz para armazenar as informações de itens... essa var1 no caso corresponde a slot[0,0]...

uilson

Ranking : Nota A
Número de Mensagens : 41
Idade : 30
Data de inscrição : 22/03/2011
Notas recebidas : A
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por uilson em Qui 28 Ago 2014, 13:28

FlyAway escreveu:Achei desnecessário oque você está querendo fazer. Usar uma array pra tirar as flechas de um slot específico ?
Porque você não pega a quantidade total de flechas no inventário e salva em uma variavel e ao atirar retira 1 flecha de qualqer um dos slots do inventário ?
tipo :
Código:

flechas = 0 // variavel que pode ser global para quantidade total de flechas
for(i=1;i<=8;i++) // supondo que há 8 slots
{
    if slot[i] = flecha //se no slot i há uma flecha
    {
        flechas += quantidade[i] // quantidade de flechas no slot i
    }
}

e para retirar uma flecha, vc da um for e checa se no slot[i] há uma flecha e ai vc da break; e retira uma flecha desse slot.

Obrigado pela sugestão, a verdade é que não sou programador de ofício, então certas coisas que parecem óbvias, passam batidas por mim, meus recursos são limitados, mais uma vez obrigado, vou experimentar as sugestões.


USUÁRIO ADVERTIDO POR POST QUADRUPLO! - dharrison

Que isso jovem? anh!

uilson

Ranking : Nota A
Número de Mensagens : 41
Idade : 30
Data de inscrição : 22/03/2011
Notas recebidas : A
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Igualar variaveis

Mensagem por Conteúdo patrocinado Hoje à(s) 05:56


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