Retornar o nome da variável

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

Retornar o nome da variável

Mensagem por moisesBR em Ter 20 Nov 2012, 09:10

Estou quebrando a cabeça tentando descobrir como fazer para mostrar o ítem que esto manipulando e tambem o valor dele. Eu sei que tem solução, mas não estou conseguindo descobrir e isso tá me deixando frustrado! Apesar de poder se resolvido usando inúmeros ifs, seria muito trabalhoso e tenho certeza que uma ou duas linhas de codes resolve isso! a questão é: quais codes usar ou como elabora-los?

Estou criando este post pois o outro ja está meio saturado(*) por minha própria questão e por que consegui reformular a pergunta:

Num draw_text, podemos usar: draw_text(x,y,string(variavel)) e o resultado é o valor que ela contem!
Mas que code posso usar para retornar o nome da própria variável?

tipo;

variavel1=25
draw_text(x,y,string(variavel1)) resultado: 25
???????????????????????????? resultado: variavel1

(*) Tópicos anteriores: transicao de variaveis entre numero e string,
controlar variaveis atraves de outras variaveis ou transportar


Última edição por moisesBR em Ter 20 Nov 2012, 10:53, editado 1 vez(es) (Razão : inserir lnk pros posts antigos para referência)

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por Luca$ em Ter 20 Nov 2012, 12:30

Amigo,estou sem o GM aqui,mas se não me engano,existe uma função chamada variable_name que retorna o nome da variável.

Mas não estou entendendo uma coisa,pra você saber qual variável pegar o valor,não precisa já saber o nome?Como você vai criar uma variável sem saber o nome?

Luca$

Ranking : Nota D
Número de Mensagens : 582
Data de inscrição : 10/10/2010
Notas recebidas : D-C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por theguitarmester em Ter 20 Nov 2012, 12:36

Não entendi muito bem para que aparecer o nome pela variavel, se você já sabe o nome dela!

sei que você provalvelmente sabe, mas para colocar texto é só colocar assim:
draw_text(x,y,'variavel1') Resultado: Variavel1

Explique mais para ver se consigo entender, vou dar uma olhada nos seus tópicos antigos.


Luca$, pelo menos no gm8 Não existe esta função.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por Luca$ em Ter 20 Nov 2012, 12:43

É,realmente,me enganei,era outra função que retornava o nome da key,me desculpe.

Mas,moises,não consigo entender,pra que saber o nome da váriavel?

Luca$

Ranking : Nota D
Número de Mensagens : 582
Data de inscrição : 10/10/2010
Notas recebidas : D-C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por theguitarmester em Ter 20 Nov 2012, 13:01

Luca$, tambem não havia Entendido até olhar o outro Tópico dele: http://gmbr.forumeiros.com/t24736-transicao-de-variaveis-entre-numero-e-string

Moisés, Respondi lá nesse outro tópico.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por saim em Ter 20 Nov 2012, 13:36

Não acho que seja possível. Mesmo porque, se houvesse uma função, o que você colocaria como argumento? A menos, claro, que essa variável seja o índice de um objeto ou background ou alguma coisa prevista nas funções *_get_name - aí você pode realmente armazenar um valor e ter um nome correspondente àquele valor.

Olha, eu não li os outros tópicos, não sei se alguém te sugeriu isso, mas tem um jeito que é levemente trabalhoso, mas perfeitamente viável. Grave tanto as variáveis quanto seus respectivos nomes em arrays. Tipo assim:
Código:
var i; i = 0;
variavel[i] = i; nome[i] = "variavel[" + string(i) + "]"; i += 1;
variavel[i] = i; nome[i] = "variavel[" + string(i) + "]"; i += 1;
(continua indefinidamente)
variavel[i] = i; nome[i] = "variavel[" + string(i) + "]"; i += 1;
nVariaveis = i;
Claro que você pode definir o valor que quiser e o nome que quiser pra cada variável, isso aí é só um exemplo.
Aí, se você quiser o valor da variável1, por exemplo, você usa
Código:
draw_text(x, y, string(variavel[1]));
e, se quiser o nome dela, escreve
Código:
draw_text(x, y, nome[1]);

Pra diminuir o trabalho que essa inicialização dá, você pode usar o excell, que tem a opção de concatenar textos, pra escrever o código.

[edit:] Dei uma lida rápida lá, acho que sei o que você quer. Esse método funciona, sim, desde que você entenda como usá-lo. Se por exemplo você escolher a fruta "3" e armazenar essa escolha na variável "frutaEscolhida", pode apresentar o texto como:
Código:
draw_text(x, y, "total de " + nome[frutaEscolhida] + ": " + variavel[frutaEscolhida])
Exemplo de resultado: "Total de mamão: 8"
Mas precisa tomar cuidado com os plurais. Escolhi "mamão" justamente pra mostrar que não é só acrescentar um "s" no final do nome que os casos em que "variavel[frutaEscolhida] > 1" que vai estar resolvido.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por moisesBR em Qua 21 Nov 2012, 10:11

Valeu saim mas infelizmente não consegui assimilar suas explicações... Mas de certo modo consegui fazer seguindo o tuto do Cabeção, apesar de resolver, não foi como eu esperava, pois desejo lidar com texto assim igual muitos aqui do forum que vê seus projetos empacarem por esbarrar nessa situação
Não acredito em impossibilidades! O impossível é igual a escuridão se voce acende a chama da esperança que nada mais é que a fé, ilumina o caminho das possibilidades.
Se alguem tiver uma possível solução, se quiser, é claro, faça uma mini engine pra mimnós, baseado no meu objetivo, que é: usar nomes de variaveis, string ou texto para retornar os dados desejados que podem estar num array conforme eu tento fazer aqui:
http://gmbr.forumeiros.com/t24736-transicao-de-variaveis-entre-numero-e-string#183610

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por Rodrigo Santiago em Sex 23 Nov 2012, 13:05

ninguem vai conseguir lhe ajudar porque e um erro logico, tente fazer isso:
recomece seu jogo, os codigos sempre ficam melhores na segunda vez

nao é brincadeira. se foi cometido um erro logico voce deve pensar de uma forma completamente diferente, e refazer se jogo deixa ele mais efttivo porque voce ja tem uma base do que fazer.
eu sei q nao era essa a pergunta mais isso pode lhe ajudar:
dica: padronize as variaveis em todos os objetos semelhantes, por exemplo:

todos os objetos que voce pode selecionar tem a variavel "type_obj" , e todo objeto que tem type_obj="iten" possue a variavel "quantidade"
todo objeto que tem type_obj="enemy" possue a variavel " healt"
voce pode criar switchs com type_obj e criar ifs com quantidade e healt sem erro.

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por moisesBR em Sex 23 Nov 2012, 15:32

Ops! esqueci de editar aqui! Ops de novo: tava sem energia aqui por três dias e não pude entrar na net decentemente.

Luca$ escreveu:Mas,moises,não consigo entender,pra que saber o nome da váriavel?
Luca$, leia o outro tópico que vai entender, mas já adianto um resumo: tenho problemas em associar números à coisas imagine uma imensa lista de ítens e sem ver sua posição como voce saberia qual, ou qual tem qual valor?

Rodrigo:
Meu type_obj é o selecionado! Recomeçar... Já pensei nisso seriamente... tanto é que estou apagando tudo quanto é codes do projeto e fazendo uma varredura geral, e de certo modo refazendo tudo!

Tipo, quando for setar um valor à um item de um arrary ou outra variável, diz a lenda que é assim: Cria-se o array....
Código:
//        Nome                        valor
item[0,0]="uva"          item[0,1]= 10
item[1,0]="laranja"      item[1,1]=12
item[2,0]="melancia"    item[2,1]= 3
Olhando assim parece fácil, mas quando for modificar esse valor o bicho pega, ainda mais se tiver uma lista imensa! A não ser que... Voce tenha duas janelas abertas para ir conferindo toda vez... E no caso que precise adicionar um valor a um ítem normalmente através de outro objeto, faria algo assim (no caso; "laranja"):
Código:
item[1,1] +=1
No meu caso, como disse, criei várias vars correspondentes(global.laranja) a cada ítem, e relacionei o valor à sua posição! e fui setando a principal(global.type_obj) com a nova var, dessa forma:
Código:
global.type_obj = global.laranja
Podem reparar queé muito mais fácil lidar com texto do que números, mesmo que este texto seja vars!

Aí vocé pergunta: como vai mostrar na tela o nome ou valor do item como desejava?
r- ao mostrar a posição na array, ela vai retornar o que estiver lá! nesse caso se for melancia, na array está: item[2,0]="melancia" item[2,1]= 3

Simplismente coloco num evento draw:
Código:
draw_text(y,y,"Selecionado: "+string(itens[global.selecionado,0])+" Qt. valor        : "+string(itens[global.selecionado,1]))
Resultado desse: "selecionado: melancia Qt. valor :3"

Quanto a este problema, foi aparentemente resolvido, como voce pode conferir no outro post, que apesar do nome ser diferente, o objetivo é o mesmo!

Veja o resultado aqui e como resolvi:
http://gmbr.forumeiros.com/t24736-transicao-de-variaveis-entre-numero-e-string#183610

Coloco como resolvido mas, enquanto o tópico estiver em aberto e dentro do prazo, ficarei feliz se novas ideias surgirem. Portanto fiquem a vontade.
A propósito, (pra quem não quiser ir no outro post) A solução(tosca) que encontrei para lidar com nomes das váriáveis:
Criar uma var para cada item com o nome desse item e dar um valor a ela! Valor esse que, resulta na sua posição numa array, que aprendi a usar recentemente!
Ainda usando a variável antiga, ao invés de seta-la com número, como é usado costumeiramente, seto-a no evento desejado que no caso é clique no objeto associado! Mais detalhe e até uma... ouso dize; mini "engine", no tópico do link acima.
No mas, obrigado a todos! Resouvídio!

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por Jiraya em Sex 23 Nov 2012, 15:47


Olhando assim parece fácil, mas quando for modificar esse valor o bicho pega, ainda mais se tiver uma lista imensa! A não ser que... Voce tenha duas janelas abertas para ir conferindo toda vez... E no caso que precise adicionar um valor a um ítem normalmente através de outro objeto, faria algo assim (no caso; "laranja"):

crie um script para alterar os valores mais facilmente

use isso
Código:

//setVal(variavel,valor)
var i;
for(i=0;i<NUMERO_DE_ITENS;i+=1;)
if(item[i,0]==argument0){item[i,1]=argument1;return(1);}
return(0);

para usar
setVal('Laranja',5);

se o valor foi alterado o script retornara ao valor 1, caso contrario a 0, isso significa que voce digitou o nome da variavel errado, ou ela nao existe.

o lado bom:facil
lado ruim:lento


Jiraya

Ranking : Nota A
Número de Mensagens : 1134
Data de inscrição : 20/03/2010
Notas recebidas : A+A
Reputação : 108
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por moisesBR em Sex 23 Nov 2012, 16:04

Gostei entendi perfeitamente que setVal('Laranja',5); será no evento clique do objeto desejado... Mas como e onde eu colocaria o script?
Código:
//setVal(variavel,valor)
var i;
for(i=0;i<NUMERO_DE_ITENS;i+=1;)
if(item[i,0]==argument0){item[i,1]=argument1;return(1);}
return(0);
Steep?

Exemplo please!

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por PedroX em Sex 23 Nov 2012, 17:30

Você cria um script e coloca esse código lá.
Depois você coloca o nome do script, que é setVal() no evento que vai mudar o valor.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por moisesBR em Sex 23 Nov 2012, 18:25

Valeu! Puxa vida! Que complicado estava uma coisa simples!

Isso ocorreu por que eu não trabalhava com arrays! Aff... Mas beleza! é pra isso que estamos aqui aprender, ensinar, ajudar e se beneficiar!

Sei que apesar de já saber muita coisa, ninguém sabe de tudo e muito raramente poderei ajudar voces com codes complicados (falo de Jiraya, saim, Cabeção, Pedro X e outro m,ais e etecéteras) mas de certo modo estou ajudando colocando desafios meios esquisitos que surgem, servindo para todos users, e quebrando barreiras e adaptando ou redescobrindo criando novos meios.
Se eu puder ajudar em algo tenham certeza que tentarei.

A essa altura(rastros) creio que devo criar o tópico do meu projeto que sairá talvez no ano 3000! Ou nem saia! (kkkkkk) que voces acham?
Já deixei bem claro o que penso sobre inutis post, se quiserem opinar, pode ser por MP ou onde bem entenderem.

Mais uma vez obrigado! Tópico resolvido!

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Retornar o nome da variável

Mensagem por Conteúdo patrocinado Hoje à(s) 06:42


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