3

Common Lisp とLispWorks CAPIを使用して Connect Four ゲームに取り組んでいます。私は 1 つのことを除いてインターフェイスを終了しました: プッシュボタン (プッシュボタンパネル内) を使用して列にピースをドロップし、対応する列がいっぱいになったらボタンを無効にしたいと思います。私は Lisp には比較的慣れておらず、特にオブジェクト指向のことを理解していないため、その方法がわかりません。

単一のプッシュボタンは次のように作成できます。

(setf my-button (capi:contain
                 (make-instance 'capi:push-button
                                :text "Button!")))

したがって、無効にされます:

(capi:apply-in-pane-process 
 my-button #'(setf capi:button-enabled) nil my-button)

push-button-panel も同様に作成されますが、パネルに:items配置するボタン (または CAPI がボタンを作成するデータ) のリストである引数を取る点が異なります。

プッシュボタンパネルの個々のボタンを無効にする方法を知る必要があるだけです。また、最後のコードで何が起こっているのかを説明していただければ幸いです。私はそれをまったく理解していないからです。

ありがとう!

4

1 に答える 1

2

マニュアルを少し検索すると、この関数がわかります。これにより、の1つ以上の要素を有効/無効にできますpush-button-panel。また、説明したいコードは(setf capi:button-enabled)、引数nilと。を使用して関数を呼び出しますmy-button。ただし、この関数は、ボタンに関連付けられた「プロセス」で呼び出されます。(ここのドキュメントを参照してください

(PS「オブジェクト指向のもの」を理解するのに助けが必要な場合は、Practical Common Lispが役立つリソースかもしれません)

于 2011-06-13T13:55:32.960 に答える