2016-09-22 4 views
0

Ich muss eine Funktion machen, die ein Bild unter einem anderen Bild nur anzeigen, wenn der Boolean Feuer? #True istRacket Bild Rendern

hier ist mein Code:

(define (render-rocket-fire RocketState FIRE) 
    (cond 
    [(or (rocket-state-fire? #true)) 
    (place-image FIRE 
      (rocket-state-pos-x RocketState) 
      (+ FIRE-SKIP (rocket-state-pos-y RocketState)) 
      SCENE-WIDTH SCENE-HEIGHT)) 

    [else (

Ich bin verwirrt, was in sonst um es zu machen, so dass kein Bild

Antwort

0

Eine Skizze eines Verfahrens angezeigt wird, dass bedingt Mähdrescher zwei Bilder basieren auf dem Wert eines dritten Arguments.

(define (maybe-combine-images image1 image2 my-boolean) 
    (if myboolean 
    (under image1 image2) 
    image1))) 

Die if könnte ein ‚Zweibeiner‘ cond neu geschrieben werden:

(define (maybe-combine-images image1 image2 my-boolean) 
    (cond 
    [myboolean (under image1 image2)] 
    [else image1])) 
2

Dies ist eine wirklich gute Frage, und es heraus herauszufinden, wird Ihnen helfen, Ihr Gehirn in einer wirklich wichtig Weise neu ordnen .

Was Sie wirklich tun müssen, ist Ihre Testfälle zu konsultieren. Oder, wenn Sie diesen Testfall nicht konstruiert haben, schreiben Sie ihn. Speziell: Schreibe einen Testfall, der Renderraketenfeuer mit einem RocketState aufruft, wo das "Feuer?" Feld ist falsch. Was sollte das Ergebnis sein? Die Antwort ist, was im Feld 'sonst' gehen soll.