| Logado como Visitante | Grupo "Visitantes" Está vendo: Forum | Sábado, 21/12/2024, 12:58 PM | RSS |
Anime Mugen


[ Novas Mensagens · Membros · Regras · Buscar · RSS ]
  • Página 1 de 1
  • 1
Moderador do fórum: lMDl  
Série de Fibonacci e Suas Randomizações
TidusData: Domingo, 16/01/2011, 11:26 AM | Mensagem # 1
Criador
Grupo: Administradores
Mensagens: 557
Awards: 0
Reputação: 25
Status: Offline
E ai, blz?

Lá pra meados de 2006 (caralho, como faz tempo) eu estava tentando implantar a Série de Fibonacci no Mugen, e com a ajuda do SmS o código funcionou que foi uma blz... mas nunca postei (na verdade, eu achei que tinha postado... mas descobri hoje que nunca postei :P) a real utilização para esse código.

Para quem não conhece o que é a Série de Fibonacci, aqui vai uma breve explicação copiada da Wikipedia

Quote
Consiste em uma sequência de crescimento natural,numérica por exemplo: 1, 1, 2, 3 ... A sequência de Fibonacci define como 1,1,2,3,5,8,13,21,34,55,89,144,233,... ou seja, o número seguinte é a soma de seus dois antecessores.

Depois de quebrar a cabeça, o SmS desenvolveu esse código que faz a soma (correta :P) da Série de Fibonacci.

Quote
[State 200, 1]
type = VarSet
triggerall = time = 1
trigger1 = var(23)=1
trigger1 = var(22):=Var(20)+Var(21)
trigger1 = var(24):=Var(22)
trigger2 = var(23)=2
trigger2 = var(20):=Var(21)+Var(22)
trigger2 = var(24):=Var(20)
trigger3 = var(23)=3
trigger3 = var(21):=Var(22)+Var(20)
trigger3 = var(24):=Var(21)
trigger4 = var(23)=0
trigger4 = var(20):=1
V= 23
value = ifelse(Var(23) = 3,1,Var(23)+1)

e para controle, fiz esse pequeno DisplayToClipBoard

Quote
[State -2, DisplayToClipBoard]
type = DisplayToClipBoard
trigger1 = 1
text = "var(20) %d, var(21) %d, var(22) %d, var(23) %d, var(24) %d"
params = var(20),var(21),var(22),var(23),var(24)

Mas depois de tudo isso, pra que serve essa porra de código maluco?
Esse código tem 1001 utilidades como: randomização, sistema de experiência, sistema de danos, seleção de golpes, advanced guard e até uma ativação de AI mais elaborada, assim como a programação da própria AI.

E como fazer isso?
No Rock, eu comecei a utilizar o VarRandom bem simples e sem vínculo com o Fibonacci.

Quote
[State -3, VarRandom]
type = VarRandom
triggerall = Var(2) = 1
trigger1 = 1
v = 4
range = 7

Dessa maneira a var(4) fica randomizando de 1 a 7 sem parar, mas isso depois que a var(2) for ativada.

Aplicando o código Fibonacci conforme escrevemos acima, teremos:

Quote
[State -3, VarRandom]
type = VarRandom
triggerall = Var(2) = 1
trigger1 = 1
v = 4
range = var(20),var(24)

O valor da randomização ficará entre essas duas variáveis. Mas em certos pontos os valores podem passar de 121393,196418... portanto é bom zerar as variáveis depois de certo valor.

Além desse tipo de randomização, poderemos fazer a escolha de um golpe "secreto"... aqueles golpes mais fodões que só podem ser ativados em situações extremas :P
Ainda com base no VarRandom acima, podemos fazer vários tipos de randomização na escolha do golpe:

Quote
[State xxx, ChangeState]
type = ChangeState
triggerall = Var(24) = Var(21)
trigger1 = 1
value = yyy

Quote
[State xxx, ChangeState]
type = ChangeState
trigger1 = 1
value = ifelse(Var(20)-Var(22)=Var(21),yyy,zzz)

Quote
[State xxx, ChangeState]
type = ChangeState
triggerall = Var(24) = Var(22)
trigger1 = 1
value = yyy

Além dessa, podemos fazer muitas outras randomizações utilizando os valores que são passados pela Série de Fibonacci.

Também podemos fazer um sistema de danos utilizando a var(23), apesar desse sistema de danos ser bem simples é possível adicionar mais elementos a ele.
O valor da var(23) sempre fica como 1, 2 e 3. Mas adicionando um simples contador a ela, podemos ter algo assim (continuando com a base da var(23) feito lá pra cima):

Quote
[State xxx,VarSet]
type = VarSet
triggerall = (Var(23) = 2&&MoveType = A)
value = 1

Assim, seu personagem teria certas condições para ter um ganho de danos e até daria para fazer um outro tipo de randomização.

Por enquanto é isso, de 2006 até agora dei uma boa enferrujada com o Mugen... mas aos poucos vou voltando. Assim que der, vou postar as outras coisas que consegui fazer com esse código.




Conhecimento é a única virtude e ignorância é o único vício.

Twitter - Follow Me
www.jgnetwork.com.br | JG Network - Desenvolvimento em Web.


 
Dih_Nii-SanData: Segunda, 17/01/2011, 10:38 AM | Mensagem # 2
Criador Iniciante
Grupo: Usuários
Mensagens: 430
Awards: 1
Reputação: 20
Status: Offline
Esse eu tirei o chapeu '-'
mt complexo e ótimo esse code,
nunca vi nenhum char com ele.
abráa'ç


 
  • Página 1 de 1
  • 1
Buscar:

Copyright Anime Mugen © 2024 Hospedado por uCoz
Refresh Smileys Manager
Mini-chat