Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Permet de placer 2 blocs à la position voulue
- func placeTwoBlocks(pos: Coordinate) {
- world.place(Block(), at: pos)
- world.place(Block(), at: pos)
- }
- // Fonction permettant de créer un triangle de murs
- func drawTriangle(pos: Coordinate, orientation: Int) {
- placeTwoBlocks(pos: pos)
- switch orientation {
- case 1: // -|
- placeTwoBlocks(pos: Coordinate(column: pos.column - 1, row: pos.row))
- placeTwoBlocks(pos: Coordinate(column: pos.column, row: pos.row - 1))
- break
- case 2: // |-
- placeTwoBlocks(pos: Coordinate(column: pos.column + 1, row: pos.row))
- placeTwoBlocks(pos: Coordinate(column: pos.column, row: pos.row - 1))
- break
- case 3: // _|
- placeTwoBlocks(pos: Coordinate(column: pos.column - 1, row: pos.row))
- placeTwoBlocks(pos: Coordinate(column: pos.column, row: pos.row + 1))
- break
- default: // |_
- placeTwoBlocks(pos: Coordinate(column: pos.column + 1, row: pos.row))
- placeTwoBlocks(pos: Coordinate(column: pos.column, row: pos.row + 1))
- break
- }
- }
- // Créations des murs
- drawTriangle(pos: Coordinate(column: 1, row: 0), orientation: 4)
- drawTriangle(pos: Coordinate(column: 2, row: 3), orientation: 1)
- drawTriangle(pos: Coordinate(column: 2, row: 5), orientation: 1)
- drawTriangle(pos: Coordinate(column: 1, row: 9), orientation: 2)
- drawTriangle(pos: Coordinate(column: 3, row: 7), orientation: 2)
- drawTriangle(pos: Coordinate(column: 5, row: 1), orientation: 1)
- drawTriangle(pos: Coordinate(column: 5, row: 6), orientation: 4)
- drawTriangle(pos: Coordinate(column: 6, row: 3), orientation: 3)
- drawTriangle(pos: Coordinate(column: 7, row: 0), orientation: 3)
- drawTriangle(pos: Coordinate(column: 7, row: 9), orientation: 2)
- drawTriangle(pos: Coordinate(column: 8, row: 4), orientation: 3)
- drawTriangle(pos: Coordinate(column: 8, row: 7), orientation: 2)
- drawTriangle(pos: Coordinate(column: 8, row: 2), orientation: 2)
- // Placement de la Gem
- world.place(Gem(), at: Coordinate(column: 9, row: 6))
- // Création du personnage
- var character = Character(name: .hopper)
- world.place(character, facing: north, at: Coordinate(column: 0, row: 0))
- // Déplacements du personnage
- /*character.move(distance: 7)
- character.turnRight()
- character.move(distance: 2)
- character.turnLeft()
- character.moveForward()
- character.turnRight()
- character.move(distance: 4)
- character.turnRight()
- character.moveForward()
- character.turnLeft()
- character.moveForward()
- character.turnRight()
- character.move(distance: 2)
- character.turnRight()
- character.move(distance: 3)
- character.turnLeft()
- character.move(distance: 3)
- character.turnLeft()
- character.move(distance: 3)
- character.turnLeft()
- character.moveForward()
- character.turnRight()
- character.move(distance: 2)
- character.turnLeft()
- character.move(distance: 3)
- character.collectGem()*/
- // Version du déplacement optimisée
- func moveAndTurn(direction: String, dist: Int, recurrence: Int = 1) {
- for i in 1 ... recurrence {
- character.move(distance: dist)
- if(direction == "left") {
- character.turnLeft()
- } else {
- character.turnRight()
- }
- }
- }
- moveAndTurn(direction: "right", dist: 7)
- moveAndTurn(direction: "left", dist: 2)
- moveAndTurn(direction: "right", dist: 1)
- moveAndTurn(direction: "right", dist: 4)
- moveAndTurn(direction: "left", dist: 1)
- moveAndTurn(direction: "right", dist: 1)
- moveAndTurn(direction: "right", dist: 2)
- moveAndTurn(direction: "left", dist: 3, recurrence: 3)
- moveAndTurn(direction: "right", dist: 1)
- moveAndTurn(direction: "left", dist: 2)
- character.move(distance: 3)
- character.collectGem()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement