This post is the third in the series of posts focused on the design and implementation of a port in ClojureScript of the game named Tribolo. In our first post, we discussed the game, described its rules and came up with a basic target architecture. In our second post, we tested this architecture on a... Continue Reading →
Building a ClojureScript game: Architecture POC
This post is the second in the series of posts focused on the conception and implementation of a port in ClojureScript of the game named Tribolo. In our previous post, we discussed the game, described its rule, and discussed its basic target architecture. This post will use this target architecture to build a much simpler... Continue Reading →
Building a ClojureScript game
In the next posts, we will implement a small web game using ClojureScript and Reagent. Our ultimate goal will be to build an equivalent of the old Tribolo DOS game as a Web game, including: The graphics and the rendering of the game board in SVG The game mechanics and the implementation of the rules... Continue Reading →
QuickCheck is fun, deal with it
In our previous post, we played with QuickCheck on an arithmetic DSL and used it to check and discover properties on its associated interpreters. Through these experiments, we explored some of the classic usage of QuickCheck and demonstrated through some examples: Its ability to reveal some design defects Its ability to test high level relations... Continue Reading →
QuickCheck experiments on a DSL
After having spent the last three posts exploring how to implement our own QuickCheck, the goal of the next two posts will be to play with it, to test and discover properties on our code and have fun as well. The target of these experiments will be the Arithmetic DSL we built several posts back... Continue Reading →
Code your own QuickCheck (Shrink)
In the previous posts, we started to implement our own QuickCheck in Haskell, which we named RapidCheck, based on the original publication on QuickCheck. The first post went over the basic concepts needed to build such a module, while our last post focused on how we can write generator for arbitrary functions. You might want... Continue Reading →