Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.92 KB | None | 0 0
  1.  
  2.  
  3. // dans fonction EPOCH() : a++ et deplacement d'une case pour chaque perso
  4. // si perso sort grille = apparait de l'autre cote (a faire avec %)
  5. // perso peut pas bouger diago
  6.  
  7. // dans fonction VERBOSITE() : (faire avec if?!)
  8. // valeur de 0 : aucun affichage
  9. // valeur de 1 : monde de départ et monde d'arrivée affichés
  10. // BAD : B(age)
  11. // LUNATICS : L(age)
  12. // STRAIGHTS : d(age)
  13. // > d = direction
  14. // - gauche : <
  15. // - droite : >
  16. // - haut : ^
  17. // - bas : v
  18. // valeur de 2 : monde après chaque époque doit être affiché
  19. // > nb epochs, nb lunatics, nb straights, nb bad
  20. // valeur de 3 : déplacement doit être indiqué ainsi que conséquences
  21. // > mort (tué ou vieillesse), reproduction
  22.  
  23. //
  24.  
  25. // méthode STATS() : resume l'information pertinente d'une simulation
  26. // a la fin d'une simulation
  27.  
  28.  
  29. //--------------------------------------
  30.  
  31.  
  32.  
  33. //construction personnages
  34.  
  35. var lunatics = {
  36. nb : 1,
  37. reproduction : 0.1,
  38. minAge : 10,
  39. maxAge : 110,
  40. minReprodAge : 18
  41. };
  42.  
  43. var straights = {
  44. nb : 1,
  45. reproduction : 0.2,
  46. minAge : 20,
  47. maxAge : 100,
  48. minReprodAge : 25,
  49. };
  50.  
  51. var bad = {
  52. nb : 1,
  53. minAge : 30,
  54. maxAge : 80,
  55. voisinage : 5,
  56. };
  57.  
  58. // valeurs par defaut
  59.  
  60. var nbLignes = 5;
  61. var nbColonnes = 10;
  62. var nbEpochs = 1;
  63. var verbosite = 0;
  64.  
  65.  
  66.  
  67. // fonction epoch pour faire changer et bouger les persos
  68.  
  69. //function epoch() :
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76. // fonction verbose pour determiner l'affichage des resultats
  77.  
  78. var verbose = function(verbosite){
  79.  
  80. var epoch = 0;
  81.  
  82. if (verbosite = 1) {
  83. if (epoch = 0) {
  84. //print(//affichage des persos dans la grille);
  85. };
  86.  
  87. if (epoch = nbEpochs) {
  88. //print(//affichage des persos dans la grille);
  89. };
  90. };
  91.  
  92. if (verbosite = 2) {
  93. for (epoch =0 ; epoch <= nbEpochs; epoch++) {
  94. // print(//affichage des persos dans la grille);
  95. print("Epoch :" + epoch + " "
  96. + "Lunatics :" + nbLunatics + " "
  97. + "Straights :" + nbStraights + " "
  98. + "Bads :" + nbBads);
  99. };
  100. };
  101.  
  102. if (verbosite = 3){
  103. for (epoch =0 ; epoch <= nbEpochs; epoch++) {
  104. //print(//affichage des persos dans la grille);
  105. print("Epoch :" + epoch + " "
  106. + "Lunatics :" + nbLunatics + " "
  107. + "Straights :" + nbStraights + " "
  108. + "Bads :" + nbBads);
  109. //print(//trace sur dernieres cases du perso);
  110. // print(//cause de mort de chaque perso, reproduction de chaque perso)
  111. };
  112. };
  113.  
  114.  
  115.  
  116. };
  117.  
  118.  
  119.  
  120. //creation constructeur Simulation
  121.  
  122. var Simulation = function() {
  123. };
  124.  
  125.  
  126.  
  127.  
  128. // creation nouvelle partie
  129. // var game = new Simulation(){
  130.  
  131. // }
  132.  
  133.  
  134.  
  135. // creation d'une methode qui resume les statistiques
  136.  
  137. //game.prototype.stats = function () {
  138. // print();
  139.  
  140. //}
  141.  
  142. print("yolomoutarde");
  143.  
  144. /**
  145. * Cette fonction permet de contruire la grille (version code) où
  146. * les personnages vont se promener.
  147. */
  148. var creerGrille = function(width, heigth) {
  149.  
  150. // On Crée les rangées.
  151. var rows = new Array(heigth);
  152.  
  153. // On crée une série de colonnes et on les ajoute à la rangée <i>.
  154. for (var i = 0; i < heigth; i++) {
  155.  
  156. // On insère les colonnes dans la <i>ème rangée.
  157. rows[i] = new Array(width);
  158.  
  159. // Mettre à null toute la rangée.
  160. for (var j = 0; j < width; j++) {
  161. rows[i][j] = null;
  162. }
  163. }
  164.  
  165. // On retourne une grille vide.
  166. return rows;
  167. };
  168.  
  169.  
  170. /**
  171. * Retourne un chaîne de caractères qui contiennent l'affichage
  172. * de la grille du monde impitoyable.
  173. */
  174. var dessinerGrille = function(grille, l, h){
  175.  
  176. // Cette variable sera utilisée pour stocker tous les
  177. // caractères qui seront affichés pour visualiser la grille.
  178. var sortie;
  179.  
  180. // Cette fonction nous aidera à afficher chaque case du tableau.
  181. function dessinerCase(c){
  182.  
  183. // On ajoute le bon caractère qui correspondant au personnage
  184. // présent dans la case courante.
  185. var caseCourante = "";
  186. if (c != null)
  187. {
  188. if (c instanceof Lunatic) caseCourante += "L";
  189. else if (c instanceof Bad) caseCourante += "B";
  190. else {
  191. switch(c.direction){
  192. case 0: caseCourante += "^"; break;
  193. case 1: caseCourante += ">"; break;
  194. case 2: caseCourante += "v"; break;
  195. default:caseCourante += "<";
  196. }
  197. }
  198.  
  199. // On ajoute l'âge et les espaces appropriés pour
  200. // que les cases aient toutes la même largeur.
  201. return caseCourante + "(" + c.age + ")"
  202. + " ".repeat(c.age<10 ? 2
  203. : c.age<100 ? 1
  204. : 0 ) + "|";
  205. }
  206.  
  207. // Retourner une case vide, s'il n'y a aucun personnage à cette case.
  208. else return " |";
  209. }
  210.  
  211. // Contruire la première rangée.
  212. sortie = " ";
  213. for (var i = 0; i < l; i++) {
  214. sortie
  215. += " " + i
  216. + " ".repeat(i<10 ? 4
  217. : i<100 ? 3
  218. : i<1000 ? 2
  219. : i<10000 ? 1 : 0);
  220. }
  221.  
  222. // Construire les rangées une à une.
  223. for (var i=0; i<h; i++)
  224. {
  225. // On construit la première case d'une rangée.
  226. sortie += "\n" + i + " ".repeat(i<10 ? 4
  227. : i<100 ? 3
  228. : i<1000 ? 2
  229. : i<10000 ? 1 : 0) + " |";
  230.  
  231. // Puis les cases une à une.
  232. for (var j=0; j<l; j++)
  233. sortie += dessinerCase(grille[i][j]);
  234. }
  235.  
  236. // Retourne la chaîne de caractère représentant notre grille.
  237. return sortie;
  238. };
  239.  
  240. //--------------------------------------------------------------------
  241. // Utilisation ...
  242.  
  243. // Juste pour faire une démonstration, créons une largeur et une hauteur.
  244. var largeur = 5;
  245. var hauteur = 8;
  246.  
  247. // On créer notre grille vide.
  248. var grille = creerGrille(largeur, hauteur);
  249.  
  250.  
  251.  
  252.  
  253.  
  254. // On affiche la grille et son contenu.
  255. print(dessinerGrille(grille, largeur, hauteur));
  256.  
  257.  
  258.  
  259.  
  260. // creation fonction pour calculer duree de vie
  261.  
  262. var ageMax = function (min,max){
  263. return Math.floor(Math.random()*(max-min +1)) + min;
  264. };
  265.  
  266. // creation fonction pour calculer age min reproduction
  267. var ageReprod = function (min,ageMax) {
  268.  
  269. };
  270.  
  271.  
  272.  
  273. //creation du constructeur de lunatics
  274.  
  275. var Lunatics = function(tauxReprod, ageReprod){
  276.  
  277. this.tauxReprod = tauxReprod;
  278. this.ageMax = ageMax(10,110);
  279. //this.minAgeReprod = ageReprod(18,ageMax(10,110));
  280. this.age = 0;
  281. this.position = positionLunatic(largeur,hauteur);
  282.  
  283.  
  284. };
  285.  
  286. var positionLunatic = function(largeur,hauteur) {
  287.  
  288. for(var l=1; l<largeur.length; l++){
  289. var i = Math.floor(Math.random()*largeur);
  290. for(var h=1; h<hauteur.length; h++){
  291. var j = Math.floor(Math.random()*hauteur);
  292. }
  293. grille[i][j] = " L(age) |";
  294. }
  295.  
  296. };
  297.  
  298. // creation d'un nouveau lunatic
  299.  
  300. var lunatic = new Lunatics(0.1, 6);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement