Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Fichier de définition du modèle
- ;Voir le panneau Information po
- ;;;;;;;;; Section a modifier pour affecter une équipe a un camp ;;;;;;;;;;;;;;;;;;;;;;;
- ;1) inclure les fichiers des comportements des équipes
- __includes [ "primitive.nls" "util.nls" "equipe_p.nls" "equipe_b.nls" "equipe_g.nls" "equipe_d.nls"]
- ;2) définir les alias de chaque équipe (association equipe X -> camp L ) :
- ; a- dans set_existing_camp, L_exist doit être positionné à true (false si le camp n'est pas utilisé)
- ; b- dans fixe_team, ajout de : set X_team L_robots
- to set_existing_camp
- set h_exist true
- set g_exist true
- set d_exist true
- set b_exist true
- end
- to fixe_team
- set p_team h_robots
- set b_team b_robots
- set g_team g_robots
- set d_team d_robots
- end
- ;3) code de lancement de chaque équipe => ajout X_run , pour chaque équipe X
- to run_all_team
- p_run
- b_run
- g_run
- d_run
- end
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- globals [
- nb_robots ;nbr total de robot par équipe
- nb_boxes ;nbr total de boite disposé dans l'evironnement
- bordure ;epaisseur de la bordure
- bases ;liste de tous les camps [ [color1 x1 y1] [color2 x2 y2] ...]
- ;existances des camps
- h_exist
- b_exist
- g_exist
- d_exist
- ;couleur de chaque camp
- h_color
- b_color
- g_color
- d_color
- ;score de chaque camp
- h_score
- b_score
- g_score
- d_score
- ]
- ;définition des 4 races de robots (une race pour chaque camp)
- breed [h_robots h_robot]
- breed [b_robots b_robot]
- breed [g_robots g_robot]
- breed [d_robots d_robot]
- breed [boxes box] ;les boites
- ;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)
- h_robots-own [id nest_x nest_y charge]
- b_robots-own [id nest_x nest_y charge]
- g_robots-own [id nest_x nest_y charge]
- d_robots-own [id nest_x nest_y charge]
- to setup
- clear-all
- ;initialisation des variables
- set nb_robots 20
- set nb_boxes 600
- set_existing_camp ;définition des camps existants
- set h_score 0
- set b_score 0
- set g_score 0
- set d_score 0
- set h_color blue
- set b_color green
- set g_color red
- set d_color yellow
- set bordure 7
- set bases [] ;sera rempli automatiquement par la commande create_camp
- ;création de tous les robots
- if h_exist = true [ create_camp h_robots h_color (max-pxcor / 2) max-pycor ] ;camp du haut : blue
- if b_exist = true [ create_camp b_robots b_color (max-pxcor / 2) 0 ] ;camp du bas : green
- if g_exist = true [ create_camp g_robots g_color 0 (max-pxcor / 2) ] ;camp de gauche : red
- if d_exist = true [ create_camp d_robots d_color max-pxcor (max-pxcor / 2) ] ;camp de droite : yellow
- ;création des boites
- create-boxes nb_boxes [
- set shape "square"
- setxy (random (max-pxcor - 2 * bordure) + bordure) (random (max-pycor - 2 * bordure) + bordure)
- set color pink
- ]
- ;création de la bordure
- ask patches [
- if (pxcor >= bordure and pxcor <= (max-pxcor - bordure) and pycor >= bordure and pycor <= max-pycor - bordure)
- [set pcolor white]
- ]
- fixe_team ;fixe les alias de chaque équipe
- end
- ;commande de création des camps
- to create_camp [ race c_color b_x b_y]
- let num 0 ;compteur pour numéroter les robots
- let cptxouy (0 - (nb_robots / 2))
- ;création de la base
- ask patch b_x b_y [set pcolor c_color]
- set bases lput (list c_color b_x b_y) bases ;on ajoute les paramêtres de cette base dans la variable globle bases
- ;création des robots
- create-turtles nb_robots [
- set breed race
- set id num
- set num (num + 1)
- set nest_x b_x
- set nest_y b_y
- set charge false
- set color c_color
- set shape "empty_turtle"
- ;position initiale du robot
- ifelse (c_color = h_color) [
- setxy (nest_x + cptxouy) (nest_y - (bordure / 2))
- set cptxouy (cptxouy + 1)
- ]
- [
- ifelse (c_color = b_color) [
- setxy (nest_x + cptxouy) (nest_y + (bordure / 2))
- set cptxouy (cptxouy + 1)
- ]
- [
- ifelse (c_color = g_color) [
- setxy (nest_x + (bordure / 2)) (nest_y + cptxouy)
- set cptxouy cptxouy + 1
- ]
- [
- if (c_color = d_color) [
- setxy (nest_x - (bordure / 2)) (nest_y + cptxouy)
- set cptxouy cptxouy + 1
- ]
- ]
- ]
- ]
- ]
- end
- ;commande de déclenchement des cycles
- to GO
- run_all_team ;exécute le comportement de chaque équipe
- tick
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement