2017-02-09 7 views
0

私はイントロプログラミングクラスを取っています。 DrRacketの学生用の言語を使用します。基本ラケット:終了値

問題:私はビッグバンゲーム終了時に一定の値を返すしたいと思います(2htdp /宇宙を必要とします) `。ゲームが終了すると、DrRacketは私がゲーム内で使う構造体のリストである私の現在のworldstateを返します。

電流出力。

解決に向けた進捗状況:は私を助けることができるかもしれように思えるが、私はそれを使用するかどうかはわかりません。

TL; DR:
問題: - : - >リターンの値(数値)は

は私が私ができるかどうかを知りましょうゲーム終了ゲーム終了>が世界の国家(構造体のリスト)
欲しいを返します。いかなる方法でも明確にする!ありがとう!

編集:私は、私は解決策を見つけたと思います。私は通常、私の終わりと呼ぶ表現を使用しますか?それを代わりにon-tick関数のcondブランチとして入れてください。その関数が私のon-tick関数で呼び出されると、world-stateが出力したいものに変更されます。それで、私の終わりに?機能、私はちょうどそれが通常であるものとは異なる世界状態があるかどうかをチェックする。

ありがとうございました!

策:オリジナルのポストで答えられ

; 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])))) 
+0

あなたは、main関数を定義し、設計のレシピを使用していますか? –

+0

はい!私は少なくともそう思う - 主な機能は、署名と目的のステートメントが必要です。それは世界の状態をとり、世界の状態を出力します。 私は、プログラムが終了する直前に、世界の状態を構造体から数値に変更する方法がわかりません。 – Julian

+0

詳細情報:私は最初の大きなプログラムを作成する際にこの質問をしていますので、私は先に進んで、私の問題のはるかに小さなバージョンを入力しました。 このモデルでは、DrRacketは終了時に "(make-tc 3)"を出力しますが、 "hello"のようにまったく異なるものを出力します。 – Julian

答えて

0

; 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])))) 
関連する問題