first commit

This commit is contained in:
joren
2026-03-23 10:28:54 +01:00
commit 3abc9aae55
109 changed files with 2467 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
#lang r7rs
; Game-logic ;
(define-library (pacman-project game-logic)
(import (scheme base)
(pacman-project maze)
(pacman-project pacman)
(pacman-project coin)
(pacman-project key)
(pacman-project score)
(pacman-project time-limit))
(export move-pacman!)
(begin
(define key-taken? #f)
;muntje opeten
(define (eat-coin! row col)
(cell-set! row col 2)
(remove-coin! row col))
;sleutel oppakem
(define (take-key! row col)
(cell-set! row col 2)
(set! key-taken? #t)
(remove-key!))
;beweegt pacman en checkt voor muren, muntjes, sleutels etc.
(define (move-pacman! x y)
(when (not (time-up?))
(let* ((cur-x (pacman-x))
(cur-y (pacman-y))
(next-x (+ cur-x x))
(next-y (+ cur-y y))
(grid-col (quotient next-x cell-size))
(grid-row (quotient (- next-y maze-offset-y) cell-size)))
(cond
;van links naar rechts
((< grid-col 0)
(set-pacman-x! (* (- maze-cols 1) cell-size))
(set-pacman-y! next-y))
;van rechts naar links
((>= grid-col maze-cols)
(set-pacman-x! 0)
(set-pacman-y! next-y))
;als het een deur is openen we de deur
((cell-door? grid-row grid-col)
(when key-taken?
(remove-door! grid-row grid-col)))
;normale beweging
(else
(when (not (cell-wall? grid-row grid-col))
(set-pacman-x! next-x)
(set-pacman-y! next-y)
;om te zien wat er op de volgende pos staat
(cond
((cell-key? grid-row grid-col)
(take-key! grid-row grid-col))
((cell-coin? grid-row grid-col)
(eat-coin! grid-row grid-col)
(update-time-limit!)
(update-score!)))))))))))