CODEX Generated Game of Life

by swingpants

HTML

<!--
Instructions given to OpenAI CODEX

#Define a Javascript function which is “Conway’s Game Of Life”.
#Set field size to 600x600 and cell size to 4x4. Randomize the startup cells.
#The background is black and the cells are yellow, set in a grid.
#The game runs on a loop at 12 frames per second.
#Remove scrollbars from the display field.
#After 20 seconds the cells are randomized and the game loop is restarted.


-->

<html>
    <head>
        <script>
        document.addEventListener("DOMContentLoaded", function() {

function GameOfLife(grid) {
  var nextGrid = [];
  for (var i = 0; i < grid.length; i++) {
    nextGrid[i] = [];
    for (var j = 0; j < grid[i].length; j++) {
      nextGrid[i][j] = 0;
    }
  }
  for (var i = 0; i < grid.length; i++) {
    for (var j = 0; j < grid[i].length; j++) {
      var neighbors = 0;
      for (var k = -1; k <= 1; k++) {
        for (var l = -1; l <= 1; l++) {
          if (k === 0 && l === 0) {
            continue;
          }
          if (i + k >= 0 && i + k < grid.length && j + l >= 0 && j + l < grid[i].length) {
            if (grid[i + k][j + l] === 1) {
              neighbors++;
            }
          }
        }
      }
      if (neighbors < 2 || neighbors > 3) {
        nextGrid[i][j] = 0;
      } else if (neighbors === 3) {
        nextGrid[i][j] = 1;
      } else {
        nextGrid[i][j] = grid[i][j];
      }
    }
  }
  return nextGrid;
}

var fieldSize = 600;
var cellSize = 4;
var grid = [];
for (var i = 0; i < fieldSize / cellSize; i++) {
  grid[i] = [];
  for (var j = 0; j < fieldSize / cellSize; j++) {
    grid[i][j] = Math.random() > 0.5 ? 1 : 0;
  }
}

var canvas = document.createElement('canvas');
canvas.width = fieldSize;
canvas.height = fieldSize;
document.body.appendChild(canvas);
var ctx = canvas.getContext('2d');
ctx.fillStyle = 'black';
ctx.fillRect(0, 0, fieldSize, fieldSize);
for (var i = 0; i < fieldSize / cellSize; i++) {
  for (var j = 0; j < fieldSize / cellSize; j++) {
    if (grid[i][j]...