Connect with us

Привет, что-то ищете?

The Times On Ru
  1. The Times On RU
  2. /
  3. Бизнес
  4. /
  5. Как ты называешь битву?

Бизнес

Как ты называешь битву?

Страсть американцев к именованию известна каждому. Американским военным это тоже нравится. Они официально дают собственные имена каждому новому типу самолетов, каждому новому типу танка! И каждый из более чем тысячи ядерных взрывов, проведенных США, тоже имел свое имя. Что уж говорить о названиях их боевых действий (Ъ уже рассказывал, как возникла эта традиция и кто ее позаимствовал). С некоторых пор операция без названия стала вообще не операцией. Но все помнят «Щит пустыни» или «Несокрушимую свободу».

Произошла ошибка при загрузке данных.

Вращайте барабан

    (functon(){(асинхронная функция() { const specalWords = { ‘орел’: ‘или’, ‘поддерживается’: ‘поддержка’, ‘гневный’: ‘гнев’, «смешанный»: «смешанный», ‘оператор’: ‘оператор’, }; const ntroWords = [{ Название: ‘…’ },]; константный интерфейс = { классHde: ‘hde’, classActive: ‘s_actve’, classCurrent: ‘s_current’, selectorSpnner: ‘.war_roulette_loader’, selectorError: ‘.war_roulette_error’, selectorWdget: ‘#js-roulette-wdget’, selectorContaner: ‘.war_roulette’, selectorTrgger: ‘.war_roulette__button’, selectorDsplay: ‘.war_roulette_dsplay’, selectorCylnder: ‘.war_roulette__cylnder’, tplBngo: ‘#js-roulette-bngo’, tplCard: ‘#js-рулетка-карта’, tplSlder: ‘#js-roulette-slder’, }; константное состояние = { формы: { 1: «Имя», 2: ‘ш’, 3: «ты», 4: «много» }, дом: { цилиндры: [], пули: [], }, данные: { прилагательные: [], существительные: [], операции: [], }, владелец: {}, спн: { sFrst: правда, цикл: {}, }, }; const fetchCatalogData = (d, lmt = 1000) => fetch(`https://wt.kommersant.ru/ap/v1/catalog/get?catalogId=${d}&start=0&lmt=${lmt}`) .then((res) => res.json()); const updateCatalogData = async () =>{ попробуй { const [adjCatalog, nounCatalog, opsCatalog] = awat Promse.all([ выборкакаталогданных(1332), выборкакаталогданных(1331), выборкакаталогданных(1333), ]); state.data.adjectves = […adjCatalog.data]; state.data.nouns = […nounCatalog.data]; state.data.operatons = […opsCatalog.data]; } поймать (ошибка) { throw new Error(‘Ошибка получения данных каталога’); } }; const getIntalY = (цилиндр) => { //Определяем значение смещения Y return Math.round((cylnder.clentHeght -state.spn.baseHeght)/2); }; const setIntalSze = () =>{ const tem = state.dom.contaner.querySelector(‘.war_roulette__ramp’); state.spn.gap = parseFloat(wndow.getComputedStyle(tem).margnBottom); //Определяем размер карты после рендеринга state.spn.baseHeght = tem.getBoundngClentRect().heght; state.spn.temHeght = state.spn.baseHeght + state.spn.gap; //Определяем размер всех карт за 1 цикл барабана state.spn.cycle.adj = state.data.adjectves.length * state.spn.temHeght; state.spn.cycle.noun = state.data.nouns.length * state.spn.temHeght; }; const setIntalPoston = () => { //Смещаем центр вверх на 1 входную карточку «…» const centerY = getIntalY(state.dom.cylnders[0]) — state.spn.temHeght; state.dom.bullets[0].style.transform = `translateY(${centerY}px)`; state.dom.bullets[1].style.transform = `translateY(${centerY}px)`; }; const createItem = (слово) =>{ const tem = document.createElement(‘l’); tem.className = ‘war_roulette__ramp’; tem.textContent = слово.Имя; возврат тем; }; const renderCylnder = (цилиндр, слова, цилиндриндекс) => { const Bullets = document.createElement(‘ul’); Bullets.className = ‘war_roulette__bullets’; Bullets.setAttrbute(‘роль’, ‘lst’); //Добавляем дубликат последнего элемента в начало списка Bullets.nsertAdjacentElement(‘afterbegn’, createItem(words[words.length — 1])); //Добавляем элементы в список const фрагмент = document.createDocumentFragment(); words.forEach((word, ) =>{ const tem = createItem (слово); фрагмент.appendChld(createItem(слово)); }); Bullets.appendChld(фрагмент); //Добавляем дубликат первого элемента в конец списка Bullets.append(createItem(words[0])); state.dom.bullets[cylnderIndex] = пули; цилиндр.appendChld(пули); }; const renderAllCylnders = (wordSets) => { state.dom.cylnders.forEach((цилиндр, ) => { renderCylnder(цилиндр, wordSets[], ); }); state.dom.adjItems = state.dom.bullets[0].querySelectorAll(‘l’); state.dom.nounItems = state.dom.bullets[1].querySelectorAll(‘l’); }; constclearAllCylnders = () => { state.dom.cylnders.forEach((c) => c.textContent = »); }; const spnCylnder = (lst, цикл, барабан, длительность, extraCycles, stopIndex) => { вернуть новое обещание((решить) =>{ const start = Performance.now(); const ntalY = getIntalY(reel) -state.spn.temHeght; const totalDstance = extraCycles * цикл; const fnalPos = ntalY — (stopIndex *state.spn.temHeght); const startPos = fnalPos — totalDstance; константный шаг = (сейчас) =>{ const t = Math.mn(1, (теперь — старт)/duraton); const облегченный = 1 — Math.pow(1 — t, 5); const dstance = totalDstance * облегчено; constturnPos = startPos + dstance; const vsualPos = ntalY — ((ntalY -turnPos + totalDstance) % цикла); lst.style.transform = `translateY(${vsualPos}px)`; е (т < 1) { requestAnmatonFrame (шаг); } еще { lst.style.transform = `translateY(${Math.round(fnalPos)}px)`; решать(); } }; requestAnmatonFrame (шаг); }); }; const pckWnner = () => { const wnnerNounIndex = Math.floor(Math.random() * state.data.nouns.length); state.wnner.noun = state.data.nouns[wnnerNounIndex]; state.wnner.noun.ndex = wnnerNounIndex; const wnnerAdjIndex = Math.floor(Math.random() * state.data.adjectves.length); state.wnner.adj = state.data.adjectves[wnnerAdjIndex]; state.wnner.adj.ndex = wnnerAdjIndex; state.wnner.adj.form = state.wnner.adj[state.forms[state.wnner.noun.form]]; }; const getBaseWord = (слово) => { const wordLower = word.toLowerCase(); f (specalWords[wordLower]) return specalWords[wordLower]; переключатель (истина) { случай wordLower.length >= 7: вернуть wordLower.slce(0, -3); регистр wordLower.length >4: вернуть wordLower.slce(0, -2); случай wordLower.length === 4: вернуть wordLower.slce(0, -1); по умолчанию: вернуть словоLower; } }; const formatDescrpton = (targetId, ключ, слово) => { const formattedOps = state.data.operatons.reduce((acc, op) => { f (op[key] === targetId) { acc.push(op.descrpton); } возврат акк; }, []); константная база = getBaseWord (слово); const regex = new RegExp(`«[^»]*(${base})[^»]*»`, ‘g’); return formattedOps.map((text) => text.replace(regex, (match) => { return `»${match.slce(1, -1)}«`; })); }; const генерироватьDescrpton = () =>{ state.wnner.adj.desc = formatDescrpton(state.wnner.adj.Id, ‘wordI’, state.wnner.adj.Name); state.wnner.noun.desc = formatDescrpton(state.wnner.noun.Id, ‘wordII’, state.wnner.noun.Name); state.wnner.bngo = state.data.operatons.fnd((op) => op.wordI === state.wnner.adj.Id && op.wordII === state.wnner.noun.Id ) || нулевой; state.wnner.sBngo = state.wnner.bngo !== null; }; const createDescrptonSlder = (content, meda) => { const slder = state.dom.slder.content.cloneNode(true).querySelector(‘.war_roulette_slder’); const Canvas = slder.querySelector(‘.war_roulette_slder__canvas’); content.forEach((текст) =>{ const tem = document.createElement(‘l’); tem.className = ‘war_roulette_slder__tem slder-tem’; tem.setAttrbute(‘tabndex’, 0); tem.nnerHTML = текст; холст.append(тем); }); f(content.length > 1) { const nav = slder.querySelector(‘.war_roulette_slder__nav’); nav.classLst.remove(UI.classHde); } meda.append(slder); }; const renderDescrpton = (дескриптор) =>{ е (state.wnner.sBngo) { const bngoItem = state.dom.bngo.content.cloneNode(true).querySelector(‘.war_roulette_dsplay__bngo’); const bngoTtle = bngoItem.querySelector(‘.war_roulette_dsplay__bngo_ttle’); bngoTtle.textContent = `»${state.wnner.adj.form} ${state.wnner.noun.Name}»`; const bngoText = bngoItem.querySelector(‘.war_roulette_dsplay__bngo_text’); bngoText.nnerHTML = state.wnner.bngo.descrpton; state.dom.dsplay.append(bngoItem); } еще { const medaItem = state.dom.card.content.cloneNode(true).querySelector(‘.war_roulette_dsplay__frame’); createDescrptonSlder(state.wnner.adj.desc, medaItem); createDescrptonSlder(state.wnner.noun.desc, medaItem); state.dom.dsplay.append(medaItem); } state.dom.dsplay.classLst.remove(UI.classHde); Wndow.kommersant.nt(); }; const setCurrBullets = (adjIndex = 1, nounIndex = 1) => { state.dom.adjItems[adjIndex].classLst.add(UI.classCurrent); state.dom.nounItems[nounIndex].classLst.add(UI.classCurrent); }; constclearCurrBullets = () => { state.dom.contaner.querySelectorAll(`.${UI.classCurrent}`).forEach((b) => b.classLst.remove(UI.classCurrent)); }; const handleTrggerClck = async () =>{ state.dom.trgger.dsabled = правда; е (state.spn.sFrst) { ОчиститьВсецилиндры(); renderAllCylnders([state.data.adjectves, state.data.nouns]); state.spn.sFrst = ложь; } pckWnner(); генерироватьDescrpton(); state.dom.adjItems[state.wnner.adj.ndex + 1].textContent = state.wnner.adj.form; попробуй { ClearCurrBullets(); state.dom.contaner.classLst.add(UI.classActve); state.dom.dsplay.classLst.add(UI.classHde); state.dom.dsplay.textContent = »; awatPromse.all([ spnCylnder(state.dom.bullets[0],state.spn.cycle.adj,state.dom.cylnders[0], 3000, 1,state.wnner.adj.ndex), spnCylnder(state.dom.bullets[1],state.spn.cycle.noun,state.dom.cylnders[1], 3000, 1,state.wnner.noun.ndex), ]); state.dom.contaner.classLst.remove(UI.classActve); setCurrBullets(state.wnner.adj.ndex + 1, state.wnner.noun.ndex + 1); рендерDescrpton(); } наконец { state.dom.trgger.dsabled = ложь; } }; const ntWdget = асинхронный () =>{ state.dom.wdget = document.querySelector(UI.selectorWdget); f (!state.dom.wdget) return; state.dom.bngo = document.querySelector(UI.tplBngo); state.dom.card = document.querySelector(UI.tplCard); state.dom.slder = document.querySelector(UI.tplSlder); state.dom.spnner = document.querySelector(UI.selectorSpnner); state.dom.errorMsg = document.querySelector(UI.selectorError); state.dom.contaner = state.dom.wdget.querySelector(UI.selectorContaner); state.dom.trgger = state.dom.wdget.querySelector(UI.selectorTrgger); state.dom.dsplay = state.dom.wdget.querySelector(UI.selectorDsplay); state.dom.cylnders = […state.dom.wdget.querySelectorAll(UI.selectorCylnder)]; попробуй { awat updateCatalogData(); renderAllCylnders([ntroWords, ntroWords]); setCurrBullets(); setTmeout(() => { УстановитьИнталРазмер(); установитьИнталПостон(); }, 0); state.dom.contaner.classLst.remove(UI.classHde); state.dom.trgger.addEventLstener(‘clck’, handleTrggerClck); state.dom.errorMsg.remove(); } поймать (ошибка) { console.log(error.message); state.dom.errorMsg.classLst.remove(UI.classHde); } наконец { state.dom.spnner.remove(); } }; нтВджет(); })();})()

    Обобщив мировой опыт, «Коммерсантъ» предлагает вам свой «Автоматический неймер». Если вы готовы к собственной военной операции, крутите барабан и получите красивое имя для своего порыва. Инструмент пригодится и в мирных целях: если вам срочно нужно переименовать рок-группу или арт-кластер.

    В США давно создана специальная компьютерная система для записи кодовых слов, условных названий и названий упражнений — NICKA (от англ. Nckname Assgnment). Согласно этой системе, милитаронимы составляются из двух слов так, чтобы сочетание не носило оскорбительного или уничижительного характера, а, наоборот, формировало положительное общественное мнение.

    Оставить комментарий

    Leave a Reply

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Стоит Посмотреть


    Стоит Посмотреть

    Новости По Дате

    Июль 2026
    Пн Вт Ср Чт Пт Сб Вс
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  

    Вам может быть интересно:

    Бизнес

    С 17 по 18 июня 2026 года ЛАНИТ примет участие в XV юбилейном мероприятии по инновационным технологиям решения бизнес-задач TECH WEEK 2026. На конференции...

    Общество

    Заглянем за МКАД: чем дышит Россия сегодня? Журналисты «Московского комсомольца» в 78 регионах России внимательно следят за всем, что происходит в стране, – от...

    Бизнес

    Почта России запустила новую услугу «Защита посылок» для писем и отправлений 1 класса и «Стандарт». Теперь клиенты компании могут подтвердить надежность доставки отправлений благодаря...

    Общество

    ТАСС: с въехавшим в толпу в Екатеринбурге проводят следственные мероприятия Фото: Лилия Шарловская По данным ТАСС, правоохранительные органы устанавливают обстоятельства произошедшего с водителем автобуса,...