Sokoban in a Swift playground