Logo Bolo: a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

94 linhas
1.4 KiB

  1. ;; lobo: Logo Bolo
  2. ;; (c) Ben Kurtovic, 2011
  3. breed [tanks tank]
  4. tanks-own [
  5. acceleration
  6. ammunition
  7. armor
  8. friction
  9. is-accelerating?
  10. is-player?
  11. max-speed
  12. max-turn
  13. speed
  14. team
  15. ]
  16. to spawn-tank [tank-team]
  17. create-tanks 1 [
  18. set-tank-vars tank-team false
  19. ]
  20. end
  21. to set-tank-vars [tank-team player-tank?]
  22. set acceleration 0.03
  23. set ammunition 20
  24. set armor 8
  25. set friction 0.0075
  26. set is-accelerating? false
  27. set is-player? player-tank?
  28. set max-speed 0.25
  29. set max-turn 24
  30. set speed 0
  31. set team tank-team
  32. set color get-tank-color
  33. set heading 0
  34. set shape "tank"
  35. set size 1.5
  36. end
  37. to do-tank-logic
  38. if is-accelerating? [
  39. accelerate acceleration
  40. ]
  41. fd speed
  42. decelerate friction
  43. end
  44. to accelerate [amount]
  45. set speed speed + amount
  46. if speed > max-speed [
  47. set speed max-speed
  48. ]
  49. end
  50. to decelerate [amount]
  51. set speed speed - amount
  52. if speed < 0 [
  53. set speed 0
  54. ]
  55. end
  56. to fire
  57. if ammunition > 0 [
  58. set ammunition ammunition - 1
  59. hatch-bullets 1 [
  60. set max-travel-distance 8
  61. set shooter [who] of myself
  62. set speed 1
  63. set travel-distance 0
  64. set color white
  65. set shape "bullet"
  66. set size 0.5
  67. ]
  68. ]
  69. end
  70. to shot-at [bullet]
  71. debug "SHOT" (word ([shooter] of myself) " -> " who)
  72. set armor armor - 1
  73. if armor = 0 [
  74. die
  75. ]
  76. end
  77. to-report get-tank-color
  78. if is-player? [ report black ]
  79. if team = 0 [ report green ]
  80. report red
  81. end