JSFiddle - React, Tailwind, and code Playground

JavaScript

let height = 50
let canvas = [
	"--------------------X--------------------"
]

for (let row = 1; row < height ; row++) {
	let workingLine = ""
	for (let column = 0; column < canvas[0].length; column++) {
  	let left = canvas[row - 1][column -1] || "-"
    let center = canvas[row - 1][column]
    let right = canvas[row - 1][column + 1] || "-";
    
    let lookup = left + center + right
    workingLine += lookup == "X--" || lookup == "--X" || lookup == "-XX" || lookup == "-X-" ? "X" : "-"
  }
  canvas.push(workingLine)
}

for (let line of canvas) {
	console.log(line)
}