Help us understand the problem. What is going on with this article?

FakerGemで作るポケモンGo

経緯

プログラミング学習を進める過程で様々な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から作ることは大いに学びになる。「捕獲率の変動」や「街の移動」など色々とオプションの余地もあるため、時間を見つけて遊んでいこう。

takuhyon
エンジニアとして働きたく、2020年7月よりプログラミング学習を開始しました。学習内容やITニュースなどから気になったことを発信していきます!
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした