[Trancado] Um problema com cálculo misto.

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

Resolvido [Trancado] Um problema com cálculo misto.

Mensagem por GameMakerTutoriais em Qui 04 Jul 2013, 09:36

O problema é outra coisa, há várias maneiras pra resolver, mas preciso mesmo de um CÁLCULO. Sem chance de ifs: não posso usar um operador de comparação. Usando 0 ou 1 (não importa como), tenho que inverter o valor das duas colunas fazendo um cálculo com essas duas variáveis (A e B).

Os valores não são esses, mas só pra exemplificar:

A | B
------
1 | 2
2 | 3
3 | 1

Veja bem, não deve haver dois cálculos, um pra A e outro pra B. É um cálculo só, pra ambas. Quando a situação for 0 (zero), a coluna continua do jeito que está, mas quando a situação for (1), os valores se invertem. Não estou procurando o 0 e 1 porque já tenho a situação de 0 e 1. Só quero que eles entrem no cáculo e simplifiquem a coisa.

Como exemplo, seria mais ou menos isso:

coluna := A + B – coluna;

Fácil, né. Tenho impressão de que estou complicando à toa, mas deve haver um jeito mais fácil ainda usando só 0/1 e eu não estou conseguindo resolver. Alguma ideia?

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Um problema com cálculo misto.

Mensagem por saim em Qui 04 Jul 2013, 10:09

Não entendi muito bem o que você quer. Um script que inverta, linha por linha, o valor das duas colunas? Isso você já fez.
Código:
var soma, saidaA, saidaB;
soma := argument0 + argument1;
saidaA := soma - argument0; // A
saidaB := soma - argument1; // B
Rode esse script em cada linha, pronto. Mas não pode ser isso, porque isso você já fez.

Que tipo de "situação" pode ser 0 ou 1? Uma condição pra rodar o script ou não? Estou interpretando isso. Uma condição que retorne 0 ou 1 e que isso entre no script como argumento. Se a condição for falsa, não faz nada, se for verdadeira, roda-se o script em todas as linhas.
Até parece possível, sim, mas acho que um if vai acelerar o processamento.
Código:
var soma, saidaA, saidaB, condicao, sinal;
condicao := argument0;
sinal := sign(condicao - 0.5);
soma := (argument1 + argument2) * condicao;
saidaA := soma - argument0 * sinal; // A
saidaB := soma - argument1 * sinal; // B

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

Resolvido Re: [Trancado] Um problema com cálculo misto.

Mensagem por GameMakerTutoriais em Qui 04 Jul 2013, 10:26


Cara, eu compliquei à toa. A sua solução era exatamente o que eu precisava! Obrigado!

----- Edit -----

Consegui aqui, mas valeu pela ajuda. Na verdade, eu tinha que repassar um argumento pro script que seria um número de 0 a 11, e o valor de 0 e 1 que eu comentei era modulado nisso, aí eu me virei mais ou menos:

Código:
coluna = abs((A + B) * ((argument0 div 3) mod 2) - coluna);

Valeu!

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Um problema com cálculo misto.

Mensagem por Conteúdo patrocinado Hoje à(s) 00:26


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