{"id":883,"date":"2025-09-10T17:45:22","date_gmt":"2025-09-10T14:45:22","guid":{"rendered":"http:\/\/bantv.ru\/?page_id=883"},"modified":"2025-09-10T17:47:30","modified_gmt":"2025-09-10T14:47:30","slug":"%d0%bd%d0%b0%d1%88-%d1%80%d0%b0%d0%bd%d0%b4%d0%be%d0%bc%d0%b0%d0%b9%d0%b7%d0%b5%d1%80","status":"publish","type":"page","link":"https:\/\/bantv.ru\/?page_id=883","title":{"rendered":"\u041d\u0430\u0448 \u0420\u0430\u043d\u0434\u043e\u043c\u0430\u0439\u0437\u0435\u0440"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"883\" class=\"elementor elementor-883\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7f4385a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7f4385a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d77f834\" data-id=\"d77f834\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3cb3c29 elementor-widget elementor-widget-html\" data-id=\"3cb3c29\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"ru\">\r\n<head>\r\n  <meta charset=\"UTF-8\">\r\n  <title>Glass 3D \u2014 \u0420\u0430\u043d\u0434\u043e\u043c\u0430\u0439\u0437\u0435\u0440 \u0447\u0438\u0441\u0435\u043b<\/title>\r\n  <style>\r\n    body {\r\n      margin: 0;\r\n      padding: 0;\r\n      font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\r\n      background: linear-gradient(135deg, #0f2027, #203a43, #2c5364);\r\n      color: #111;\r\n      display: flex;\r\n      justify-content: center;\r\n      align-items: center;\r\n      height: 100vh;\r\n      transition: background 0.5s, color 0.5s;\r\n    }\r\n    body.light {\r\n      background: linear-gradient(135deg, #ece9e6, #ffffff);\r\n      color: #222;\r\n    }\r\n    .card {\r\n      background: rgba(255, 255, 255, 0.1);\r\n      border-radius: 20px;\r\n      padding: 2rem;\r\n      width: 1000px;\r\n      backdrop-filter: blur(25px) saturate(180%);\r\n      -webkit-backdrop-filter: blur(25px) saturate(180%);\r\n      border: 1px solid rgba(255, 255, 255, 0.3);\r\n      box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);\r\n      text-align: center;\r\n      color: inherit;\r\n      position: relative;\r\n      overflow: hidden;\r\n    }\r\n    h1 {\r\n      font-size: 1.4rem;\r\n      margin-bottom: 1rem;\r\n      text-shadow: 0 2px 4px rgba(0,0,0,0.4);\r\n    }\r\n    label {\r\n      display: block;\r\n      margin: 0.5rem 0 0.2rem;\r\n      font-weight: bold;\r\n      text-align: left;\r\n    }\r\n    input, select {\r\n      width: 100%;\r\n      padding: 0.6rem;\r\n      border-radius: 10px;\r\n      border: none;\r\n      outline: none;\r\n      margin-bottom: 0.7rem;\r\n      background: rgba(255, 255, 255, 0.2);\r\n      color: #000;\r\n    }\r\n    body.dark input {\r\n      color: #fff;\r\n    }\r\n    input[type=range] {\r\n      accent-color: #6a5acd;\r\n    }\r\n    .btn {\r\n      padding: 0.8rem 1.5rem;\r\n      margin: 0.5rem;\r\n      border: none;\r\n      border-radius: 12px;\r\n      background: linear-gradient(135deg, #6a5acd, #00c6ff);\r\n      color: #fff;\r\n      font-weight: bold;\r\n      cursor: pointer;\r\n      transition: transform 0.2s, box-shadow 0.2s;\r\n    }\r\n    .btn:hover {\r\n      transform: translateY(-3px);\r\n      box-shadow: 0 0 15px rgba(0, 198, 255, 0.8), 0 0 25px rgba(106, 90, 205, 0.8);\r\n    }\r\n    .result {\r\n      margin-top: 1rem;\r\n      padding: 1rem;\r\n      border-radius: 12px;\r\n      background: rgba(255, 255, 255, 0.2);\r\n      min-height: 50px;\r\n      font-size: 1.2rem;\r\n      display: flex;\r\n      justify-content: center;\r\n      align-items: center;\r\n      flex-wrap: wrap;\r\n      gap: 10px;\r\n    }\r\n    .history {\r\n      margin-top: 1rem;\r\n      text-align: left;\r\n      font-size: 0.9rem;\r\n    }\r\n    .theme-toggle {\r\n      position: absolute;\r\n      top: 15px;\r\n      right: 15px;\r\n      cursor: pointer;\r\n      font-size: 1.2rem;\r\n      background: rgba(255,255,255,0.2);\r\n      border-radius: 50%;\r\n      padding: 8px;\r\n    }\r\n    canvas {\r\n      margin-top: 1rem;\r\n      width: 100% !important;\r\n      height: 120px !important;\r\n    }\r\n    .number {\r\n      background: rgba(255,255,255,0.25);\r\n      padding: 8px 14px;\r\n      border-radius: 50%;\r\n      font-weight: bold;\r\n      box-shadow: 0 3px 10px rgba(0,0,0,0.2);\r\n      transform: scale(0);\r\n      animation: flyIn 0.5s forwards;\r\n    }\r\n    @keyframes flyIn {\r\n      from { transform: translateY(50px) scale(0); opacity: 0; }\r\n      to { transform: translateY(0) scale(1); opacity: 1; }\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body class=\"dark\">\r\n  <div class=\"card\">\r\n    <div class=\"theme-toggle\" onclick=\"toggleTheme()\">\ud83c\udf13<\/div>\r\n    <h1>Glass 3D \u2014 \u0420\u0430\u043d\u0434\u043e\u043c\u0430\u0439\u0437\u0435\u0440 \u0447\u0438\u0441\u0435\u043b<\/h1>\r\n    \r\n    <label>\u041c\u0438\u043d\u0438\u043c\u0443\u043c<\/label>\r\n    <input type=\"number\" id=\"min\" value=\"1\">\r\n    \r\n    <label>\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c<\/label>\r\n    <input type=\"number\" id=\"max\" value=\"100\">\r\n    \r\n    <label>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0447\u0438\u0441\u0435\u043b<\/label>\r\n    <input type=\"range\" id=\"count\" min=\"1\" max=\"20\" value=\"5\" oninput=\"this.nextElementSibling.innerText=this.value\">\r\n    <span>5<\/span>\r\n    \r\n    <div style=\"text-align:left; margin:0.5rem 0;\">\r\n      <input type=\"checkbox\" id=\"unique\" checked> \u0411\u0435\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432\r\n      <br>\r\n      <input type=\"checkbox\" id=\"sorted\"> \u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\r\n    <\/div>\r\n    \r\n    <button class=\"btn\" onclick=\"generate()\">\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button>\r\n    <button class=\"btn\" onclick=\"clearResult()\">\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c<\/button>\r\n    <button class=\"btn\" onclick=\"shareResult()\">\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f<\/button>\r\n    \r\n    <div class=\"result\" id=\"result\">\u2014<\/div>\r\n    <canvas id=\"chart\"><\/canvas>\r\n    <div class=\"history\" id=\"history\"><\/div>\r\n  <\/div>\r\n\r\n  <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\r\n  <script>\r\n    let historyArr = [];\r\n    let chart;\r\n\r\n    function generate() {\r\n      const min = parseInt(document.getElementById('min').value);\r\n      const max = parseInt(document.getElementById('max').value);\r\n      let count = parseInt(document.getElementById('count').value);\r\n      const unique = document.getElementById('unique').checked;\r\n      const sorted = document.getElementById('sorted').checked;\r\n      let nums = [];\r\n\r\n      if (unique) {\r\n        const pool = [];\r\n        for (let i=min;i<=max;i++) pool.push(i);\r\n        for (let i=0;i<count && pool.length;i++) {\r\n          const idx = Math.floor(Math.random()*pool.length);\r\n          nums.push(pool.splice(idx,1)[0]);\r\n        }\r\n      } else {\r\n        for (let i=0;i<count;i++) {\r\n          nums.push(Math.floor(Math.random()*(max-min+1))+min);\r\n        }\r\n      }\r\n      if (sorted) nums.sort((a,b)=>a-b);\r\n\r\n      showResult(nums);\r\n      addHistory(nums);\r\n      drawChart(nums);\r\n    }\r\n\r\n    function showResult(nums) {\r\n      const resultDiv = document.getElementById('result');\r\n      resultDiv.innerHTML = '';\r\n      nums.forEach(n=>{\r\n        const span = document.createElement('div');\r\n        span.className='number';\r\n        span.innerText=n;\r\n        resultDiv.appendChild(span);\r\n      });\r\n    }\r\n\r\n    function addHistory(nums) {\r\n      historyArr.unshift(nums);\r\n      if (historyArr.length>5) historyArr.pop();\r\n      const histDiv=document.getElementById('history');\r\n      histDiv.innerHTML='<b>\u0418\u0441\u0442\u043e\u0440\u0438\u044f:<\/b><br>'+historyArr.map((h,i)=>`${i+1}) ${h.join(', ')}`).join('<br>');\r\n    }\r\n\r\n    function clearResult(){\r\n      document.getElementById('result').innerText='\u2014';\r\n      document.getElementById('chart').style.display='none';\r\n    }\r\n\r\n    function shareResult(){\r\n      const nums = Array.from(document.getElementById('result').querySelectorAll('.number')).map(n=>n.innerText);\r\n      if (nums.length===0) return alert('\u041d\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f!');\r\n      const url = location.href.split('#')[0]+'#'+nums.join(',');\r\n      navigator.clipboard.writeText(url);\r\n      alert('\u0421\u0441\u044b\u043b\u043a\u0430 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0430: '+url);\r\n    }\r\n\r\n    function toggleTheme(){\r\n      document.body.classList.toggle('light');\r\n      document.body.classList.toggle('dark');\r\n    }\r\n\r\n    function drawChart(nums){\r\n      const ctx=document.getElementById('chart').getContext('2d');\r\n      document.getElementById('chart').style.display='block';\r\n      if (chart) chart.destroy();\r\n      chart=new Chart(ctx,{\r\n        type:'bar',\r\n        data:{\r\n          labels:nums,\r\n          datasets:[{label:'\u0427\u0430\u0441\u0442\u043e\u0442\u0430',data:nums.map(()=>1)}]\r\n        },\r\n        options:{scales:{y:{beginAtZero:true}}}\r\n      });\r\n    }\r\n  <\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Glass 3D \u2014 \u0420\u0430\u043d\u0434\u043e\u043c\u0430\u0439\u0437\u0435\u0440 \u0447\u0438\u0441\u0435\u043b \ud83c\udf13 Glass 3D \u2014 \u0420\u0430\u043d\u0434\u043e\u043c\u0430\u0439\u0437\u0435\u0440 \u0447\u0438\u0441\u0435\u043b \u041c\u0438\u043d\u0438\u043c\u0443\u043c \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0447\u0438\u0441\u0435\u043b 5 \u0411\u0435\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432 \u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u2014<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inspiro_hide_title":false,"footnotes":""},"class_list":["post-883","page","type-page","status-publish","hentry"],"featured_media_urls":[],"_links":{"self":[{"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/pages\/883","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bantv.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=883"}],"version-history":[{"count":4,"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/pages\/883\/revisions"}],"predecessor-version":[{"id":888,"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/pages\/883\/revisions\/888"}],"wp:attachment":[{"href":"https:\/\/bantv.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=883"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}