A simple Game of Life implementation in Java
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

55 lignes
1.7 KiB

  1. package edu.stuy.goldfish;
  2. import edu.stuy.goldfish.rules.*;
  3. public class Goldfish {
  4. private static final String[] RULES = {"Conway", "Conway4", "Life Without Death", "Brian's Brain"};
  5. private Grid _grid;
  6. private Render _render;
  7. public Goldfish() {
  8. int width = 128;
  9. int height = 128;
  10. _grid = new Grid(width, height);
  11. _render = new Render(width, height, _grid, RULES);
  12. }
  13. public void run() {
  14. setup();
  15. while (true) {
  16. if (!_render.paused) {
  17. String rule = _render.rule;
  18. if (rule.equals("Conway"))
  19. _grid = Conway.run(_grid);
  20. else if (rule.equals("Conway4"))
  21. _grid = Conway4.run(_grid);
  22. else if (rule.equals("Life Without Death"))
  23. _grid = LifeWithoutDeath.run(_grid);
  24. else if (rule.equals("Brian's Brain"))
  25. _grid = BriansBrain.run(_grid);
  26. }
  27. _render.setGrid(_grid);
  28. _render.run();
  29. _render.sleep();
  30. }
  31. }
  32. private void setup() {
  33. for (int i = 0; i < _grid.getWidth(); i += 16) {
  34. for (int j = 0; j < _grid.getHeight(); j += 16) {
  35. _grid.getPatch(i + 1, j + 0).setState(1);
  36. _grid.getPatch(i + 2, j + 1).setState(1);
  37. _grid.getPatch(i + 2, j + 2).setState(1);
  38. _grid.getPatch(i + 1, j + 2).setState(1);
  39. _grid.getPatch(i + 0, j + 2).setState(1);
  40. }
  41. }
  42. }
  43. public static void main(String[] args) {
  44. Goldfish g = new Goldfish();
  45. g.run();
  46. }
  47. }