Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // dans fonction EPOCH() : a++ et deplacement d'une case pour chaque perso
- // si perso sort grille = apparait de l'autre cote (a faire avec %)
- // perso peut pas bouger diago
- // dans fonction VERBOSITE() : (faire avec if?!)
- // valeur de 0 : aucun affichage
- // valeur de 1 : monde de départ et monde d'arrivée affichés
- // BAD : B(age)
- // LUNATICS : L(age)
- // STRAIGHTS : d(age)
- // > d = direction
- // - gauche : <
- // - droite : >
- // - haut : ^
- // - bas : v
- // valeur de 2 : monde après chaque époque doit être affiché
- // > nb epochs, nb lunatics, nb straights, nb bad
- // valeur de 3 : déplacement doit être indiqué ainsi que conséquences
- // > mort (tué ou vieillesse), reproduction
- //
- // méthode STATS() : resume l'information pertinente d'une simulation
- // a la fin d'une simulation
- //--------------------------------------
- //construction personnages
- var lunatics = {
- nb : 1,
- reproduction : 0.1,
- minAge : 10,
- maxAge : 110,
- minReprodAge : 18
- };
- var straights = {
- nb : 1,
- reproduction : 0.2,
- minAge : 20,
- maxAge : 100,
- minReprodAge : 25,
- };
- var bad = {
- nb : 1,
- minAge : 30,
- maxAge : 80,
- voisinage : 5,
- };
- // valeurs par defaut
- var nbLignes = 5;
- var nbColonnes = 10;
- var nbEpochs = 1;
- var verbosite = 0;
- // fonction epoch pour faire changer et bouger les persos
- //function epoch() :
- // fonction verbose pour determiner l'affichage des resultats
- var verbose = function(verbosite){
- var epoch = 0;
- if (verbosite = 1) {
- if (epoch = 0) {
- //print(//affichage des persos dans la grille);
- };
- if (epoch = nbEpochs) {
- //print(//affichage des persos dans la grille);
- };
- };
- if (verbosite = 2) {
- for (epoch =0 ; epoch <= nbEpochs; epoch++) {
- // print(//affichage des persos dans la grille);
- print("Epoch :" + epoch + " "
- + "Lunatics :" + nbLunatics + " "
- + "Straights :" + nbStraights + " "
- + "Bads :" + nbBads);
- };
- };
- if (verbosite = 3){
- for (epoch =0 ; epoch <= nbEpochs; epoch++) {
- //print(//affichage des persos dans la grille);
- print("Epoch :" + epoch + " "
- + "Lunatics :" + nbLunatics + " "
- + "Straights :" + nbStraights + " "
- + "Bads :" + nbBads);
- //print(//trace sur dernieres cases du perso);
- // print(//cause de mort de chaque perso, reproduction de chaque perso)
- };
- };
- };
- //creation constructeur Simulation
- var Simulation = function() {
- };
- // creation nouvelle partie
- // var game = new Simulation(){
- // }
- // creation d'une methode qui resume les statistiques
- //game.prototype.stats = function () {
- // print();
- //}
- print("yolomoutarde");
- /**
- * Cette fonction permet de contruire la grille (version code) où
- * les personnages vont se promener.
- */
- var creerGrille = function(width, heigth) {
- // On Crée les rangées.
- var rows = new Array(heigth);
- // On crée une série de colonnes et on les ajoute à la rangée <i>.
- for (var i = 0; i < heigth; i++) {
- // On insère les colonnes dans la <i>ème rangée.
- rows[i] = new Array(width);
- // Mettre à null toute la rangée.
- for (var j = 0; j < width; j++) {
- rows[i][j] = null;
- }
- }
- // On retourne une grille vide.
- return rows;
- };
- /**
- * Retourne un chaîne de caractères qui contiennent l'affichage
- * de la grille du monde impitoyable.
- */
- var dessinerGrille = function(grille, l, h){
- // Cette variable sera utilisée pour stocker tous les
- // caractères qui seront affichés pour visualiser la grille.
- var sortie;
- // Cette fonction nous aidera à afficher chaque case du tableau.
- function dessinerCase(c){
- // On ajoute le bon caractère qui correspondant au personnage
- // présent dans la case courante.
- var caseCourante = "";
- if (c != null)
- {
- if (c instanceof Lunatic) caseCourante += "L";
- else if (c instanceof Bad) caseCourante += "B";
- else {
- switch(c.direction){
- case 0: caseCourante += "^"; break;
- case 1: caseCourante += ">"; break;
- case 2: caseCourante += "v"; break;
- default:caseCourante += "<";
- }
- }
- // On ajoute l'âge et les espaces appropriés pour
- // que les cases aient toutes la même largeur.
- return caseCourante + "(" + c.age + ")"
- + " ".repeat(c.age<10 ? 2
- : c.age<100 ? 1
- : 0 ) + "|";
- }
- // Retourner une case vide, s'il n'y a aucun personnage à cette case.
- else return " |";
- }
- // Contruire la première rangée.
- sortie = " ";
- for (var i = 0; i < l; i++) {
- sortie
- += " " + i
- + " ".repeat(i<10 ? 4
- : i<100 ? 3
- : i<1000 ? 2
- : i<10000 ? 1 : 0);
- }
- // Construire les rangées une à une.
- for (var i=0; i<h; i++)
- {
- // On construit la première case d'une rangée.
- sortie += "\n" + i + " ".repeat(i<10 ? 4
- : i<100 ? 3
- : i<1000 ? 2
- : i<10000 ? 1 : 0) + " |";
- // Puis les cases une à une.
- for (var j=0; j<l; j++)
- sortie += dessinerCase(grille[i][j]);
- }
- // Retourne la chaîne de caractère représentant notre grille.
- return sortie;
- };
- //--------------------------------------------------------------------
- // Utilisation ...
- // Juste pour faire une démonstration, créons une largeur et une hauteur.
- var largeur = 5;
- var hauteur = 8;
- // On créer notre grille vide.
- var grille = creerGrille(largeur, hauteur);
- // On affiche la grille et son contenu.
- print(dessinerGrille(grille, largeur, hauteur));
- // creation fonction pour calculer duree de vie
- var ageMax = function (min,max){
- return Math.floor(Math.random()*(max-min +1)) + min;
- };
- // creation fonction pour calculer age min reproduction
- var ageReprod = function (min,ageMax) {
- };
- //creation du constructeur de lunatics
- var Lunatics = function(tauxReprod, ageReprod){
- this.tauxReprod = tauxReprod;
- this.ageMax = ageMax(10,110);
- //this.minAgeReprod = ageReprod(18,ageMax(10,110));
- this.age = 0;
- this.position = positionLunatic(largeur,hauteur);
- };
- var positionLunatic = function(largeur,hauteur) {
- for(var l=1; l<largeur.length; l++){
- var i = Math.floor(Math.random()*largeur);
- for(var h=1; h<hauteur.length; h++){
- var j = Math.floor(Math.random()*hauteur);
- }
- grille[i][j] = " L(age) |";
- }
- };
- // creation d'un nouveau lunatic
- var lunatic = new Lunatics(0.1, 6);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement