我正在上一门编程入门课。我们在 DrRacket 中使用学生语言。
问题:我想在大爆炸游戏结束时返回某个值(需要 2htdp/universe)`。
当前输出:当游戏结束时,DrRacket 返回我当前的世界状态,这是我在游戏中使用的结构列表。
解决方案的进展:似乎stop-with
可以帮助我,但我不确定如何使用它。
TL;DR:
问题:游戏结束-->返回世界状态(结构列表)
想要:游戏结束-->返回其他值(数字)
让我知道我是否可以以任何方式澄清!谢谢!
编辑:我想我找到了解决方案。我使用我通常要求的表达方式来结束我的生活?函数并将其作为我的 on-tick 函数中的 cond 分支。当在我的 on-tick 函数中调用该函数时,它会将世界状态更改为我想要输出的任何内容。那么,到底我呢?函数,我只是检查一下世界状态是否与通常不同。
谢谢您的帮助!
解决方案:
; A Test Case (TC) is a (make-tc Number)
(define-struct tc [number ticks])
; number is a number used to test this problem
; TC -> Number
; Begins the main big-bang function; outputs the inverse of tick speed
; times the number of ticks elapsed when the game ends.
(define (main tick-speed)
( * (/ 1 tick-speed)
(tc-ticks (big-bang (make-tc 0 0)
[to-draw draw]
[on-tick check tick-speed]
[stop-when end? end-scene]))))