У тебя не совсем верная логика в js
1. Ты инициализируешь cities внутри функции которую вызываешь при нажатии на кнопку => после выполнения функции просто теряешь данные.
2. var желательно не использовать в новом js, можно но он не так явно работает из за приколов с областью видимости и инициализацией, лучше использовать let или const.
3. Было близко, в своем коде ты получаешь последнее слово из массива cities, нужно так же по аналогии получить из него последнюю букву (пример в коде)
let cities = [];
function myGame() {
const input = document.getElementById('input_city');
const output = document.getElementById('output_city');
//Если массив пустой добавим 1е слово без всяких проверок.
if (!cities.length) {
console.log('Верно идем дальше');
cities.push(input.value);
input.value = ''
console.log(cities)
return
}
const lastCity = cities[cities.length - 1];
const lastLetter = lastCity[lastCity.length - 1];
const firstLetter = input.value.substr(0, 1); // первая буква слова
if (lastLetter.toLowerCase() === firstLetter.toLowerCase()) {
console.log('Верно идем дальше');
cities.push(input.value);
input.value = ''
} else {
console.log('Херня, давай сначала.')
}
console.log(cities);
}