JSFiddle - React, Tailwind, and code Playground

JavaScript

function roll() {
    return Math.floor(Math.random() * 6) +1;
}

function play(luck) {
    let days = 0;
    let log = [];
    
    while (luck >= 0 && days < 1024) {
        days++;
        luck = resolve(luck, days, log);
    }

    log.push("You have survived " + days + " day(s)!");
    return log;
}

function resolve(luck, days, log) {
    const result = roll() + roll();

    log.push("Day: " + days + ", Luck: " + luck + ", Dice roll: " + result);

    switch (result) {
        case 12: luck += 2; break;
        case 11:
        case 10: luck += 1; break;
        case 9:
        case 8: break;
        case 7: {if (luck) {luck -= 1;} else {luck = resolve(luck, days, log); }}break;
        case 6:
        case 5: luck -= 1; break;
        case 4:
        case 3: luck -= 2; break;
        case 2: luck -= 3; break;
        default: break;
    }
    return luck;
}

const h1 = document.createElement('h1');
const btn = document.createElement('button');
const input = document.createElement('input');
const logs = document.createElement('div');

h1.innerHTML = '36 days later';
input.setAttribute('type', 'number');
input.setAttribute('min', 0);
input.setAttribute('max', 100);
input.setAttribute('step', 1);
input.setAttribute('placeholder', 'initial luck');
input.style = 'width: 6rem;';

btn.innerHTML = 'Let\'s survive!';

btn.addEventListener('click', () => {
    let luck = parseInt(input.value || 0);
	const log = play(luck);

    logs.innerHTML = '';

	log.forEach((line) => {
		const p = document.createElement('p');
		p.innerHTML = line;
		logs.appendChild(p);
  });
});

document.querySelector('body').appendChild(h1);
document.querySelector('body').appendChild(input);
document.querySelector('body').appendChild(btn)
document.querySelector('body').appendChild(logs);