`(kakko ,man)

Find a guide into tomorrow by taking lessons from the past

Lisp Game Programming 再履修 <その10> multithreading ②

Web サーバなら分かるけど、ゲームでは usocket や bordeaux-threads を使うシチュエーションはそうそうないのだろう。
なので、自分自身が後からこのプログラムコードを見たときに参考になるメモの意味合いで、理解を助けるためのイメージ図を残しておこう。
注)あくまでも自分向けです。へへ。

f:id:tomekame0126:20161226200404j:plain

server-step1.lisp や client-step1.lisp では、なんだっけ状態にあった「 intern 」や「 defpackage 」の使い方を何となく思い出したことが収穫だった。

プログラムコードの中で、パッケージを新たに宣言し、

(defpackage :blaster-commands)

その中で、blaster-commandsに、クライアントから送信されたコマンドの「 PLAY 」をインターン(大文字が必須)して、

(intern (string-upcase (first tokens)) 'blaster-commands)

コマンドをこんな感じで変更するのは、どこかで見たことはあったけど使うようなことはなかった。

(case command
  (blaster-command::play

よっしゃ! お次はウィンドウを出してみよう。

「いや~。Lisp って本当にいいもんですね!」
ご同輩、知ってますよね?このフレーズ。