interface Movable { fun tick() fun getLoc(): Point } fun main() { val m = object: Movable { var x = 0.0 var y = 0.0 override fun tick() { x += 24; y += 15 if (x > 100) x -= 100 if (y > 100) y -= 100 if (x < 0) x += 100 if (y < 0) y += 100 } override fun getLoc(): Point = Point(x, y) } for (i in 1..10) { m.tick() m.getLoc().show() } }