删除最后一对"对"来自some-pairs define-struct

时间:2017-09-20 22:31:36

标签: recursion racket

(make-some-pairs (make-pair 10 10) (make-no-pairs))




(check-expect (any-undo (make-some-pairs 10 10 (make-no-pairs))) make-no-pairs)

这个结构采用"对" (2个数字)和a"对" (make-some-pairs [p ps])

例如

{{1}}

我如何设计" any-undo"是否有可能实现这一目标?

我们正在进行递归,而我正试图制作一个大爆炸动画 每次有鼠标事件时都会创建一个圆圈并删除最后一个圆圈 每次按下一个键。

提前致谢!如果您需要更多我的代码来帮助我发表评论,我会发布整个程序。

1 个答案:

答案 0 :(得分:0)

您可以遵循的一个想法是强制执行一些排序。始终添加到列表末尾或列表的前面,并始终从列表前面列表的末尾删除。

你可以让你的添加功能像

那样做
(define (handle-click x y aworld)
  (... define logic to cons new (x, y) to front of
     your list of points in your world))

(define (handle-key akey aworld)
  (... define logic to remove the first element of the list
     of (x, y) in your world (should be very simple)))

然后只是在你的大爆炸功能中使用它们它应该工作:)我可以添加这些功能的实现细节但我需要更多关于你提供给大爆炸和你的手柄键/鼠标功能的世界的信息

另外,我认为“Some-pairs”本身不应该是一个结构,而是你的世界的一部分,它只是一对的列表。当然,这没有看到你的所有代码。