質問が示すように、リストのリストから要素を削除するためにユーザー入力を取得しようとしています。リストはそのようにフォーマットされています。
'((X X X) (X X X X) (X X))
各サブリストには、任意の量の X が含まれています。
ユーザーは、サブリストごとに 1、2、3、... を選択します。したがって、ユーザーが 1 を入力すると、サブリスト'(X X X)
が選択されます。ユーザーは、削除する要素の数を選択します。
このための現在のコードは次のとおりです。
(define (humanTurn rows player playerNumber)
(drawBoard (with-handlers ([exn:fail?
(lambda (exn)
(display
"ILLEGAL MOVE, PLEASE ENTER A VALID NUMBER\n"))])
(getRowAndSticks rows))
(list (first (rest player)) (first player))
(cond [(equals? playerNumber 1) 2]
[(equals? playerNumber 2) 1]
[else "error"])))
(define (getRowAndSticks rows)
(list-tail (list-ref rows (sub1 (getRow)))
(begin
(display "How many sticks:........ ")
(read))))
(define (getRow)
(display "Which row do you choose: ")
(read))
問題は、リストを一緒に追加する方法がわからないことです。要素を削除したリストを取得することしかできませんでした。変数の使用が許可されていないため、解決策がわかりません。