LoginSignup
0
0

More than 3 years have passed since last update.

FakerGemで作るポケモンGo

Posted at

経緯

プログラミング学習を進める過程で様々なGemを使う。Gemの理解を深めるためにGitHub上の元データを眺めていると、面白いものが見つかった。

Faker::Games::Pokemon

Faker::Games::Pokemon.name #=> "Pikachu"
Faker::Games::Pokemon.location #=> "Pallet Town"
Faker::Games::Pokemon.move #=> "Thunder Shock"

なんとポケモンの名前をランダム表示する機能がある。FakerGemを理解するなら、使ってみるのが一番!ということで、ポケモンの遭遇と捕獲を行うアプリケーションを作成してみた。

コード

application.rb
# FakerGemの読み込みと日本語設定
require "Faker"
Faker::Config.locale = :ja

# ポケモンクラスとプレイヤークラスのファイル読み込み
require "./pokemon"
require "./player"

# ポケモンを生成
pokemon_name = Faker::Games::Pokemon.name
pokemon = Pokemon.new(pokemon_name) 

# プレイヤーを生成
player = Player.new()

# ポケモンが出現!
pokemon.appear

# プレイヤーの行動
player.command(pokemon_name)
pokemon.rb
class Pokemon

  def initialize(name)
    @name = name
  end

  def appear
    puts "あっ!野生の#{@name}がとびだしてきた!"
  end

end
player.rb
class Player

  def command(pokemon)
    puts "あなたはどうする?"
    puts "[0]モンスターボールを投げる\n[1]逃げる"
    input = gets.to_i
      if input == 0
        puts"やったー!#{pokemon}をつかまえたぞ!"
      elsif input == 1
        puts "うまくにげきれた!"
      else
        puts "番号が間違っています"
      end 
  end

end

terminal

まとめ

出現するポケモンがランダムのため、「予測できない楽しさ」がある。
FakerGemはもちろんのこと、「オブジェクト指向」や「メソッドの考え方」など、少量のコードでも0から作ることは大いに学びになる。「捕獲率の変動」や「街の移動」など色々とオプションの余地もあるため、時間を見つけて遊んでいこう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0