言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

たしか色々締め切りがあったはずだ。

反省

  • 2引数以上のメソッドは完成。しかしこれを使うとクラスメソッド風の書き方になってしまう。委譲を活用した制約の書き方を考えたほうがいいかも知れない。A horizon: B
  • 型情報については仕様は考えた。
  • テキストによるメソッド追加時にビューワが反応しない。
  • ビューワのスクリプトとブラウザの同期をする方法。scripts はできるだけ使わない。

目標

  • ワールドに含まれるスクリプト、オブジェクトをツリー上に表示。どんな意味上の関連があるのか考える。
  • 新しいメソッドを追加する事が出来る。(この場合はコピーという事にする。簡単だから)
  • Step 方式のメリットとデメリットについてまとめる。

方針や疑問

  • Alice のスクリプトを参考にする。
  • テスト作成
  • 最初から Player に実装されているメソッドも編集できたら面白いのでは無いか?
  • Preference の使い方を調べる。

タイルの情報をテキスト表示できればすっきりする?

  • スクリプトの種類と定義
    • universaltiles : Dan の新しいタイル。今回サポート外
    • classic tiles : player class scripts 内に登録
    • libretto : ブラウザでプレイヤに定義したスクリプト
  • libretto の性質
    • タイルとして利用できる。
    • 型がある #(引数型 引数型) -> #帰り型 (型のシンボルは eToys と同じ)
    • classic tiles から作成できる。
    • classic tiles から作成した以外のタイルは player class tiles に登録されない。
  • libretto のコンセプト
    • libretto 内の単語はすべて実際の値を指す。
    • libretto はオブジェトに所属している(ように見える。実装はクラス)
    • libretto の内容はすべてテキストで表現出来る。
  • タイルを world にドロップした際に新規スクリプトが作成されるか、編集になるかの違い
    • PhraseTileMorph>>morphToDropInPasteUp:
    • Phrasetilemorph userScriptSelector があれば編集になる。
  • libretto を表示するときに同じメソッドが何度も表示されないようにする。
    • UniclassScript>>instantiatedScriptEditorForPlayer: aPlayer を改造
    • 同じ world にいると再利用
    • UniclassScript>>instantiatedScriptEditorForPlayer: もしも既存のメソッドが無いときは、新規とみなしてコードを表示しようとしない。

UserScript はもう使われていないかも
ボキャブラリエディタ
ActorState ってなんだ???