RosettaCodeData/Task/Terminal-control-Cursor-movement/Racket/terminal-control-cursor-movement.rkt
Ingy döt Net 6f050a029e update
2013-06-05 21:47:54 +00:00

24 lines
476 B
Racket

#lang racket
(require (planet neil/charterm:3:0))
(define x 0)
(define y 0)
(define (on-key k)
(match k
['down (move 0 -1)]
['up (move 0 +1)]
['right (move +1 0)]
['left (move -1 0)]
[else #f]))
(define (move dx dy)
(set! x (+ x dx))
(set! y (+ y dy))
(charterm-cursor x y))
(with-charterm
(charterm-clear-screen)
(charterm-cursor 0 0)
(let loop ([continue? #t])
(when continue?
(loop (on-key (charterm-read-key))))))