Article image

EV

Eduardo Veiga02/03/2023 17:08
Compartilhe

Como criar uma luta Pokémon em Ruby utilizando condicionais

  • #Ruby

Como deixar a linguagem mais divertida utilizando exemplos em uma brincadeira também?

Primeiramente precisamos definir alguns parâmetros,

Como quais Pokémon iremos utilizar em um lista (Array - é uma coleção de elementos em uma variável que poderemos referenciar posteriormente por índices)

pokedex = ["Bulbasaur","Ivysaur","Venusaur","Charmander†","Charmeleon","Charizard","Squirtle†","Wartortle","Blastoise","Caterpie","Metapod","Butterfree"]

Status base de attak(Ataque) e HP(Pontos de Vida) para Pokémon selvagem e para o que iremos escolher.

iniatk = rand(5..15)
inihp = rand(30..50)
wildatk = rand(5..15)
wildhp = rand(30..50)

Gerar status aleatoriamente para ambos(Rand - ele gera um valor randômico, e o .. para definir um limite entre valores, se nao iria vir um pokemon imortal ou fatal kk ).

Gerar Pokémon Selvagem aleatoriamente.

wildran = pokedex[rand(11)]
pokemon = wildran
#pokemon randon gerado
pokewild = [pokemon,wildatk,wildhp]

E automatizar uma luta entre eles usando laços de repetições nesse caso usei o (While - é um loop, uma estrutura de repetição com uma condicional verdadeira ou falsa).

while escolha[2] >= 0 && pokewild[2] >= 0
  puts " Your Pokemon's Life#{escolha[2]}"
  puts " wild Pokemon's life#{pokewild[2]}"
  pokewild[2] = pokewild[2] - escolha[1]
  puts "you pokemon attak #{escolha[1]}"
  escolha[2] = escolha[2] - pokewild[1]
  puts "wild pokemon attak #{pokewild[1]}"
  sleep(1)
end

(Sleep - e um temporizador para a execução , coloque pois estava muito rápido o resultado)

E por fim um condicional de caso se (If Else- o famoso se e senão) para visualizarmos o resultado da batalha.

if pokewild[2] < escolha[2]
  puts "You Won"
  #venceu
elsif pokewild[2] == escolha[2]
  puts "Draw"
else escolha[2] <= 0
  puts "You Loose"
end

Claro que usei oque aprendi ate o momento e fico aberto para melhorias e dicas , como não tinha publicado um Artigo ainda , achei uma boa opção :D

segue repositório git com código >>>

https://github.com/eduardo-veiga/Ruby-Pokemon-dio

Compartilhe
Comentários (1)
Nathan Ferreira
Nathan Ferreira - 02/03/2023 18:10

muito bacana Eduardo! não tenho conhecimento na linguagem mas gosto muito de Pokémon e adorei sua explicação, sucesso!!