RosettaCodeData/Task/Terminal-control-Cursor-movement/Racket/terminal-control-cursor-movement.rkt

25 lines
476 B
Racket
Raw Permalink Normal View History

2013-06-05 21:47:54 +00:00
#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))))))