バグ判明。

どもです。


cl-test-more を使用させてもらって,ひたすら役の判定,
引き分けになった場合の判定について,テストを書いていたのですが,
バグ分からず。
だんだんいやになってきたところで,ふっと気づく。
データ構築のところでへこってるんじゃね?


んで,ファイルの最初の10行と,読み込んだ手の最初の10個を見比べてみる。
ん? なんだ,「TS」とかいうのは?
はっ!
んで,問題文を読むと,「..., 9, Ten, Jack, ...」とあるではないかっ!!
トランプについての先入観で,ついつい10は,10と表すものだと思ったよ。
今考えると,それだと2文字になってしまうからうまいこといかんのだけどもね。
んで,ハッシュテーブルへ文字と数値の対応を設定する箇所を下記のように
修正して,レッツラゴー。
来ましたよ,正解。ふぅ。
無駄に疲れたな。
いや,最初の最初から,テスト書いておけば,検出できたバグだったね。
くぅー。

(defparameter *cards* (make-hash-table))
(clrhash *cards*)
(loop for i from 2 to 9
      do (setf (gethash (digit-char i) *cards*) i))
(setf (gethash #\T *cards*) 10)
(setf (gethash #\J *cards*) 11)
(setf (gethash #\Q *cards*) 12)
(setf (gethash #\K *cards*) 13)
(setf (gethash #\A *cards*) 14)