#lang r7rs ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Score ADT ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Houdt de score bij. Bevat GEEN grafische code. (define-library (pacman-project adt-score) (import (scheme base) (pacman-project constanten)) (export maak-score) (begin ;; maak-score :: -> score ;; Maakt een nieuw score-object aan, startend bij 0. (define (maak-score) (let ((punten 0)) ;; verhoog! :: -> / ;; Verhoogt de score met het aantal punten per muntje. (define (verhoog!) (set! punten (+ punten punten-per-muntje))) ;; dispatch-score :: symbol -> any (define (dispatch-score msg) (cond ((eq? msg 'punten) punten) ((eq? msg 'verhoog!) verhoog!) (else (error "Score ADT -- Onbekend bericht:" msg)))) dispatch-score))))