Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 44

Игра в Города через массивы и циклы

15.05.2022, 23:23. Показов 2753. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите разобраться. Есть массив с городами, и окно prompt, куда нужно вписать свой вариант. Ответом должен быть город из массива, который начинается на последнюю букву из поля prompt. По принципу игры в города. Желательно как-то это реализовать с учётом самых базовых знаний по типу циклы.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.05.2022, 23:23
Ответы с готовыми решениями:

Через массивы и циклы
Доброго времени суток! Ребят, что вы думаете по этой задаче, как решить через массивы и циклы её? Вася и Петя учатся в школе в одном...

Игра в "Города", не могу сделать так что бы города компьютер называл на рандом а не по списку
Самая обычная игра в города, нужно назвать город на последнюю букву соверника, но проблема в том что, компьютер называет города по порядку,...

Проверка корректности введенного города игра "Города"
Здравствуйте, пишу программку "Города", т.е. пользователь называет какой-нибудь город, допустим, "Омск". Компьютер считывает...

3
242 / 107 / 43
Регистрация: 02.05.2019
Сообщений: 170
16.05.2022, 00:03
Лучший ответ Сообщение было отмечено klyapa как решение

Решение

Однострочник

JavaScript
1
let result = arr.find(a=> a.charAt(0) === prompt('Введите город').slice(-1));
Он же, развернутый

JavaScript
1
2
3
4
let firstCharOfPrompt = prompt('Введите город').slice(-1);
let result = arr.find(function(){
    return this.charAt(0) === firstCharOfPrompt;
});
Используется метод find, который находит первое совпадение в массиве по условию

Если опять for нужен, то можно так

JavaScript
1
2
3
4
5
6
7
let result = null;
for (let i = 0; i < arr.length; i++) {
    if (arr[i].charAt(0) === firstCharOfPrompt) {
        result = arr[i];
        break;
    }
}
Ну и итог

JavaScript
1
2
3
4
5
if (result) {
    alert(result);
} else {
    alert('Не найдено');
}
2
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 44
16.05.2022, 19:07  [ТС]
Спасибо за ответ) а чтобы цикл повторялся мне нужно использовать while(true) перед циклом for? И чтоб города не повторялись, мне нужно создать массив, для уже использованных городов?

Добавлено через 6 минут
И ещё вопрос небольшой.. как реализовать переход к следующей букве, если последняя буква Ъ Ь или Ы?

Добавлено через 2 минуты
что-то навертел, сам не могу понять что..


JavaScript
1
firstCharOfPrompt = firstCharOfPrompt.replace(/[ЪЬЫ] + $/ig, "")
0
242 / 107 / 43
Регистрация: 02.05.2019
Сообщений: 170
16.05.2022, 22:03
Лучший ответ Сообщение было отмечено ObamaFunk как решение

Решение

Цитата Сообщение от ObamaFunk Посмотреть сообщение
а чтобы цикл повторялся мне нужно использовать while(true) перед циклом for?
Можно так. Только надо сначала разработать логику приложения. While что? Пока не останется городов в массиве? Или что-то другое?

Цитата Сообщение от ObamaFunk Посмотреть сообщение
И чтоб города не повторялись, мне нужно создать массив, для уже использованных городов?
Для этого можно использовать метод splice. Он вернет нужное значение, и изменит исходный массив (сократит его).

Цитата Сообщение от ObamaFunk Посмотреть сообщение
что-то навертел, сам не могу понять что..
Это замена в соответствии с регулярным выражением.

К следующей букве можно перейти таким же методом или использовать другой charAt

JavaScript
1
2
3
let city = prompt('Введите город');
let lastCharOfEnteredCity = city.charAt(city.length - 1);
if (Array.from('ыъь').some(e => e === lastCharOfEnteredCity)) lastCharOfEnteredCity = city.charAt(city.length - 2);
Можно опять же с циклом for, но уже лень писать

JavaScript
1
2
3
4
let prohibitedChars = ['ы', 'ъ', 'ь'];
for (let i = 0; i < prohibitedChars.length; i++) {
    prohibitedChars[i] // буква
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2022, 22:03
Помогаю со студенческими работами здесь

Количество граждан некоторого города увеличивается ежегодно на В%. Через сколько лет население города возрастет в 2 раза
ЗАДАЧА Количество граждан некоторого города увеличивается ежегодно на В%. Через сколько лет население города возрастет в 2 раза, если...

Население города ежегодно увеличивается на 1/40 наличного состава жителей. Через сколько лет население города утроится?
Население города ежегодно увеличивается на 1/40 наличного состава жителей. Через сколько лет население города утроится? Нужно решить с...

Игра в города
Здравствуйте, условие задачи: вывести все возможные последовательности городов, которые удовлетворяют условию: последняя буква текущего...

Игра в города на С++
здраствуйте, мне нужна игра в города(Например: Москва-Архангельск, Архангельск-Казань и т.д), в которую можно было бы играть как Игрок vs...

Игра в города
Нужно реализовать в С++ Игра в города Условие задачи: Всем известны правила игры &quot;в города&quot;: первый игрок называет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru