Home > タグ > Ruby

Ruby

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

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

Webアプリ開発の現状

説明会で話を聞いたので覚えてる限りでメモ。とにかくたくさんワードがきけておもしろかった。

エンタープライズ データベース
Web検索といえばGoogle,Yahooが有名であり、情報を検索して見つけ出すという形が定着している。
それを会社内で導入し、会社内のデータベースから検索して情報を見つけ出すということ。
またXMLによるスキーマ定義による処理の共通化にてレガシーアプリケーションをもフォローする。

Webアプリケーション開発
・ユーザビリティ
・アクセシビリティ

Webデザインと内部プログラムの両方の理解が必要で、どちらかを重視するというよりはカテゴライズ。
主に、RIAを開発していく。動的に行いつつブランド力を確立しながら開発を推し進めていく。

・XAMPP,LAMP,WAMP
Apache,PHP,MYSQLをベースにアプリケーション開発。XAMPPはこれからどんどん普及していくだろう。

・Ruby
Javaが強いのは未だにJava経験者が多く新しい技術についていけない人達が上にいるからだという。
なので新しいものをやっている人がどんどん提案をしていき普及させていくことが必要ではないのか。
JavaにあるものはすべてRubyは兼ね備えているのでまたどんどん普及していくはずであろう。

・SNS
OpenPNEという国産パッケージ(オープンソース)が現在はあるためそれを導入することが多い。
主に社内向け。社内での情報共有をメインに考え一般向けの新規導入はしない。mixiなど先駆者あり。

データベース事情
扱うデータの量が膨大になるにつれどんどんデータベースの速度などが重要になってきている。
現在は、MYSQL、PostgreSQLが主流だがPostgreSQLを改良したFirebirdが期待の星。
FirebirdはPostgreSQLのいいところを残しつつMYSQLの応答速度も考慮した次世代を担う?DB。

XML
情報の定義としてスタンダードになりつつある。Ajax等の技術にも応用されるため今後重要さが増す。

用語メモ

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 > Tags > Ruby

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

Return to page top