0

質問が示すように、リストのリストから要素を削除するためにユーザー入力を取得しようとしています。リストはそのようにフォーマットされています。 '((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))

問題は、リストを一緒に追加する方法がわからないことです。要素を削除したリストを取得することしかできませんでした。変数の使用が許可されていないため、解決策がわかりません。

4

1 に答える 1

0

コードをたどるのに苦労していますが、リストを結合するには、list関数またはlist*. 2つの違いは、後者は、ある種の追加された最後のものを除いて、すべての引数のリストを作成することです。

于 2013-02-21T06:49:25.437 に答える