lkdjiin's blog

Confessions d'un développeur.

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».

Le jeu de la vie en javascript - partie 1

| Comments

Niveau : intermédiaire

C’est parti pour le jeu de la vie version Javascript. Dans ce premier article nous allons créer une génération de cellules au hasard et l’afficher.

J’avais annoncé dans l’article précédent que je commencerais par la version Ruby/Opal. Je l’ai écrite mais je n’en suis pas satisfait. Les performances sont très pauvres et j’ai écrit plus de code que nécessaire. Je prendrais donc le temps de la nettoyer un peu avant de la publier.

Le jeu de la vie dans sept langages différents

| Comments

Niveau : intermédiaire

Je vais écrire le jeu de la vie dans 7 langages, et en utilisant le TDD (sauf pour l’affichage). Ça va me permettre de réviser certains langages et d’en apprendre de nouveaux d’une manière amusante. Après tout, quoi de plus fun qu’un jeu pour zéro joueur.

L’algorithme

L’idée directrice, c’est de faire au plus simple. L’algorithme général sera le suivant :

  1. obtenir une première génération au hasard
  2. afficher la génération
  3. calculer la nouvelle génération et retour au point 2.

Discutons un peu chacun des trois points.

Les tours de Hanoi - partie 3

| Comments

Niveau : intermédiaire

On commence à coder l’algorithme génétique pour solutionner les tours de Hanoi.

$ tree
.
├── ga.rb
├── lib
│   ├── hanoi
│   │   ├── board.rb
│   │   ├── game.rb
│   │   └── rules.rb
│   └── hanoi.rb
└── spec
    ├── board_spec.rb
    ├── game_spec.rb
    ├── integration
    │   └── game_spec.rb
    └── spec_helper.rb

Les tours de hanoi - partie 2

| Comments

Niveau : intermédiaire

Je termine l’implémentation de la mécanique du jeu, pour pouvoir passer ensuite à la construction de l’algorithme génétique.

$ tree
.
├── lib
│   ├── hanoi
│   │   ├── board.rb
│   │   ├── game.rb
│   │   └── rules.rb
│   └── hanoi.rb
└── spec
    ├── board_spec.rb
    ├── game_spec.rb
    ├── integration
    │   └── game_spec.rb
    └── spec_helper.rb

Les tours de Hanoi - partie 1

| Comments

Niveau : intermédiaire

Je vais commencer par implémenter une classe Board, dont la tâche est de retenir l’état du plateau de jeu, c’est à dire la position des pièces. J’ai envie de faire des tests avec Rspec, donc voici les premiers fichiers:

$ tree
.
├── board.rb
└── spec
    └── board_spec.rb