Home > Ruby

Ruby Archive

世界の言語でこんにちは

中学英語の最初の授業でこんなのやったと思います。今回はプログラム言語でHelloWorldを書きます。
やる言語は、Java,PHP,Ruby,Cくらいにしておきます。iG:Syntax Hiliterの言語を試すって意味合いもある。

Java

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World");
        System.out.print("Hello World");
    }
}

System.out.printlnは改行ありSystem.out.printは改行なしで表示されます。

Ruby

print "Hello World"
puts "Hello World"

printは改行なし、putsは改行ありで表示されます。

PHP

<?php
    print "Hello World";
    echo "Hello World";
?>

print,echo共に改行なしで表示されます。とくに使い分け規定もなさそうです。

C

#include <stdio.h>
main()
{
    printf("Hello World");
}

とまあこんなもんか。COBOLとかは書く気もしないし他にやってる言語ないからこれくらい。

RubyでRPGゲーム

RPGといってもテキストベースでやるだけですね。処理の流れとか覚えるためです。
文法もいまいち理解できてないのが多いのでそれらも含めて解説というか自己理解を深めます。

プログラムソース

name = "アーク"
puts "スライムが現れた"
puts "説明書:a,attack=攻撃、r,run=逃走"
hp = 50
sleeping = false
while true
    print "action> "
    cmd = gets.chomp
    case cmd
   
    when "run", "r"
        puts "#{name}は逃げた"
        exit
       
    when "attack", "a"
        puts "#{name}の攻撃!"
        d = rand(3) + 5
        if sleeping
            d *= 2
            puts "会心の一撃!"
            sleeping = false
        end
        puts "スライムに#{d}のダメージを与えた"
        hp -= d
    end
   
    puts "残りHP:#{hp}"
    if hp <= 0
        puts "スライムを倒した"
        exit
    end
end

プログラム説明
攻撃か逃走が選べます。攻撃すると敵のHPが減り0以下になると終了。逃げても終了。
敵のHPは変数hpで設定。プレイヤーの名前はnameに設定しています。whileの無限ループで繰り返します。

printとputsの違い
出力後に改行されるのかされないか。\nつくみたいな感じでいいのかなと思う。
javaでいうと、System.out.printとSystem.out.printlnの違いだと思う。

puts内での変数表示
""内に書くと文字列判断されてしまうため変数を表示するには#{}で変数名を囲んでやる必要があります。

puts "#{変数名}"

プログラムの終わりはend
forだろうがifだろうがwhileだろうが終わりはendです。
それじゃわかりにくいじゃないかっていう話になって調べてみたら以下のようなものみつけました。

Ruby の予約語に endif やら endfor やらを追加するパッチ - kwatchの日記

rand関数
rand(引数)で0以上引数未満の値を返します。rand(3)だと0,1,2のどれかが返ってきます。

case文
switch文のような多重分岐の時に用いられるよう。違うのはwhenに複数条件指定できること。
when文はインデントしないのが正しいらしい。考え的にはcase>whenみたいに思えるのだけど。

ran = rand(3)
case ran
when 0
    puts "結果は0です"
when 1,2
    puts "結果は0ではないです"
end

とまあこんなところ。たまにインデントがずれるのはどうしたもんか。ちょっと困るかも。

RDE導入

Ruby開発する上でエディタでもできるのですがRDEというIDEがあるので導入してみます。

RDE(Ruby Development Environment) - Ruby開発環境

RDEを使用するにはRubyを実行できる環境が整っている必要があります。Rubyインストールは過去の記事。
[過去エントリ]:Rubyインストール

RDE本体とHTMLhelpをダウンロードしてきます。Helpは後で読み込むので適当な場所においておく。
ダウンロードしたインストーラを起動しインストールします。日本語で進められるので簡単です。
ruby.exeのパスを指定する必要があるのですがインストール時に変更していない場合デフォルトでOKです。

c:\ruby\bin\ruby.exe

初期設定が出ますが先に日本語化をしたほうがわかりやすいので後回しにします。

日本語化
「Tool」→ 「Option」を選び、「Config File」の「TranslationFile」に翻訳ファイルを設定。
RDE内のTranslation内にJapaneseのxmlがあると思うのでそれを読み込みRDEを再起動。

次に「ツール」→「エディタ設定」→「フォント」で文字セットを日本語に設定しておきましょう。

先ほど飛ばした初期設定を行います。「ツール」→「Rubyの基本設定」を設定します。
Ruby.exeのパス
・インストール時に設定したruby.exeのパスを指定すればOKです。

Rubyヘルプへのパス
・ダウンロードしたヘルプファイルを読み込みます。

これでインストール+日本語化完了。ただコンソールウィンドウの文字間隔が狭いのだが設定できないものか。

はじめてのRuby

Rubyの環境導入は以前行ったので最初の関門である"Hello World"出力をしてみましょう。

基本工程は他プログラム言語とあまり変わらず基本は、テキストエディタ→コマンドプロンプトでできます。

Rubyの拡張子は.rbとなります。*.rbでテキストエディタで編集すれば大丈夫です。
文字力出力にはprintを使います。文字列を"(ダブルクォーテーション)でくくります。

print "Hello World"

Rubyはコンパイルが必要ないため実行に移ります。
コマンドプロンプトからファイルの場所まで移動してrubyコマンドを使い実行します。

ruby hello.rb

Hello Worldと出力されれば成功です。エラーがある場合は修正。"閉じ忘れくらいですけども。
Rubyの実行の手順はこんな感じみたいです。次回はもうちょっとむずかしいものをやります。

Rubyインストール

Rubyの導入~サンプルソースをあるところから頂いたのでRubyを導入してみようということになりました。
Rubyには様々なプラットフォーム用のものがありますが今回はWindows用です。
その他については、Ruby インストールガイドに詳しく書かれています。

RubyInstallerWiki: RubyInstaller

  1. About the One-Click Installer > [Download]
  2. 1.8.6-26 Final Release > ruby186-26.exeをダウンロードします。

インストール画面でDestination Folderのデフォルトが以下のようになっています。

c:\ruby

後にPATH設定をする際にこのディレクトリは重要になってきます。デフォルトの場合で進めます。

インストール後、WindowsでPATHを通すという作業があります。
マイコンピュータ > プロパティ > 詳細設定 > 環境変数

システム環境変数にPathというものがありますので編集し以下のコードを追加します。

C:\Ruby\bin

すでに変数がある場合は;(セミコロン)で区切って最後尾に入力します。

;C:\Ruby\bin

再起動するとPATH設定が有効になるので再起動することでRubyインストールは完了です。

Home > Ruby

Search
Feeds
Meta
BlogPet
PageView
  • 試しに自作カウンタ稼働
  • count: 05815

Return to page top