Forums » RGSS

Aula 4: As Operações Lógicas parte 1

    • 683 posts
    2 de junho de 2015 18h48min12s ART

    Imagem Postada


    Imagem PostadaAnalogias
    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!

    Imagem Postada


    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.

    Imagem PostadaO 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?

    Imagem Postada


    Imagem PostadaOperaçõ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

    Imagem Postada


    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.

    Imagem Postada


    Imagem PostadaComparadores 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

    Imagem Postada


    Agora nós ja temos os comparadores, vamos terminar nosso script.

    var = rand(3)
    if var == 0
      p "0"
    end
    

    Imagem PostadaTraduzindo:
    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

    Imagem Postada


    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
    

    Imagem Postada


    Imagem PostadaExplorando 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
    

    Imagem PostadaTraduzindo:
    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
    Imagem PostadaTraduzindo: 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!".

    Imagem Postada


    Imagem PostadaDica:
    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.

    Imagem Postada


    Tags de busca

    • RGSS
    • Condições
    • if
    • rand