私はLISPのゲームマスターマインドを解決するプレイヤーを作成しようとしています。ループは、グローバル変数*counter*
内部ループが必要なペグの長さに基づいて色を推測することになって4未満である間に実行するようになっている間、私は、ヘルパー機能ネストされたループ共通LISP
(defparameter *counter* 0)
;analyze the score to determine whether points need to be added to counter
(defun analyze (last-response)
(if (> (first last-response) 0)
(setf *counter* (+ (first last-response) *counter*))))
;helper function for finding correct color
(defun guessColor (length colors last-response)
(loop while (< *counter* 4) do
(loop for i from 1 to length
collect (first colors)
(setf colors (rest colors)))
(analyze (last-reponse))))
;baseline Holyguacamole player will guess all colors before trying all combinations of correct color
(defun HolyGuacamole (board colors SCSA last-response)
(declare (ignore SCSA))
;(print last-response)
(guessColor board colors last-response)
(print *counter*)
;(sortColor)
)
ザで次のネストされたループを使用してみました(可変長)。私は、マクロ展開の時にコンパイルエラー
に実行してきた(LOOPのWHILE(< COUNTER 4)...)。つかいます ;
ブレイクオン信号を代行受信します。
私はLISPに慣れていないので、そのエラーコードが何を意味し、どのように修正するのかよくわかりません。適切なカッコで正しくネストしたように感じましたが、実際に何が問題なのかは実際には分かりません。
LinkとMastermind環境。
プログラム全体の量はどれくらいですか?あなたはそれを貼り付けることができますか、それとも自己完結型の例に分解することができますか?私は 'score'や' analyze'の定義や '* counter * 'の宣言を見ません。 –
@GregoryNisbetゲーム自体のコードは非常に大きいです。ヘルパー機能と* counter *の宣言を編集しました。スコアが最後の応答に変更されました – trungnt
''(analyze(last-reponse))) ''は ''(last-reponseを分析してください)) ''と思う)... ...他にもいくつかのエラーがあるようです... 'clisp'や' sbcl'で正確なコンパイラエラーを再現できませんでした。 –