MSP:Mine Sweeper Project

2004-12-03

Ruby/Tk編(2) Widgetデモを読んでみる

15パズルの実体は、C:\ruby\samples\tk\demos-jp\puzzle.rb
構成は意外とシンプル。

  • demo 用の toplevel widget を生成 $puzzle_demo = TkToplevel.new {・・・
  • label生成 msg = TkLabel.new($puzzle_demo) {・・・
  • frame 生成 TkFrame.new($puzzle_demo) {・・・
    # 内部に「閉じる」「コード参照」ボタン生成
  • #パズルピースの生成とレイアウト15個
  • #パズルピースをクリックしたときの処理 def puzzleSwitch(w, num)

本質的にはこれだけ。最後の処理以外は部品の生成と初期化だけであり、パズルのインタラクティブな処理に関する記述は最後のものだけである。これですら「クリックしたボタンとスペースが隣接にあれば場所を取り替える」というものでしかない。なかなか簡単なもんだ。
さて、これをちょっとずつマインスイーパーに変えていこう。

ちなみに、\は¥の半角のつもりだがバックスラッシュに見えるかも。ディレクトリについても自分の環境に読み替えてたもれ。