dotsandboxes/players.rkt

32 lines
693 B
Racket

#lang racket
; dots and boxes players!
(require "main.rkt" racket/random)
(provide player-random player-first player-last)
; a Player that plays random moves
(define player-random
(player
"Random"
(lambda (g n)
(let ([m (car (random-sample (valid-moves g) 1))])
(line (line-from m) (line-to m) n)))))
; plays the first valid move found
(define player-first
(player
"First Move"
(lambda (g n)
(let ([m (first (valid-moves g))])
(line (line-from m) (line-to m) n)))))
; plays the last valid move found
(define player-last
(player
"Last Move"
(lambda (g n)
(let ([m (last (valid-moves g))])
(line (line-from m) (line-to m) n)))))