isValid

open override fun isValid(x: Int, y: Int): Boolean

This implementation will just check that the coordinates are in range. There should be no reason to no use this default implementation.