Ruby/Web

RailsでWeb開発を始めたエンジニア見習いに対して多くの人がこんなことを言う。 「SQLを理解しろ」「HTTPを学べ」「誰かこいつらにWeb技術の基礎を教えろ」 。なら自分がそういう記事を頑張って書こう。誰かって自分さ。

Chapter.02 メソッドを継ぐ

2017-10-02



クラスの継承

前回はクラスとインスタンスの話をした。覚えているかな? クラスがメソッドという振る舞いの情報を持ち、インスタンスが状態の情報を持つというのが要点だ。

今回の話題は「継承」について。オブジェクト指向プログラミングでは非常に重要な概念となる。何故なら継承がコードの再利用をしやすくするからだ。

では、継承とは一体なんなのか。よく言われる説明では既存のクラスを元にして構造や振る舞いを共有した別のクラスを作るということだ。

ここでは、ちょっと違う表現もしてみよう。継承とは、あるクラスが持つ振る舞いの情報を別のクラスから参照することだとも言える。
(ややこしくなるから詳しい話は...

Chapter.01 Hello, ruby.

2017-10-02



クラスとインスタンス

最初に取り上げる話題は、そうクラスだ。一体こいつらは何なんだ?よく用いられるのが、クラスは設計図でありインスタンスは設計図を元に作られた実体だという説明だ。聞いたことがあるだろう。

実のところ、言語によってクラスの定義は様々だ。名著「コーディングを支える技術」によればクラスという言葉が使われ始めた初期においてはその単語の通り「分類(classes)」のことだった。しかしAlan KayによりSmalltalkやオブジェクト指向が生み出されて以降はクラスと言えば一般には以下のような役割を持つものだ。


変数とメソッドのまとまりを作る
実行可能な処理を定義する
コ...

ソルヴァーズをAIで攻略しよう

2016-02-19



『ソルヴァーズ』はプレイしたかな? 1人用TRPGと称されるこのゲームはヒーロー会社を経営し様々な事件を解決していくアナログゲームだ。つまり、ソリティアである。PCゲームのXCOMを小さく削り出して「選択と結果のランダム性」に独自の考えを入れたゲーム、と言うのが自分の理解だ。ゲームバランスの良さも見所だが、その価値の30%くらいは軽妙な内部テキストにある。読もう。

 今回の記事はこいつを簡単なAIを書いて攻略しようという試みである。目指すのはワンマンアーミーによるクリアだ。ポンコツAIはソルヴァーズをクリア出来るだろうか? 出来るとしたらどの程度の確率で? 今のクラスタが注目しているの...