Analogias
Antes de passar para os códigos, vamos criar nosso script por eventos. Crie um evento no mapa, coloque para que ele mude a variável 1 com um número aleatório de 0 a 2, depois coloque condições, se 0, mostra a mensagem 0 (só um exemplo), se 1 mostra a mensagem 1, se 2 mostra 2:
<>Variável 1: Aleatório 0..2
<>Condição: Variável 1 == 0
<>Mensagem: "0"
<>End
...
vá até o evento e brinque um pouco com a coisa toda! Vamos agora entender exatamente o que você fez.
1º mandou a variável 1 assumir um valor aleatório de 0 a 2
2º estabeleceu condições, ou seja, a mensagem que aparece na tela depende de qual valor a variável 1 assumiu, assim você não tem como saber que mensagem vai aparecer, apenas sabe quais podem aparecer!
Imagine em um abs! Como você acha que o computador calcula os danos? Crie uma batalha, veja que mesmo ao usar um mesmo ataque em um mesmo monstro o dano nunca é igual. Isso acontece por que o dano é calculado usando um comando aleatório como o que nós usamos!
Hoje vamos então criar um script que utilize essa aleatoriedade, junto começaremos a conceituar as condições por script!
Vamos criar nossa classe, já que agora sabemos como fazer, não vamos mais usar o chamar script para criar nossos métodos!
Vou nomeá-la de Aleat, então na 1º linha do script:
class Aleat
vamos ao método, nesse script, criaremos apenas 1 método, o de execução, assim def executar, nosso método irá gerar um número aleatório, pra isso teremos que aprender nosso 1º comando de hoje.
O Comando rand()
Para criar um número aleatório, usamos um método que já vem incluso no RGSS, esse método não tem uma classe, (na verdade tem, é a classe Interpreter) o que nos interessa é que ele calcula esse número aleatório para nós!
Como usá-lo?
Faça com que uma variável assuma o valor dele:
Exemplo> var = rand(n), no lugar de n, colocamos o valor máximo a ser calculado menos 1, ao contrário das variáveis, que podemos usar o comando aleatório para que assuma um valor de tal a tal valor, o rand só admite valores de 0 até o valor que colocamos nos parênteses menos 1, assim rand(4), vai assumir um valor qualquer de 0 até 3 (0,1,2,3), vamos agora usar em nosso método:
var = rand(3)
OK, já temos nossa variável, agora temos que usar o comando print para mostrar na tela as nossas mensagens, mas como fazer com que ele dependa da nossa variável var? Ou seja, como criar condições?
Operações Lógicas: Condições
Para criarmos uma condição, usamos um dos dos mais conhecidos comandos de toda a área de programação. Atenção! Esse é um momento importante para os novos programadores do fórum! Apresento-lhes o IF, hehehe, vocês vão se cansar de ver ele daqui em diante!
Vamos entendê-lo:
Quando você cria uma condição em um evento, sem usar a exceção, fica mais ou menos assim:
<>Condição: (sua condição)
<> O que vai fazer caso a condição seja válida.
<>End
No RGSS é quase a mesma coisa, colocamos
if
o que queremos que ele faça
end
Voltando ao nosso script,, já temos a nossa variável assumindo um valor aleatório, já temos o comando para fazer a condição, agora falta usar as condições:
var = rand(3) >só pra lembrar
if var >ops! como vamos usar essa condição? nós queremos o que mesmo?
Queremos que quando var seja 0, aparareça uma certa mensagem, mas como vou definir o igual? Lembre-se que o sinla de = serve pra mudar o valor do nosso objeto.
Comparadores Algébricos
O que são?
São símbolos utilizados na matemática para comparar valores, dentre eles:
== : verifica se são iguais
> : maior que
< : menor que
>= : maior ou igual
<= : menor ou igual
!= : diferente
Agora nós ja temos os comparadores, vamos terminar nosso script.
var = rand(3) if var == 0 p "0" end
Traduzindo:
var = rand(3) ja sabemos, a variável var, vai assumir qualquer valor de 0 a 2
if var == 0
nossa condição, usamos o if (do inglês se) var == 0 (var for igual a zero)
p "0"
bom e velho comando print, mostrando na tela 0, você pode por var.to_s, ou qualquer outra mensagem
end
como nas condições por eventos, no script, também precisamos colocar um end no fim da condição
Terminando o script, ele deve ficar mais ou menos assim:
class Aleat def executar var = rand(3) if var == 0 p "minha variável vale 0!" end if var == 1 p "minha variável vale 1!" end if var == 2 p "minha variável vale 2!" end end end
Explorando os Recursos
Como vimos no nosso script, usamos o comando if ("se") para criar condições,mas quando criamos uma condição nos eventos, podemos colocar uma exceção, no rgss, isso também é possível pelo comando "else", por exemplo:
if var == 3 p "ola" else p "oi" end
Traduzindo:
se a variável var for igual a 3
mostra na tela "ola"
caso for qualquer outra coisa
mostra na tela "oi"
Outra possibilidade é o elsif, esse comando é utilizado como no script que nós criamos, como assim, você tem uma variável e quer executar comandos que dependam dessa variável, assim colocamos o elseif, que seria como o nosso else (caso for qualquer outra coisa) porém, ele só executa se uma nova condição for acionada, por exemplo:
if var == 0
p "minha variável vale 0!"
elsif var == 1
p "minha variável vale 1!"
elsif var == 2
p "minha variável vale 2!"
end
Traduzindo: se var for 0, mostra na tela: "minha variável vale 0!", caso não seja 0 e seja 1 mostra "minha variável vale 1!"porém se não for nem 0 nem 1, mas for 2, mostra "minha variável vale 2!".
Dica:
Se eu tenhu que fazer minha variável assumir um valor qualquer de 3 a 7, como fazer?
1º diminua 7 de 3, da 4
2º faça um rand(4)
3º some na variável, um 3!
exeplo:
var = rand(4)
var += 3
Teste alguns valores e verifique a lógica dessa dica que eu postei.
Tags de busca