Advertisement
Guest User

Untitled

a guest
May 19th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.63 KB | None | 0 0
  1. ;Fichier de définition du modèle
  2. ;Voir le panneau Information po
  3.  
  4. ;;;;;;;;; Section a modifier pour affecter une équipe a un camp ;;;;;;;;;;;;;;;;;;;;;;;
  5.  
  6. ;1) inclure les fichiers des comportements des équipes
  7. __includes [ "primitive.nls" "util.nls" "equipe_p.nls" "equipe_b.nls" "equipe_g.nls" "equipe_d.nls"]
  8.  
  9. ;2) définir les alias de chaque équipe (association equipe X -> camp L ) :
  10. ; a- dans set_existing_camp, L_exist doit être positionné à true (false si le camp n'est pas utilisé)
  11. ; b- dans fixe_team, ajout de : set X_team L_robots
  12. to set_existing_camp
  13. set h_exist true
  14. set g_exist true
  15. set d_exist true
  16. set b_exist true
  17. end
  18. to fixe_team
  19. set p_team h_robots
  20. set b_team b_robots
  21. set g_team g_robots
  22. set d_team d_robots
  23. end
  24.  
  25. ;3) code de lancement de chaque équipe => ajout X_run , pour chaque équipe X
  26. to run_all_team
  27. p_run
  28. b_run
  29. g_run
  30. d_run
  31. end
  32.  
  33. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  34.  
  35. globals [
  36. nb_robots ;nbr total de robot par équipe
  37. nb_boxes ;nbr total de boite disposé dans l'evironnement
  38. bordure ;epaisseur de la bordure
  39. bases ;liste de tous les camps [ [color1 x1 y1] [color2 x2 y2] ...]
  40.  
  41. ;existances des camps
  42. h_exist
  43. b_exist
  44. g_exist
  45. d_exist
  46.  
  47. ;couleur de chaque camp
  48. h_color
  49. b_color
  50. g_color
  51. d_color
  52.  
  53. ;score de chaque camp
  54. h_score
  55. b_score
  56. g_score
  57. d_score
  58. ]
  59.  
  60. ;définition des 4 races de robots (une race pour chaque camp)
  61. breed [h_robots h_robot]
  62. breed [b_robots b_robot]
  63. breed [g_robots g_robot]
  64. breed [d_robots d_robot]
  65.  
  66. breed [boxes box] ;les boites
  67.  
  68. ;chaque robots possède un numéro propre (id), connait la position de sa base (nest_x, nest_y) et peut porter une boite (charge)
  69. h_robots-own [id nest_x nest_y charge]
  70. b_robots-own [id nest_x nest_y charge]
  71. g_robots-own [id nest_x nest_y charge]
  72. d_robots-own [id nest_x nest_y charge]
  73.  
  74.  
  75. to setup
  76. clear-all
  77.  
  78. ;initialisation des variables
  79. set nb_robots 20
  80. set nb_boxes 600
  81.  
  82. set_existing_camp ;définition des camps existants
  83.  
  84. set h_score 0
  85. set b_score 0
  86. set g_score 0
  87. set d_score 0
  88.  
  89. set h_color blue
  90. set b_color green
  91. set g_color red
  92. set d_color yellow
  93.  
  94. set bordure 7
  95.  
  96. set bases [] ;sera rempli automatiquement par la commande create_camp
  97.  
  98. ;création de tous les robots
  99. if h_exist = true [ create_camp h_robots h_color (max-pxcor / 2) max-pycor ] ;camp du haut : blue
  100. if b_exist = true [ create_camp b_robots b_color (max-pxcor / 2) 0 ] ;camp du bas : green
  101. if g_exist = true [ create_camp g_robots g_color 0 (max-pxcor / 2) ] ;camp de gauche : red
  102. if d_exist = true [ create_camp d_robots d_color max-pxcor (max-pxcor / 2) ] ;camp de droite : yellow
  103.  
  104. ;création des boites
  105. create-boxes nb_boxes [
  106. set shape "square"
  107. setxy (random (max-pxcor - 2 * bordure) + bordure) (random (max-pycor - 2 * bordure) + bordure)
  108. set color pink
  109. ]
  110.  
  111. ;création de la bordure
  112. ask patches [
  113. if (pxcor >= bordure and pxcor <= (max-pxcor - bordure) and pycor >= bordure and pycor <= max-pycor - bordure)
  114. [set pcolor white]
  115. ]
  116.  
  117. fixe_team ;fixe les alias de chaque équipe
  118. end
  119.  
  120. ;commande de création des camps
  121. to create_camp [ race c_color b_x b_y]
  122. let num 0 ;compteur pour numéroter les robots
  123. let cptxouy (0 - (nb_robots / 2))
  124.  
  125. ;création de la base
  126. ask patch b_x b_y [set pcolor c_color]
  127. set bases lput (list c_color b_x b_y) bases ;on ajoute les paramêtres de cette base dans la variable globle bases
  128.  
  129. ;création des robots
  130. create-turtles nb_robots [
  131. set breed race
  132. set id num
  133. set num (num + 1)
  134. set nest_x b_x
  135. set nest_y b_y
  136. set charge false
  137. set color c_color
  138. set shape "empty_turtle"
  139.  
  140. ;position initiale du robot
  141. ifelse (c_color = h_color) [
  142. setxy (nest_x + cptxouy) (nest_y - (bordure / 2))
  143. set cptxouy (cptxouy + 1)
  144. ]
  145. [
  146. ifelse (c_color = b_color) [
  147. setxy (nest_x + cptxouy) (nest_y + (bordure / 2))
  148. set cptxouy (cptxouy + 1)
  149. ]
  150. [
  151. ifelse (c_color = g_color) [
  152. setxy (nest_x + (bordure / 2)) (nest_y + cptxouy)
  153. set cptxouy cptxouy + 1
  154. ]
  155. [
  156. if (c_color = d_color) [
  157. setxy (nest_x - (bordure / 2)) (nest_y + cptxouy)
  158. set cptxouy cptxouy + 1
  159. ]
  160. ]
  161. ]
  162. ]
  163. ]
  164. end
  165.  
  166. ;commande de déclenchement des cycles
  167. to GO
  168. run_all_team ;exécute le comportement de chaque équipe
  169.  
  170. tick
  171. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement