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  

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

    Политика

    Вучич: Сербия ничего не потеряла из-за визита Зеленского Сгенерировано нейросетью Qwen, Дмитрий Ларин Александр Вучич, президент Сербии, ответил на критику со стороны политических противников,...

    Технологии

    Краткий пересказ от РИА ИИ Россия разработала линейку отечественных лазерных комплексов для борьбы с беспилотниками. Один из таких комплексов за месяц сбил почти 60 дронов...

    Общество

    Мощное землетрясение в Японии вызвало больше 150 повторных толчков Shatokhina Natalia/news.ru/Global Look Press В районе префектуры Кумамото на японском острове Кюсю после основного землетрясения...

    Технологии

    На НПП «Звезда» отпраздновали 100-летие Гая Северина: воспоминания коллег Космонавты Светлана Савицкая, Владимир Джанибеков, Федор Юрчихин, Александр Мисуркин, мастер высшего пилотажа Светлана Капанина… Все...