1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rubyで英語名称のポケモンの名前を日本語で当てるゲームを作ったよ

Last updated at Posted at 2024-06-27

読んで欲しい人

  • rubyでプログラムを作ってみたい人
  • 過去の自分

動作環境

  • ruby 3.3.3

アプリについて

ファイル構造

.
├── pokemon.rb
├── pokemon.csv

ソースコード

pokemon.rb
# ファイル内でcsvライブラリ(モジュール)を使用するための記述
require 'csv'

# CSVファイルを読み込む
def load_pokemon_from_csv(file_path)
  pokemon_data = []
  # foreachにheaders: trueをすると、keyとvalueをいい感じに扱ってくれる
  CSV.foreach(file_path, headers: true).each_with_index do |row, _i|
    pokemon_data << row.to_hash
    break if _i == 150
  end
  pokemon_data
end

def main
  file_path = 'pokemon.csv'
  pokemon_data = load_pokemon_from_csv(file_path)

# sampleは配列からランダムに1つ返してくれる
  random_pokemon = pokemon_data.sample

  puts "#{random_pokemon['name']}は日本語では何と呼ばれますか?"
  japanese_name_input = gets.chomp.downcase

  correct_japanese_name = random_pokemon['japanese_name'].downcase.gsub(/[a-z]/, '')

  if japanese_name_input.include?(correct_japanese_name)
    puts '正解!'
  else
    puts "残念!正解は#{random_pokemon['japanese_name']}でした!"
  end
# 例外時の処理
rescue StandardError => e
  puts "エラー: #{e.message}"
end

main

csvファイル

ポケモンの情報が載っているCSVファイル
  ↑
めっちゃ細かく記述してあります。びっくり

pokemon.csv
pokedex_number,name,japanese_name,base_total,attack,defense,sp_attack,sp_defense,speed,hp,capture_rate,experience_growth,type1,type2,classification,generation,is_legendary,x,y
1,Bulbasaur,Fushigidaneフシギダネ,318,49,49,65,65,45,45,45,1059860,grass,poison,Seed Pokémon,1,0,2.0027124881744385,-23.850000381469727
2,Ivysaur,Fushigisouフシギソウ,405,62,63,80,80,60,60,45,1059860,grass,poison,Seed Pokémon,1,0,-4.191871643066406,-1.011356234550476
3,Venusaur,Fushigibanaフシギバナ,625,100,123,122,120,80,80,45,1059860,grass,poison,Seed Pokémon,1,0,16.135290145874023,25.56937026977539
...
めっちゃ続く

学び・感想

  • RubyでCSVの扱い方を知れました
  • RailsをやるにはRubyの基礎を〜と言うことで、Rubyもどんどん書かないとなぁ

参考記事

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?