【发布时间】:2011-01-03 09:06:39
【问题描述】:
我正在创建一个跳棋游戏,我需要一个从对子列表中随机选择一对的程序。
【问题讨论】:
-
听起来像家庭作业......你试过什么?什么不起作用?您对如何执行此操作有任何想法吗?
我正在创建一个跳棋游戏,我需要一个从对子列表中随机选择一对的程序。
【问题讨论】:
我知道这个问题被问到已经有一段时间了 但也许它对某个地方的某个人有用。 你也可以这样做:
(car ;; "car" picks the first element or the "head" of a list
(shuffle ;; well... shuffles
(yourList)))
【讨论】:
random 是任何 Scheme 实现的一部分(尽管没有标准化),但 shuffle 并非如此。
(define select-random
(lambda (ls)
(let ((len (length ls))) ;; find out how long the list is
(list-ref ls (random len))))) ;; pick one from 0 to the end
【讨论】:
更简洁的解决方案:
(define (select-random my-lst)
(list-ref
my-lst
(random (length my-lst)))
)
> (select-random '(1 2 3 4))
3
【讨论】: