Skip to content

An extended tutorial/book on Haskell development. A library for playing Scrabble is developed as well as two clients, one of which is networked and allows for remote one or two-player games over the web.

License

Notifications You must be signed in to change notification settings

jimburton/scrabble

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scrabbλe

A one- or two-player implementation of Scrabble for teaching functional programming at the University of Brighton. It consists of a core library, and two clients (web and CLI) for playing the game.

The Scrabble library is inspired by https://github.com/joshcough/Scrabble.

If you don't know the rules of the game you should begin by reading them here.

The emphasis is on explaining the process of developing a Haskell project with several parts, aimed at students who have already learned Haskell syntax and functional problem solving. Commonly used data structures and libraries like Data.Text, maps, arrays, aeson and lens are explained, as well as monadic error checking and building a WebSocket client to the game that shows how to use threads and other concurrency abstractions safely.

Each chapter refines the initial solution, ending up with something that is (hopefully) a clean, functional design that can easily be extended.

Testing is a continuous topic, so new tests are added in each chapter.

Disclaimer

Scrabble™ is a registered trademark. All intellectual property rights in and to the game are owned in the U.S.A and Canada by Hasbro Inc., and throughout the rest of the world by J.W. Spear & Sons Limited of Maidenhead, Berkshire, England, a subsidiary of Mattel Inc. This project and associated experiments are intended for teaching purposes and are not associated with any of the owners.

About

An extended tutorial/book on Haskell development. A library for playing Scrabble is developed as well as two clients, one of which is networked and allows for remote one or two-player games over the web.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published