駆け出しなのでRubyをやることにしまっす!!
小学生並みの知能しかないマンなので今日はKidsRubyという "小学生でもできる" Rubyプログラミングをやろうと思います。これを使ってRuby?って言うプログラミング言語を覚えていきまーす。それでバリバリコード書いてなんかこうかっこいい感じのプログラム書く人を目指したいと思います。みんな応援してねー!!
ここからインストールできます。
Kidsruby.com
アメリカ語のサイトだけど、小学生並みの知能の僕でもインストールできたので多分、誰でもできるはず。
そんでインストールして起動してみるとこんな感じになります。
やったね。起動できた。
使ってみよう ~ハケティ・ハック編
早速使い方を読んでみるよ。
Rubyってこんな言語なんだって、へー。キッズがマッツを崇拝する未来が見える。超クール!!
んで、タートルやってみる。
RubyってTurtleとかって標準機能にありましたっけ?まあいいや。お絵描きできるそうです。
以下ソース
### タートルお絵描き Turtle.draw do background lightslategray pencolor honeydew # config length = 50 number = 9 angle = 360 / number number.times do forward length turnright angle end end
文字出力もできます。alertとかaskとかそういう機能ついてます。その機能使うとダイアログボックスでてきます。でも、なんかaskが日本語文字化けしてつらい。
### ダイアログボックスがあらわれます # alert "こんにちは"+"世界" ### 文字出力 badcommunication = ask "そして輝く?" #ask <-- 8bit asciiのため日本語が文字化け #p badcommunication.encoding #ASCII-8BIT hey = "へい"*2 puts hey puts "Give me your body" puts "のぅ "*2+" それだけでいい" puts "Kissで唇をシャディアッッッ!!" puts "触れないで" puts hey + " わからないエニモァ僕のこと" puts "Wow"*7 puts badcommunication
使ってみよう ~ルビーウォーリアー編
以下のコードを書くと出力のところでコンソールゲームがでてきます。
class Player def play_turn(warrior) # add your code here to tell the warrior what to do end end RubyWarrior.play
とりあえずビギナーやってたんですけど、レベル6から先は以下のエラーに見舞われてうまく動かんかった。エンコード関連のやつ。おそらくテンプレート読み込み時点でエンコーディングが一致しないからだと思う。どこかしらUTF-8に書き直せばいけると思うんだけど、そこがどこかまでは追跡するのは面倒だったのであきらめた。
(erb):19:in `concat': incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError)
まあ動かないなら仕方ない、諦めます(直すという選択肢はない)。
そういうわけですので僕がレベル6まで解いた天才的なコードを残しておきますので、誰か僕の無念を晴らしてくれ……。
class Player def initialize() @health = 20 @saved = false end def play_turn(warrior) ## 移動 --後退 (HP10以下) def dodge(warrior) if warrior.health < 10 warrior.walk!(:backward) else warrior.walk! end end ## 移動 --回復(HP20以下) def heal(warrior) if warrior.health < 20 warrior.rest! else warrior.walk! end end ## 攻撃 --後退 (HP10以下) def assault(warrior) if warrior.health < 10 warrior.walk!(:backward) else warrior.attack! end end ## 救出 def save(warrior) if warrior.feel(:backward).empty? warrior.walk!(:backward) else warrior.rescue!(:backward) @saved = true end end ### 行動処理 if @saved == false # save phase save(warrior) else # attack phase if warrior.feel.empty? @health > warrior.health ? dodge(warrior) : heal(warrior) else assault(warrior) end end @health = warrior.health end end RubyWarrior.play
使ってみよう ~Gosu編
Gosuというものを使うとちょっとしたゲームが作れるらしいぞ。
おそらくこれのことだと思う。
Hello • Gosu
んで、チュートリアル通りにやっていくと以下のような避けゲーができます。
上のやつはチュートリアルまんまのやつなんでソースはまあ載せなくていいですよね。
使ってみよう ~ロボット編
スフィーロってのがKidsRubyでサポートされているそうです。
Sphero
実機はこんなん。

Sphero SPRK+ (スパークプラス) プログラミングロボット/STEM / 【日本正規代理店品】 K001JPN
- 出版社/メーカー: Sphero
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る

【日本正規代理店品】Sphero スター・ウォーズ エピソード7(スター・ウォーズ/フォースの覚醒) BB-8 (ドライブ / ホログラム機能) R001ROW
- 出版社/メーカー: Sphero
- 発売日: 2015/09/05
- メディア: Wireless Phone Accessory
- この商品を含むブログ (4件) を見る
ボール型のやつを動かして遊べるらしいです。これめっちゃBB-8じゃん。ほしー、ほしー、ねーかってー。
はい、てなわけでして僕は経済力ないのでまあ、物理的に動かすことが出来なかったんですけどそういうのができる方は是非試してみてください。