daily pastebin goal
59%
SHARE
TWEET

Untitled

a guest May 19th, 2017 45 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top