Gå til innhold

Anbefalte innlegg

Jeg skulle ha laget meg et lite program som kunne gjøre et onlinespill enklere for meg. Måler mitt er å lage en liste med countdown til diverse aktiviteter. Det den skal kunne gjøre er å:

starte countdown på bestemt tid

skriv inn antall sekunder å telle ned

enkelt redigeres uten å drive å kode om filen hele tiden. Kanskje noe som piczo.

Noen gode råd om Hvilken programering dette går enkelt i? Noe som er lett og lære seg? Eller kanskje noen her har tid til å lage det selv nå?

Lenke til kommentar
Videoannonse
Annonse

Her er noe i Common Lisp:

 

(defun makeDiffTimer ()
 "Returns a function that returns the diff in number of milliseconds between
each call to it."
 (let ((last (get-internal-real-time)))
   (lambda ()
     (let ((current (get-internal-real-time)))
       (prog1
           (- current last)
         (setf last current))))))

;; får teste den ut ...

cl-user> (defparameter *diff-timer* (makeDiffTimer))
*diff-timer*
cl-user> (funcall *diff-timer*)
3716
cl-user> (funcall *diff-timer*)
2093
cl-user> (funcall *diff-timer*)
403

;; ..denne returnerer m.a.o. en funksjon som når jeg kaller den returnerer antall millisekunder mellom hvert kall til gjeldende returnerte funksjon

(defun makeCountDown (num-milliseconds)
 "Returns a function that returns number of milliseconds left of 
countdown defined with `num-milliseconds'."
 (let ((timer (makeDiffTimer)))
   (lambda ()
     (decf num-milliseconds (funcall timer)))))

;; tester den:

cl-user> (defparameter *countdown1* (makeCountDown 60000))
*countdown1*
cl-user> (defparameter *countdown2* (makeCountDown 120000))
*countdown2*
cl-user> (funcall *countdown1*)
50774
cl-user> (funcall *countdown1*)
49402
cl-user> (funcall *countdown2*)
111550
cl-user> (funcall *countdown2*)
110232
cl-user> 

 

så gjenstår det bare noe som står å poller alle funksjonene `makeCountDown' har returnert, og gir et signal av noe slag når den er mindre enn eller lik 0 .. .. veldig enkelt å legge til; gi lyd om du ønsker koden for den biten også

Endret av dayslepr
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...