sábado, 16 de março de 2013

Aprendendo RGSS do zero - Aula 04

Resolução do exercício anterior

i = 0
while i < $game_party.all_members.length
    msgbox $game_party.all_members[i].level
    i += 1
end


- Introdução

Nesta aula vamos falar sobre métodos!
Um método ou função é um ou um conjunto de instruções feito em um bloco.
Define-se um método da seguinte forma:

def nome_do_metodo
# instrução
end


A grande vantagem dos métodos é que assim que você os define, só
precisa chamá-los para que a ação seja executada. Isso poupa tempo e linhas de código.

Vamos a um exemplo básico:

def falar()
    msgbox "Olá"
end


Vamos chamar o método:

falar()

Note que não é preciso o uso de parêntesis, mas por convenção, usa-se. Aqueles métodos
que vimos nas outras aulas também se aplicam a essa afirmação. msgbox e exit também são métodos!

def falar_mensagem(msg)
    msgbox msg
end


A variável entre os parêntesis é chamada de argumento ou parâmetro,
dependendo do método pode não havê-lo ou haver mais de um. Ele serve para usarmos uma variável de fora nele, em resumo.

No caso acima poderia também por msgbox(msg). Os argumentos são separados por vírgula (ela também é um operador):

def falar_duas(msg1, msg2)
    msgbox msg1 + " " + msg2
end


- O comando return

Quando usamos um método e esperamos um valor de retorno, usamos o comando return.

def potencia(n, p)
    return n**p
end

O operador ** é o de potenciação. No exemplo acima podemos declarar uma variável que
receberá esse valor, veja:

var = potencia(2,3) # 2 ** 3 => 8


Atenção, assim que o return for lido, a função "quebrará", ou seja, irá parar de rodar e voltará a próxima linha
após o seu end.

def advinhar(n)
    g = rand(3)
    if g == n
        return true
    else
        msgbox g
        g = rand(3)
        advinhar(n)
    end
end


O método rand gera um número aleatório até o valor dado, no exemplo acima será 0, 1 ou 2.
Pode-se também chamar o método dentro dele próprio, esse é o conceito de recursividade.
O método continuará rodando até que o número da variável g seja o mesmo que o argumento.

- Exemplo

Vamos criar um método que verifica se o número é par.

def par_ou_impar(n)
    if n % 2 == 0
        return "é par"
    else
        return "é ímpar"
    end
end


O operador % (modulo) é o de o resto da divisão.

par_ou_impar(22) # é par
par_ou_impar 37  # é ímpar


- Outro tipo de return

Em ruby, quando a última linha tem apenas o nome da variável ou expressão, fica implícito que há o seu retorno.

def retorno_explicito(n)
    i = (n*2)+1
    return i
end

def retorno_implicito(n)
    (n*2)+1
end


- Exercício

Crie um método que retorne o maior valor de um array aleátorio (crie).
Dica: Você usará o for aqui, não se esqueça de usar o operador de maior.

Na próxima aula veremos classes.

Nenhum comentário:

Postar um comentário