lkdjiin's blog

Confessions d'un développeur.

Le jeu de la vie en logo - partie 2

| Comments

Niveau : intermédiaire

Cette fois, on affiche la génération de cellules crée la dernière fois. J’ai déjà eu l’occasion de dire que Logo était spécial, on va voir avec son système graphique que c’est bien le cas. Je ne vais pas parler de la métaphore de la tortue, vous trouverez sûrement des ressources là-dessus. Je voudrais plutôt parler du système de coordonnée. Alors que dans la plupart des langages (tous ?) les systèmes graphiques proposent de placer le point d’origine (0, 0) en haut à gauche, Logo le place au centre. En général, l’axe des y croit vers le bas, en Logo il croit vers le haut.

Selon le manuel d’UCBLogo, voici à quoi s’attendre:

(-100, 100)            (100, 100)

              (0, 0)

(-100, -100)           (100, -100)

Le jeu de la vie en logo - partie 1

| Comments

Niveau : intermédiaire

C’est parti pour la version Logo du jeu de la vie. J’utiliserais ucblogo en version 5.5, qui est celle qu’on trouve dans les paquets Debian. Sur leur site vous trouverez la version 6, si vous souhaitez la compiler.

$ logo
Welcome to Berkeley Logo version 5.5

Introduction

Attention ! Le monde de Logo est autre. Je n’ai pas d’autres formules qui me viennent à l’esprit. Si vous utilisez Vim, j’ai écrit un fichier de coloration syntaxique pour Logo, minimal, mais toujours utile pour ne pas se sentir coincé dans les années 80. Et comme il n’existe pas de frameworks de test (ou alors ils sont bien cachés), j’en ai écrit un rudimentaire : Logo unit test.

Bref, vous aurez compris que l’éco-système Logo open source est assez pauvre, voir inexistant. Je crois qu’il n’y a même pas de tag logo sur stackoverflow.

Le jeu de la vie en ruby (opal) - partie 2

| Comments

Niveau : intermédiaire

Deuxième partie du jeu de la vie en Ruby/Opal.rb, on va calculer le prochain état d’une cellule, et extraire un voisinage de cellules d’une génération. Après l’avoir écrit en Javascript, j’avoue que cette partie est quelque peu ennuyeuse à reproduire. Je vais montrer du code, mais il y aura peu d’explications, la logique étant la même qu’en Javascript (quoiqu’à base de classes cette fois-ci).

Le jeu de la vie en javascript - partie 3

| Comments

Niveau : intermédiaire

C’est le moment de mettre ensemble tous les éléments codés jusqu’ici pour contempler le jeu de la vie s’épanouir devant nos yeux. Seulement je n’ai pas d’idée claire sur la manière dont ça peut-être fait en javascript, et même sur les problèmes que ça pourrait poser, et encore moins sur la manière de tester ça avec Jasmine.

Le TDD n’est pas une religion ! Ce n’est pas un précepte qu’on suit aveuglement. On peut, et on doit, le questionner. Comment écrire un test quand on n’a pas la moindre idée du problème à résoudre ?

Le jeu de la vie en javascript - partie 2

| Comments

Niveau : intermédiaire

Précédement nous avons écrit une fonction pour produire une génération de cellules au hasard. Nous allons aujourd’hui afficher une telle génération. Je veux maintenant calculer le prochain état d’une cellule, en fonction de son voisinage. Pour rappel:

  • Si la somme des 9 cellules du voisinage est 3, le nouvel état est «vivant».
  • Si la somme des 9 cellules du voisinage est 4, le nouvel état est le même que l’ancien.
  • Dans tous les autres cas, le nouvel état est «mort».