La lumière est un élément clé du jeu Minecraft. En voulant en savoir plus, j’ai réfléchi à un algorithme effectuant le même traitement en 2 dimensions. C’est ainsi qu’est né ce petit programme nommé Spread.
J’ai choisi ce nom (spread = répandre en anglais) car il s’agit de diffuser de la lumière, un fluide (ou que sais-je) sur une grille composée de cellules (analogie aux blocs de Minecraft). De plus, cet algorithme ressemble énormément à celui utilisé pour l’eau et la lave !
J’ai ajouté un petit plus à mon programme pour mieux comprendre son fonctionnement : il permet de visualiser l’évolution de l’algorithme en cours d’exécution (les étapes que l’on ne voit pas entre l’allumage de la lumière et son apparition).
Petit bugs
Sous Windows, certaines parties de la fenêtre se dessinent mal ou ne s’effacent pas. Cela est flagrant lorsque la fenêtre est mise en plein écran. Si vous laissez la fenêtre à ses dimensions d’origine, ça ne devrait pas gêner (le programme a été compilé sous Linux avec Eclipse et OpenJDK, il y a peut-être un défaut de compatibilité).