12
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?

More than 3 years have passed since last update.

「大石泉すき」Advent Calendar 2019

Day 2

Rubyで「大石泉スキ」を標準出力する & idol++

Last updated at Posted at 2019-12-01

この記事は 「大石泉すき」アドベントカレンダー 2日目の記事となります。
2日目は、1日目のPythonに対抗してRubyで標準出力してみます。

概要

以下のような方を対象にした内容になります。

  • 大石泉P
  • 大石泉に興味がある人
  • Rubyでプログラミングを始めたいと思っている人

なお、すそ野を広げるという観点にたって記事内のコードは以下の環境で実行しています。

OS: Windows 10
Rubyバージョン: ruby 2.6.3p62 (2019-04-16 revision 67580) [x64-mingw32]

とりあえず、Rubyで出力してみよう

初歩的な標準出力

Rubyがインストールされている状態でコマンドプロンプトを立ち上げて以下のコマンドを入力して実行します。
ruby -e "文字列""文字列" のコードをRubyが解釈して実行します。
いわゆるevalですね。

ruby -e "puts '大石泉スキ'"

大石泉_1_1.png

複数回出力する

ruby -e "5.times { puts '大石泉スキ' }"

大石泉_1_2.png

n.times { (処理) }n で指定した回数分だけ {} 内の処理を実行するループ構文です。
この場合は n = 5 を指定しているので5回文字列の出力が実行されます。

ランダム要素を加えてみよう

文字列を出力するだけでは面白味もないし、 idol++ ではないのでランダム要素を加えてみましょう。

ruby -e "puts ['大石泉スキ', 'idol++', 'ネイビーウェーブ',  'ビット・パフォーマー', 'ニューウェーブ・ネイビー', 'ニューウェーブ・バースデー'].sample"

大石泉_1_2.png

実行する毎に以下の要素のなかからランダムに出力されます。
Aray#sample を利用しています。

  • 大石泉スキ
  • idol++
  • ネイビーウェーブ
  • ビット・パフォーマー
  • ニューウェーブ・ネイビー
  • ニューウェーブ・バースデー

Rubyのclassファイルを作成してみよう

コマンドラインからの入力だけでは ビット・パフォーマー にはなれないのでRubyでclassを定義してコードを書いてみましょう。

初歩的なclass定義とコマンドラインからの実行

テキストエディタで以下のコードを入力して izumi.rb という名前で保存します。

class Izumi
  def perform
    puts '大石泉スキ'
  end
end

# コマンドラインから呼び出された時に実行される処理
izumi = Izumi.new
izumi.perform

コマンドプロンプトで以下のコマンドを入力して izumi.rb を実行します。

ruby izumi.rb

大石泉_2_1.png

irbからの実行

コマンドラインからの実行では1回限りの操作しか行えないので複数回の操作を繰り返して変化が起こるようにしてみましょう。
まずは、Rubyの対話型の実行環境である irb を立ち上げましょう。
--noreadline オプションをつけないと日本語入力が行えないので気を付けてください。

irb --noreadline

以下のようにRubyのコードを実行することができます。

大石泉_2_2_0.png

izumi.rb を以下のように書き換えます。

class Izumi
  def initialize
    @idol = 0
  end

  # Rubyはインクリメント演算子がないので全角文字を利用したメソッド名にしています
  def idol++
    @idol += 1
  end

  def perform
    puts '大石泉スキ'
    idol++

    if @idol % 3 == 0
      idol_rank = @idol / 3

      puts ''
      puts "大石泉のアイドルランクが上がった! => アイドルランク #{idol_rank}"
    end

    @idol
  end
end

izumi.rb ファイルのあるディレクトリに移動してirbを起動し、以下のコマンドを入力して izumi.rb の内容をirbに読み込みます。

require './izumi'

class定義から izumi インスタンスを作成して perform メソッドを呼び出します。

izumi = Izumi.new
izumi.perform

大石泉_2_2_1.png

perform メソッドを呼び出す毎に idol++ されて3回毎にアイドルランクがアップしていきます。

大石泉_2_2_2.png

12
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
12
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?