An OO implementation of noughts and crosses