O sistema a seguir é útil para quem quer
sortear valores aleatórios para várias variáveis sem que os valores
delas se repitam. Com isso é possível fazer sistemas para embaralhar
Card Games e coisas do tipo.
(É recomendável que saiba o básico sobre variáveis, labels, switches e condições.)
Primeiro, crie um evento. Ele pode ser
ativado da forma que você quiser, depende de que sistema você vai
acoplar a isso. No exemplo a seguir, o evento iniciará em processo
paralelo.
Parte 1: Organizando as variáveis
Para que fique tudo organizado e que
você não se confunda na hora de programar o sistema, é altamente
recomendado nomear as variáveis.
Repare nos nomes: as variáveis Valor e Aux irão nos auxiliar no sistema, enquanto num1, num2, num3, num4 e num5 são as variáveis que receberão os valores aleatórios e diferentes.
Parte 2: Os primeiros comandos
Agora vamos começar a programar: selecione o comando de evento Opções de Variável, selecione a variável Valor, escolha Substituir e coloque o valor 1 em Constante, depois clique em OK.
Agora vamos criar uma Label, nomeando-a como quiser:
Nossos comandos de eventos já estão mais ou menos assim:
Agora abra mais uma vez o comando Opções de Variável e selecione a variável Aux, escolha Substituir colocando Aleatório de 1 até 5. Vai ficar assim:
Depois disso, vamos adicionar um comando muito importante para que o sistema fique funcional. Escolha o comando Esperar e coloque 1 frame:
E os seus comandos devem ter ficado como os da imagem abaixo:
*
Parte 3: Criando as condições
Agora crie uma Condição, selecione a opção Variável e escolha a variável Aux. Selecione a opção Constante, coloque o valor 1, e embaixo escolha a opção Igual a. Se quiser, desmarque a opção para adicionar exceção, assim:
Agora crie outra condição e faça nela o mesmo que a outra, só que dessa vez coloque a Constante igual a 2.
Repita o processo criando mais 3
condições, uma com a constante igual a 3, outra com ela igual a 4 e
outra com ela igual a 5. Feito isso vamos ter 5 condições e seus
comandos vão ficar assim:
*
Parte 4: Criando mais condições
Agora vamos criar uma condição dentro da nossa primeira condição (que fizermos anteriormente). Escolha o comando Variável, selecione a variável num1, escolha a opção Constante, coloque zero no valor e depois escolha a opção Igual a. Dessa vez, vamos deixar marcada a opção de adicionar exceção, ficando assim:
Dê OK e abra novamente o comando Opções de variável, selecione a variável num1, escolha a opção Substituir, depois clique na opção Variável e selecione a variável Valor. Ficará assim:
Outra vez, iremos abrir o comando Opções de Variáveis. Selecione a variável Valor, escolha a opção “+” e depois coloque 1 como valor da Constante.
Agora vamos usar o comando Ir para Label. Digite lá o nome que você escolheu anteriormente para aquela que criou.
Copie o mesmo comando Ir para Label que criamos aqui e coloque-o também na Exceção da condição que criamos no início da Parte 4 deste tutorial.
Iremos agora repetir esse processo para
as outras 4 condições que criamos na Parte 3. Criamos então uma condição
dentro da segunda condição que criamos na Parte 3, só que agora ao
invés de selecionar a variável num1, vamos fazer com a num2. Na terceira, a num3, e assim por diante. Veja como vai ficando:
Repita o processo para todas as condições.
Parte 5: Toques finais
Agora vamos criar uma condição em cima da primeira que há em sua aba de eventos. Escolha a opção Variável, selecione a variável Valor, escolha Constante e atribua 5 a ela. Embaixo, selecione Maior.
Clique em OK e depois crie uma Switch Local (dentro da condição) que sirva para mudar a página do evento. Seus comandos ficarão assim:
O sistema está pronto!
Parte 6: Dicas
Para testar se o sistema está programado corretamente, vamos criar um NPC e usar o comando Mostrar Mensagem para exibir os valores das variáveis.
Agora é só rodar o jogo e ver se está tudo certo:
*
Entendeu como funciona?
Caso não tenha entendido a lógica do sistema, segue a explicação. Primeiro vemos que a variável Valor tem definido o valor 1. Após isso há uma Label e depois um sorteio aleatório da variável Aux
que vai de 1 até 5. Dependendo do valor dela, o evento irá executar uma
das 5 condições de baixo, e depois ele vai verificar, uma por uma, se
as variáveis num1, num2,
etc, são iguais a zero. Se alguma for, sabemos que não foi sorteado
nenhum valor para ela, então os comandos de dentro da condição são
executados. Ela então vai receber o valor da variável Valor, que ali é igual a 1, no momento. Além disso, a variável Valor recebe +1 em sua constante.
Em seguida, o sistema volta para a Label, e perceba que a variável Valor já é igual a 2. Uma das variáveis “num” já possui o valor 1, e portanto vem a repetição do evento, que acontece por conta da Label. Mas, dessa vez, estaremos sorteando uma variável para receber o valor 2.
Caso uma das variáveis já possua um
número, ao invés de executar o que tem na condição, irá executar a
exceção, que faz simplesmente voltar para a Label e repetir tudo até que encontre uma variável que não tenha nenhum valor até o momento.
Depois que todas as variáveis receberem seus devidos valores, a variável Valor terá uma constante maior que 5, o que significa que será executada uma condição que vai mudar a aba do evento, fazendo-o parar.
Perguntas frequentes
1 – Se eu quiser sortear outros valores além de 1 a 5, posso?
Claro que sim, basta mudar a sorteio aleatório que é feito com a variável Aux.
2 – E se eu quiser que o sorteio seja de 0 a 4, e não de 0 a 5? Vai dar erro se eu apenas mudar o sorteio aleatório do Aux.
É simples: no final do evento, na condição que faz o evento parar, faça a variável que recebe o valor 5 receber o valor zero.
Demonstração
Clique aqui para baixar um projeto de exemplo!
(feito em RPG Maker XP)
sortear valores aleatórios para várias variáveis sem que os valores
delas se repitam. Com isso é possível fazer sistemas para embaralhar
Card Games e coisas do tipo.
(É recomendável que saiba o básico sobre variáveis, labels, switches e condições.)
Primeiro, crie um evento. Ele pode ser
ativado da forma que você quiser, depende de que sistema você vai
acoplar a isso. No exemplo a seguir, o evento iniciará em processo
paralelo.
*
Parte 1: Organizando as variáveis
Para que fique tudo organizado e que
você não se confunda na hora de programar o sistema, é altamente
recomendado nomear as variáveis.
Repare nos nomes: as variáveis Valor e Aux irão nos auxiliar no sistema, enquanto num1, num2, num3, num4 e num5 são as variáveis que receberão os valores aleatórios e diferentes.
*
Parte 2: Os primeiros comandos
Agora vamos começar a programar: selecione o comando de evento Opções de Variável, selecione a variável Valor, escolha Substituir e coloque o valor 1 em Constante, depois clique em OK.
Agora vamos criar uma Label, nomeando-a como quiser:
Nossos comandos de eventos já estão mais ou menos assim:
Agora abra mais uma vez o comando Opções de Variável e selecione a variável Aux, escolha Substituir colocando Aleatório de 1 até 5. Vai ficar assim:
Depois disso, vamos adicionar um comando muito importante para que o sistema fique funcional. Escolha o comando Esperar e coloque 1 frame:
E os seus comandos devem ter ficado como os da imagem abaixo:
*
Parte 3: Criando as condições
Agora crie uma Condição, selecione a opção Variável e escolha a variável Aux. Selecione a opção Constante, coloque o valor 1, e embaixo escolha a opção Igual a. Se quiser, desmarque a opção para adicionar exceção, assim:
Agora crie outra condição e faça nela o mesmo que a outra, só que dessa vez coloque a Constante igual a 2.
Repita o processo criando mais 3
condições, uma com a constante igual a 3, outra com ela igual a 4 e
outra com ela igual a 5. Feito isso vamos ter 5 condições e seus
comandos vão ficar assim:
*
Parte 4: Criando mais condições
Agora vamos criar uma condição dentro da nossa primeira condição (que fizermos anteriormente). Escolha o comando Variável, selecione a variável num1, escolha a opção Constante, coloque zero no valor e depois escolha a opção Igual a. Dessa vez, vamos deixar marcada a opção de adicionar exceção, ficando assim:
Dê OK e abra novamente o comando Opções de variável, selecione a variável num1, escolha a opção Substituir, depois clique na opção Variável e selecione a variável Valor. Ficará assim:
Outra vez, iremos abrir o comando Opções de Variáveis. Selecione a variável Valor, escolha a opção “+” e depois coloque 1 como valor da Constante.
Agora vamos usar o comando Ir para Label. Digite lá o nome que você escolheu anteriormente para aquela que criou.
Copie o mesmo comando Ir para Label que criamos aqui e coloque-o também na Exceção da condição que criamos no início da Parte 4 deste tutorial.
Iremos agora repetir esse processo para
as outras 4 condições que criamos na Parte 3. Criamos então uma condição
dentro da segunda condição que criamos na Parte 3, só que agora ao
invés de selecionar a variável num1, vamos fazer com a num2. Na terceira, a num3, e assim por diante. Veja como vai ficando:
Repita o processo para todas as condições.
*
Parte 5: Toques finais
Agora vamos criar uma condição em cima da primeira que há em sua aba de eventos. Escolha a opção Variável, selecione a variável Valor, escolha Constante e atribua 5 a ela. Embaixo, selecione Maior.
Clique em OK e depois crie uma Switch Local (dentro da condição) que sirva para mudar a página do evento. Seus comandos ficarão assim:
O sistema está pronto!
*
Parte 6: Dicas
Para testar se o sistema está programado corretamente, vamos criar um NPC e usar o comando Mostrar Mensagem para exibir os valores das variáveis.
Agora é só rodar o jogo e ver se está tudo certo:
*
Entendeu como funciona?
Caso não tenha entendido a lógica do sistema, segue a explicação. Primeiro vemos que a variável Valor tem definido o valor 1. Após isso há uma Label e depois um sorteio aleatório da variável Aux
que vai de 1 até 5. Dependendo do valor dela, o evento irá executar uma
das 5 condições de baixo, e depois ele vai verificar, uma por uma, se
as variáveis num1, num2,
etc, são iguais a zero. Se alguma for, sabemos que não foi sorteado
nenhum valor para ela, então os comandos de dentro da condição são
executados. Ela então vai receber o valor da variável Valor, que ali é igual a 1, no momento. Além disso, a variável Valor recebe +1 em sua constante.
Em seguida, o sistema volta para a Label, e perceba que a variável Valor já é igual a 2. Uma das variáveis “num” já possui o valor 1, e portanto vem a repetição do evento, que acontece por conta da Label. Mas, dessa vez, estaremos sorteando uma variável para receber o valor 2.
Caso uma das variáveis já possua um
número, ao invés de executar o que tem na condição, irá executar a
exceção, que faz simplesmente voltar para a Label e repetir tudo até que encontre uma variável que não tenha nenhum valor até o momento.
Depois que todas as variáveis receberem seus devidos valores, a variável Valor terá uma constante maior que 5, o que significa que será executada uma condição que vai mudar a aba do evento, fazendo-o parar.
*
Perguntas frequentes
1 – Se eu quiser sortear outros valores além de 1 a 5, posso?
Claro que sim, basta mudar a sorteio aleatório que é feito com a variável Aux.
2 – E se eu quiser que o sorteio seja de 0 a 4, e não de 0 a 5? Vai dar erro se eu apenas mudar o sorteio aleatório do Aux.
É simples: no final do evento, na condição que faz o evento parar, faça a variável que recebe o valor 5 receber o valor zero.
*
Demonstração
Clique aqui para baixar um projeto de exemplo!
(feito em RPG Maker XP)