お楽しみください!)。2019年9月25日こちらを比較のためSmalltalk-72に移植させていただきました。インスタンス変数dispが同名のグローバル変数と被るのでこれをdisplayに変更した以外は、なるべく忠実に再現したつもりですが、ちょっとだけ余計なひねり(後述)を入れています。クラス名を大文字スタートにしていなかったり、変数名等を含めキャメルケースにしなかったのは、Smalltalk-72の他のコードの雰囲気に合わせただけで、言語の制約によるものではありません。いずれも普通に使えますので、お手元で試される際は読みやすいように適宜書き換えてください。jankenクラスとenglishdisplayおよびjapanesedisplayアクションです。これらの名前はそのまま~dispのままでよかったかと思いますが、先述のインスタンス変数等のdispをdisplayに変更するのにあわせてうっかり変えてしまいました。「janken」「englishdisplay」「japanesedisplay」の定義Smalltalk-72にはそもそも継承機構が無いため、englishdisplayとjapanesedisplayに共通の抽象クラスであるdisplayは定義していません。テンプレートメソッドパターンが使われていたら、このシリーズでも取り上げたクラス変数を使ったメソッド(正確にはアクション)の共有テクニックなどを活用しようかとは思っていたのですが、今回はその出番はありませんでした。そこで“ひねり”を思いついて、この2つはクラス(実際に使うのはそのインスタンス)ではなく、アクション(インスタンス生成能を持たないクロージャーのようなもの)で実装してみました。クラスもそうですが、アクションは名前を書くだけで実行されてしまうので、その本体を変数に代入したり引数として渡す際には参照(#~)で渡さないといけなくなるなど、かえって面倒になったような気もしますがまあよしとしましょう。^^;呼び出し用のjankengameアクションの定義と実行例はこちらです。実行時に「1」というメッセージを送るとenglishdisplayが、それ以外ではjapanesedisplayが選ばれる挙動は(プログラムの起動方法、オプションをメッセージとして与える等の手段は別にして──)元のSIMULA版と同じです。分かりにくいところ等あれば補足しますのでコメント欄やTwitterのメンション、DM等で気軽にリクエストください。box」(turtleにplace追加、squareとboxの定義)月別アーカイブはてなブログをはじめよう!sumimさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。