コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

もうなんか色々と人生がだめなのでKidsRuby触ってみます

駆け出しなのでRubyをやることにしまっす!!

小学生並みの知能しかないマンなので今日はKidsRubyという "小学生でもできる" Rubyプログラミングをやろうと思います。これを使ってRuby?って言うプログラミング言語を覚えていきまーす。それでバリバリコード書いてなんかこうかっこいい感じのプログラム書く人を目指したいと思います。みんな応援してねー!!


ここからインストールできます。
Kidsruby.com
アメリカ語のサイトだけど、小学生並みの知能の僕でもインストールできたので多分、誰でもできるはず。


そんでインストールして起動してみるとこんな感じになります。
f:id:andron:20181127215308p:plain
やったね。起動できた。

使ってみよう ~ハケティ・ハック編

早速使い方を読んでみるよ。
f:id:andron:20181127215829p:plain
Rubyってこんな言語なんだって、へー。キッズがマッツを崇拝する未来が見える。超クール!!

んで、タートルやってみる。
f:id:andron:20181127225947p:plain
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

f:id:andron:20181127230159p:plain
文字出力もできます。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

んで、チュートリアル通りにやっていくと以下のような避けゲーができます。
f:id:andron:20181128171946g:plain
上のやつはチュートリアルまんまのやつなんでソースはまあ載せなくていいですよね。


使ってみよう ~ロボット編


スフィーロってのがKidsRubyでサポートされているそうです。
Sphero

実機はこんなん。

ボール型のやつを動かして遊べるらしいです。これめっちゃBB-8じゃん。ほしー、ほしー、ねーかってー。

はい、てなわけでして僕は経済力ないのでまあ、物理的に動かすことが出来なかったんですけどそういうのができる方は是非試してみてください。



おわりに

まあ、そんな感じの内容が書かれてます。ちなみにRubyのバージョンは1.9なので新しいものになれてしまった人には若干ゃつらいと思う。ただ、インストールしてきたフォルダ内に必要機能がすべて内包されている感じなんで、Anacondaみたいに色んなところが汚染される心配はないと思う。

そういうわけでRubyがんばったのでこれからも応援してねー!!


おわり