Advertisement
Guest User

Code iPad 1

a guest
Mar 19th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. // Permet de placer 2 blocs à la position voulue
  2. func placeTwoBlocks(pos: Coordinate) {
  3. world.place(Block(), at: pos)
  4. world.place(Block(), at: pos)
  5. }
  6.  
  7. // Fonction permettant de créer un triangle de murs
  8. func drawTriangle(pos: Coordinate, orientation: Int) {
  9. placeTwoBlocks(pos: pos)
  10.  
  11. switch orientation {
  12. case 1: // -|
  13. placeTwoBlocks(pos: Coordinate(column: pos.column - 1, row: pos.row))
  14. placeTwoBlocks(pos: Coordinate(column: pos.column, row: pos.row - 1))
  15. break
  16. case 2: // |-
  17. placeTwoBlocks(pos: Coordinate(column: pos.column + 1, row: pos.row))
  18. placeTwoBlocks(pos: Coordinate(column: pos.column, row: pos.row - 1))
  19. break
  20. case 3: // _|
  21. placeTwoBlocks(pos: Coordinate(column: pos.column - 1, row: pos.row))
  22. placeTwoBlocks(pos: Coordinate(column: pos.column, row: pos.row + 1))
  23. break
  24. default: // |_
  25. placeTwoBlocks(pos: Coordinate(column: pos.column + 1, row: pos.row))
  26. placeTwoBlocks(pos: Coordinate(column: pos.column, row: pos.row + 1))
  27. break
  28. }
  29. }
  30.  
  31. // Créations des murs
  32. drawTriangle(pos: Coordinate(column: 1, row: 0), orientation: 4)
  33. drawTriangle(pos: Coordinate(column: 2, row: 3), orientation: 1)
  34. drawTriangle(pos: Coordinate(column: 2, row: 5), orientation: 1)
  35. drawTriangle(pos: Coordinate(column: 1, row: 9), orientation: 2)
  36. drawTriangle(pos: Coordinate(column: 3, row: 7), orientation: 2)
  37. drawTriangle(pos: Coordinate(column: 5, row: 1), orientation: 1)
  38. drawTriangle(pos: Coordinate(column: 5, row: 6), orientation: 4)
  39. drawTriangle(pos: Coordinate(column: 6, row: 3), orientation: 3)
  40. drawTriangle(pos: Coordinate(column: 7, row: 0), orientation: 3)
  41. drawTriangle(pos: Coordinate(column: 7, row: 9), orientation: 2)
  42. drawTriangle(pos: Coordinate(column: 8, row: 4), orientation: 3)
  43. drawTriangle(pos: Coordinate(column: 8, row: 7), orientation: 2)
  44. drawTriangle(pos: Coordinate(column: 8, row: 2), orientation: 2)
  45.  
  46. // Placement de la Gem
  47. world.place(Gem(), at: Coordinate(column: 9, row: 6))
  48.  
  49. // Création du personnage
  50. var character = Character(name: .hopper)
  51. world.place(character, facing: north, at: Coordinate(column: 0, row: 0))
  52.  
  53. // Déplacements du personnage
  54. /*character.move(distance: 7)
  55. character.turnRight()
  56. character.move(distance: 2)
  57. character.turnLeft()
  58. character.moveForward()
  59. character.turnRight()
  60. character.move(distance: 4)
  61. character.turnRight()
  62. character.moveForward()
  63. character.turnLeft()
  64. character.moveForward()
  65. character.turnRight()
  66. character.move(distance: 2)
  67. character.turnRight()
  68. character.move(distance: 3)
  69. character.turnLeft()
  70. character.move(distance: 3)
  71. character.turnLeft()
  72. character.move(distance: 3)
  73. character.turnLeft()
  74. character.moveForward()
  75. character.turnRight()
  76. character.move(distance: 2)
  77. character.turnLeft()
  78. character.move(distance: 3)
  79. character.collectGem()*/
  80.  
  81. // Version du déplacement optimisée
  82. func moveAndTurn(direction: String, dist: Int, recurrence: Int = 1) {
  83. for i in 1 ... recurrence {
  84. character.move(distance: dist)
  85. if(direction == "left") {
  86. character.turnLeft()
  87. } else {
  88. character.turnRight()
  89. }
  90. }
  91. }
  92. moveAndTurn(direction: "right", dist: 7)
  93. moveAndTurn(direction: "left", dist: 2)
  94. moveAndTurn(direction: "right", dist: 1)
  95. moveAndTurn(direction: "right", dist: 4)
  96. moveAndTurn(direction: "left", dist: 1)
  97. moveAndTurn(direction: "right", dist: 1)
  98. moveAndTurn(direction: "right", dist: 2)
  99. moveAndTurn(direction: "left", dist: 3, recurrence: 3)
  100. moveAndTurn(direction: "right", dist: 1)
  101. moveAndTurn(direction: "left", dist: 2)
  102. character.move(distance: 3)
  103. character.collectGem()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement