{"id":1177,"date":"2026-10-19T10:50:32","date_gmt":"2026-10-19T08:50:32","guid":{"rendered":"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/?page_id=1177"},"modified":"2026-10-19T10:53:47","modified_gmt":"2026-10-19T08:53:47","slug":"1177-2","status":"publish","type":"page","link":"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/1177-2\/","title":{"rendered":"Gra interaktywna"},"content":{"rendered":"\n<div class=\"wp-block-group mt-0 has-accent-5-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--60)\"><div class=\"wp-bootstrap-blocks-container container mb-2\">\n\t\n<div class=\"wp-bootstrap-blocks-row row\">\n\t\n\n<div class=\"col-12 col-md-12 col-lg-7 pe-lg-5\">\n\t\t\t\n\n<h1 class=\"wp-block-heading has-accent-1-color has-text-color has-link-color wp-elements-1\"><strong>Gra interaktywna: Czy Tw\u00f3j prompt mo\u017ce by\u0107 Eko?<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Dzi\u015b ze sztucznej inteligencji korzystamy niemal bez przerwy \u2013 generujemy tre\u015bci, pomys\u0142y czy obrazy, kt\u00f3re cz\u0119sto s\u0105 nam potrzebne zaledwie na kilka sekund. Rzadko jednak zdajemy sobie spraw\u0119 z ukrytego kosztu tych operacji. Ka\u017cde zapytanie (prompt) trafiaj\u0105ce do modelu j\u0119zykowego wymusza wykonanie miliard\u00f3w operacji matematycznych w pot\u0119\u017cnych centrach danych.<\/p>\n\n\t<\/div>\n\n\n\n<div class=\"col-12 col-md-12 col-lg-5 mt-lg-0 mt-5\">\n\t\t\t\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-794e3cfa wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"649\" height=\"522\" src=\"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/wp-content\/uploads\/2025\/11\/mistrzowie_energii_2.png\" alt=\"\" class=\"wp-image-137\" srcset=\"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/wp-content\/uploads\/2025\/11\/mistrzowie_energii_2.png 649w, https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/wp-content\/uploads\/2025\/11\/mistrzowie_energii_2-300x241.png 300w\" sizes=\"auto, (max-width: 649px) 100vw, 649px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\t<\/div>\n\n<\/div>\n\n<\/div>\n<\/div>\n\n\n\n<section id=\"gra-ai\" style=\"max-width: 1050px; margin: 40px auto; padding: 20px; font-family: inherit;\">\n   \n  <p style=\"font-size: 16px; line-height: 1.6; color: #334155; margin-bottom: 14px;\">\n    Przetworzenie pojedynczego zapytania przez zaawansowany model generatywny mo\u017ce zu\u017cy\u0107 od kilkunastu do kilkudziesi\u0119ciu razy wi\u0119cej energii elektrycznej ni\u017c tradycyjne wyszukiwanie w sieci, a generowanie z\u0142o\u017conych grafik czy wideo potrafi poch\u0142on\u0105\u0107 tyle pr\u0105du, co pe\u0142ne na\u0142adowanie smartfona. R\u00f3wnolegle pojawia si\u0119 problem \u015bladu wodnego: serwerownie wymagaj\u0105 nieustannego odbierania ciep\u0142a, a standardowa konwersacja z\u0142o\u017cona z 20\u201350 zapyta\u0144 mo\u017ce kosztowa\u0107 oko\u0142o 500 ml czystej wody odparowanej bezpowrotnie w wie\u017cach ch\u0142odniczych.\n  <\/p>\n  \n  <p style=\"font-size: 16px; line-height: 1.6; color: #334155; margin-bottom: 14px;\">\n    Higiena cyfrowa to nie tylko ergonomia pracy i ochrona w\u0142asnego skupienia, ale tak\u017ce \u015bwiadomo\u015b\u0107 fizycznych zasob\u00f3w stoj\u0105cych za chmur\u0105 obliczeniow\u0105. Cho\u0107 infrastruktur\u0119 stawiaj\u0105 giganci technologiczni, to my swoimi codziennymi nawykami decydujemy o stopniu ich obci\u0105\u017cenia.\n  <\/p>\n\n  <div style=\"background-color: #f8fafc; border-left: 4px solid #10b981; padding: 16px 20px; margin: 24px 0; border-radius: 4px;\">\n    <p style=\"font-size: 15px; line-height: 1.6; color: #0f172a; margin: 0 0 10px 0;\">\n      Prezentowane narz\u0119dzie to interaktywny symulator pokazuj\u0105cy, w jaki spos\u00f3b precyzja formu\u0142owanych przez nas zapyta\u0144 przek\u0142ada si\u0119 na oszcz\u0119dno\u015b\u0107 energii i wody ch\u0142odz\u0105cej. Zamiast wysy\u0142a\u0107 seri\u0119 chaotycznych polece\u0144 metod\u0105 pr\u00f3b i b\u0142\u0119d\u00f3w, uczymy si\u0119 konstruowa\u0107 prompty kompletne, celowe i zwi\u0119z\u0142e, dzi\u0119ki czemu ograniczamy puste przebiegi serwer\u00f3w bez rezygnacji z mo\u017cliwo\u015bci, jakie obecnie nam daje uczenie maszynowe.\n    <\/p>\n    <p style=\"font-size: 14px; line-height: 1.5; color: #64748b; margin: 0; font-style: italic;\">\n      Autor: Jakub Smaga \u2013 in\u017cynier danych w sektorze uczenia maszynowego, zawodowo zajmuj\u0105cy si\u0119 optymalizacj\u0105 modeli sztucznej inteligencji oraz analiz\u0105 danych teledetekcyjnych. Oficjalna premiera mia\u0142a miejsce 16 wrze\u015bnia 2026 r. podczas Nowowiejskiego Targu w Szycach.\n    <\/p>\n  <\/div>\n\n  <style>\n    .game-wrapper { width: 100%; background-color: #ffffff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 25px; box-shadow: 0 4px 12px rgba(0,0,0,0.04); box-sizing: border-box; display: flex; flex-direction: column; align-items: center; margin-bottom: 35px; }\n    .game-wrapper h3 { color: #1e293b; font-size: 1.4em; text-align: center; margin-top: 0; margin-bottom: 8px; }\n    .section-desc { text-align: center; color: #64748b; font-size: 0.95em; margin-top: 0; margin-bottom: 20px; max-width: 700px; }\n    \n    #water-container { width: 140px; height: 180px; border: 4px solid #94a3b8; border-radius: 8px 8px 30px 30px; position: relative; overflow: hidden; background-color: #ffffff; box-shadow: inset 0 0 10px rgba(0,0,0,0.08); margin-bottom: 20px; }\n    #water-level { position: absolute; bottom: 0; left: 0; width: 100%; height: 0%; background-color: #0284c7; transition: height 0.5s ease; }\n    #water-text { position: absolute; width: 100%; text-align: center; top: 50%; transform: translateY(-50%); font-weight: bold; color: #0f172a; font-size: 0.95em; text-shadow: 1px 1px 3px rgba(255,255,255,0.9); z-index: 2; pointer-events: none; }\n    \n    .zones-container { display: flex; gap: 20px; width: 100%; }\n    .zone { flex: 1; padding: 15px; border: 3px dashed #cbd5e1; border-radius: 12px; min-height: 320px; background-color: #fafbfc; display: flex; flex-direction: column; gap: 10px; transition: background-color 0.2s, border-color 0.2s; cursor: pointer; }\n    .zone.eco { border-color: #10b981; }\n    .zone.waste { border-color: #ef4444; }\n    .zone.hover, .zone.target-active { background-color: #f1f5f9; }\n    .zone.eco.hover { background-color: #ecfdf5; border-color: #059669; }\n    .zone.waste.hover { background-color: #fef2f2; border-color: #dc2626; }\n    .zone-title { text-align: center; font-size: 1.1em; font-weight: 700; margin-bottom: 8px; color: #334155; pointer-events: none; }\n    \n    .pool { width: 100%; margin-top: 25px; display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; padding: 20px; border-radius: 12px; background-color: #e2e8f0; box-sizing: border-box; min-height: 120px; }\n    .prompt-card { background-color: #ffffff; padding: 14px 16px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.06); border-left: 6px solid #f59e0b; cursor: grab; user-select: none; transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s; font-size: 0.95em; width: calc(50% - 12px); box-sizing: border-box; min-width: 220px; color: #1e293b; }\n    .prompt-card:active { cursor: grabbing; }\n    .prompt-card:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.1); }\n    .prompt-card.selected { border-left-color: #0284c7; outline: 2px solid #0284c7; background-color: #f0f9ff; }\n    .shake { animation: shake 0.4s; border-left-color: #ef4444 !important; }\n    @keyframes shake { 0% { transform: translateX(0); } 25% { transform: translateX(-6px); } 50% { transform: translateX(6px); } 75% { transform: translateX(-6px); } 100% { transform: translateX(0); } }\n\n    .dashboard { display: flex; gap: 25px; width: 100%; justify-content: center; margin-bottom: 25px; }\n    .panel { background-color: #f8fafc; border: 1px solid #e2e8f0; padding: 20px; border-radius: 12px; display: flex; flex-direction: column; align-items: center; width: 50%; box-sizing: border-box; }\n    .panel h4 { margin: 0 0 10px 0; color: #334155; font-size: 1.1em; }\n    .server-rack { width: 110px; height: 210px; background-color: #1e293b; border-radius: 8px; border: 3px solid #0f172a; display: flex; flex-direction: column; justify-content: space-evenly; padding: 8px; box-sizing: border-box; transition: background-color 0.3s; }\n    .server-unit { height: 26px; background-color: #334155; border-radius: 4px; display: flex; align-items: center; padding: 0 8px; gap: 5px; border: 1px solid #0f172a; }\n    .led { width: 7px; height: 7px; background-color: #10b981; border-radius: 50%; }\n    .led.working { animation: blink 0.2s infinite; background-color: #f59e0b; }\n    @keyframes blink { 0% { opacity: 1; } 50% { opacity: 0.3; } 100% { opacity: 1; } }\n    .temp-gauge { width: 100%; height: 16px; background-color: #e2e8f0; border-radius: 8px; margin-top: 15px; overflow: hidden; border: 1px solid #cbd5e1; }\n    .temp-fill { height: 100%; width: 20%; background-color: #10b981; transition: width 0.2s, background-color 0.2s; }\n    .environment { position: relative; width: 100%; height: 250px; border: 2px solid #cbd5e1; border-radius: 12px; background: linear-gradient(to bottom, #7dd3fc 0%, #e0f2fe 100%); overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; box-sizing: border-box; }\n    .cloud-container { position: relative; height: 70px; width: 100%; display: flex; justify-content: center; margin-top: 15px; }\n    .cloud { width: 90px; height: 35px; background-color: #ffffff; border-radius: 50px; position: relative; transition: transform 0.5s, background-color 0.5s; }\n    .cloud::before, .cloud::after { content: ''; position: absolute; background-color: inherit; border-radius: 50%; }\n    .cloud::before { width: 45px; height: 45px; top: -20px; left: 12px; }\n    .cloud::after { width: 50px; height: 50px; top: -25px; right: 12px; }\n    .lake-container { position: absolute; bottom: 0; width: 100%; height: 130px; background-color: #cbd5e1; display: flex; align-items: flex-end; }\n    .lake { width: 100%; height: 100%; background-color: #0284c7; transition: height 0.3s; }\n    .controls-box { width: 100%; display: flex; flex-direction: column; gap: 15px; }\n    .btn-group { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; width: 100%; }\n    .sim-btn { padding: 12px 18px; font-size: 0.95em; border: none; border-radius: 8px; cursor: pointer; font-weight: 600; color: white; transition: transform 0.1s, filter 0.2s; flex: 1; min-width: 180px; }\n    .sim-btn:hover { filter: brightness(1.08); transform: translateY(-2px); }\n    .sim-btn:active { transform: translateY(0); }\n    .sim-btn:disabled { background-color: #94a3b8 !important; cursor: not-allowed; transform: none; }\n    .btn-light { background-color: #10b981; }\n    .btn-medium { background-color: #f59e0b; }\n    .btn-heavy { background-color: #ef4444; }\n    .stats-bar { display: flex; justify-content: space-around; width: 100%; margin-top: 15px; font-size: 1.05em; font-weight: 700; color: #1e293b; }\n    .game-over { color: #ef4444; font-size: 1.25em; text-align: center; margin-top: 15px; font-weight: bold; display: none; }\n    .reset-btn { margin-top: 12px; background-color: #475569; color: #fff; padding: 8px 16px; font-size: 0.9em; max-width: 200px; align-self: center; display: none; border: none; border-radius: 6px; cursor: pointer; }\n  <\/style>\n\n  <!-- MODU\u0141 1 -->\n  <div class=\"game-wrapper\">\n    <h3>Modu\u0142 1: Sortowanie Prompt\u00f3w<\/h3>\n    <p class=\"section-desc\">Przeci\u0105gnij kart\u0119 do w\u0142a\u015bciwego pojemnika lub kliknij kart\u0119, a nast\u0119pnie docelowe pole. Sprawd\u017a, jak nieprecyzyjne zapytania marnuj\u0105 wod\u0119 z wirtualnego ch\u0142odzenia.<\/p>\n    \n    <div id=\"water-container\">\n      <div id=\"water-level\"><\/div>\n      <div id=\"water-text\">Zmarnowana woda:<br><span id=\"water-wasted\">0<\/span> ml<\/div>\n    <\/div>\n    \n    <div class=\"zones-container\">\n      <div class=\"zone eco\" id=\"zone-eco\">\n        <div class=\"zone-title\">Zielone zapytania (Oszcz\u0119dne)<\/div>\n      <\/div>\n      <div class=\"zone waste\" id=\"zone-waste\">\n        <div class=\"zone-title\">Szare zapytania (Zasoboch\u0142onne)<\/div>\n      <\/div>\n    <\/div>\n    \n    <div class=\"pool\" id=\"pool\">\n      <div class=\"prompt-card\" id=\"p1\" data-type=\"eco\" draggable=\"true\">Opisz jak zbudowa\u0107 prosty zamek z klock\u00f3w w 3 krokach.<\/div>\n      <div class=\"prompt-card\" id=\"p2\" data-type=\"waste\" draggable=\"true\">Powiedz mi co\u015b fajnego o grach planszowych.<\/div>\n      <div class=\"prompt-card\" id=\"p3\" data-type=\"eco\" draggable=\"true\">Wymie\u0144 5 najszybszych zwierz\u0105t l\u0105dowych i podaj ich pr\u0119dko\u015bci.<\/div>\n      <div class=\"prompt-card\" id=\"p4\" data-type=\"waste\" draggable=\"true\">Podaj jakie\u015b zwierzaki.<\/div>\n      <div class=\"prompt-card\" id=\"p5\" data-type=\"eco\" draggable=\"true\">Przet\u0142umacz zdanie: 'Lubi\u0119 gra\u0107 w pi\u0142k\u0119&#8217; na j\u0119zyk angielski.<\/div>\n      <div class=\"prompt-card\" id=\"p6\" data-type=\"waste\" draggable=\"true\">Napisz du\u017co r\u00f3\u017cnych s\u0142\u00f3w w obcych j\u0119zykach.<\/div>\n      <div class=\"prompt-card\" id=\"p7\" data-type=\"eco\" draggable=\"true\">Podaj instrukcj\u0119 narysowania psa krok po kroku w 4 punktach.<\/div>\n      <div class=\"prompt-card\" id=\"p8\" data-type=\"waste\" draggable=\"true\">Zr\u00f3b mi rysunek wszystkiego na \u015bwiecie.<\/div>\n      <div class=\"prompt-card\" id=\"p9\" data-type=\"eco\" draggable=\"true\">Wyja\u015bnij dzia\u0142anie czarnej dziury w 2 zdaniach prostym j\u0119zykiem.<\/div>\n      <div class=\"prompt-card\" id=\"p10\" data-type=\"waste\" draggable=\"true\">Napisz wielk\u0105 rozprawk\u0119 o ca\u0142ym kosmosie.<\/div>\n      <div class=\"prompt-card\" id=\"p11\" data-type=\"eco\" draggable=\"true\">Zaproponuj 3 zagadki logiczne dla 10-latka wraz z odpowiedziami.<\/div>\n      <div class=\"prompt-card\" id=\"p12\" data-type=\"waste\" draggable=\"true\">Wymy\u015bl jak\u0105\u015b zagadk\u0119, cokolwiek.<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- MODU\u0141 2 -->\n  <div class=\"game-wrapper\">\n    <h3>Modu\u0142 2: Symulator Zasob\u00f3w Centrum Danych<\/h3>\n    <p class=\"section-desc\">Klikaj przyciski, aby wydawa\u0107 polecenia AI o r\u00f3\u017cnym stopniu z\u0142o\u017cono\u015bci. Obserwuj temperatur\u0119 serwer\u00f3w \u2013 gdy przekroczy 50\u00b0C, uruchomi si\u0119 intensywne ch\u0142odzenie wod\u0105 z jeziora.<\/p>\n    \n    <div class=\"dashboard\">\n      <div class=\"panel\">\n        <h4>Serwerownia AI<\/h4>\n        <div class=\"server-rack\" id=\"server\">\n          <div class=\"server-unit\"><div class=\"led\"><\/div><div class=\"led\"><\/div><\/div>\n          <div class=\"server-unit\"><div class=\"led\"><\/div><div class=\"led\"><\/div><\/div>\n          <div class=\"server-unit\"><div class=\"led\"><\/div><div class=\"led\"><\/div><\/div>\n          <div class=\"server-unit\"><div class=\"led\"><\/div><div class=\"led\"><\/div><\/div>\n        <\/div>\n        <div style=\"width: 100%; margin-top: 12px; text-align: center; font-weight: bold; font-size: 0.95em;\">Temperatura uk\u0142ad\u00f3w: <span id=\"temp-val\">20<\/span>\u00b0C<\/div>\n        <div class=\"temp-gauge\"><div class=\"temp-fill\" id=\"temp-bar\"><\/div><\/div>\n      <\/div>\n      \n      <div class=\"panel\">\n        <h4>\u015arodowisko Naturalne<\/h4>\n        <div class=\"environment\">\n          <div class=\"cloud-container\"><div class=\"cloud\" id=\"co2-cloud\"><\/div><\/div>\n          <div class=\"lake-container\"><div class=\"lake\" id=\"lake-water\"><\/div><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"controls-box\">\n      <div class=\"btn-group\">\n        <button class=\"sim-btn btn-light\" onclick=\"startSimTask(10, 6, 20)\">Kr\u00f3tki tekst (Niskie)<\/button>\n        <button class=\"sim-btn btn-medium\" onclick=\"startSimTask(28, 14, 50)\">Streszczenie artyku\u0142u (\u015arednie)<\/button>\n        <button class=\"sim-btn btn-heavy\" onclick=\"startSimTask(65, 30, 120)\">Generowanie wideo (Wysokie)<\/button>\n      <\/div>\n      \n      <div class=\"stats-bar\">\n        <div>Zasoby jeziora: <span id=\"water-stat\">100<\/span>%<\/div>\n        <div>Emisja CO2: <span id=\"co2-stat\">0<\/span> g<\/div>\n      <\/div>\n      <div class=\"game-over\" id=\"game-over-msg\">Jezioro wysch\u0142o! Brak wody doprowadzi\u0142 do awarii serwerowni.<\/div>\n      <button class=\"reset-btn\" id=\"reset-btn\" onclick=\"resetSim()\">Zrestartuj serwerowni\u0119<\/button>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function initGame() {\n      var waterWasted = 0;\n      var maxWater = 600;\n      var penalty = 50;\n      var selectedCard = null;\n\n      function setupCardsAndZones() {\n        var cards = document.querySelectorAll('.prompt-card');\n        var zones = document.querySelectorAll('.zone');\n\n        cards.forEach(function(card) {\n          card.addEventListener('dragstart', function(e) {\n            if (selectedCard) {\n              selectedCard.classList.remove('selected');\n              selectedCard = null;\n              updateZoneHighlights(false);\n            }\n            e.dataTransfer.effectAllowed = 'move';\n            e.dataTransfer.setData('text\/plain', card.id);\n          });\n\n          card.addEventListener('click', function(e) {\n            if (card.parentElement.classList.contains('zone')) return;\n            if (selectedCard === card) {\n              card.classList.remove('selected');\n              selectedCard = null;\n              updateZoneHighlights(false);\n            } else {\n              if (selectedCard) selectedCard.classList.remove('selected');\n              selectedCard = card;\n              card.classList.add('selected');\n              updateZoneHighlights(true);\n            }\n          });\n        });\n\n        zones.forEach(function(zone) {\n          zone.addEventListener('dragover', function(e) {\n            e.preventDefault();\n            e.dataTransfer.dropEffect = 'move';\n          });\n\n          zone.addEventListener('dragenter', function(e) {\n            e.preventDefault();\n            zone.classList.add('hover');\n          });\n\n          zone.addEventListener('dragleave', function(e) {\n            zone.classList.remove('hover');\n          });\n\n          zone.addEventListener('drop', function(e) {\n            e.preventDefault();\n            zone.classList.remove('hover');\n            var cardId = e.dataTransfer.getData('text\/plain');\n            var card = document.getElementById(cardId);\n            if (card) applyDrop(card, zone);\n          });\n\n          zone.addEventListener('click', function(e) {\n            if (!selectedCard) return;\n            applyDrop(selectedCard, zone);\n            selectedCard.classList.remove('selected');\n            selectedCard = null;\n            updateZoneHighlights(false);\n          });\n        });\n      }\n\n      function updateZoneHighlights(active) {\n        var zones = document.querySelectorAll('.zone');\n        zones.forEach(function(z) {\n          if (active) z.classList.add('target-active');\n          else z.classList.remove('target-active');\n        });\n      }\n\n      function applyDrop(card, zone) {\n        var expectedId = card.getAttribute('data-type') === 'eco' ? 'zone-eco' : 'zone-waste';\n        if (zone.id === expectedId) {\n          zone.appendChild(card);\n          card.setAttribute('draggable', 'false');\n          card.style.cursor = 'default';\n        } else {\n          card.classList.add('shake');\n          waterWasted = Math.min(waterWasted + penalty, maxWater);\n          var textEl = document.getElementById('water-wasted');\n          var lvlEl = document.getElementById('water-level');\n          if (textEl) textEl.textContent = waterWasted;\n          if (lvlEl) lvlEl.style.height = (waterWasted \/ maxWater * 100) + '%';\n          setTimeout(function() { card.classList.remove('shake'); }, 400);\n        }\n      }\n\n      if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', setupCardsAndZones);\n      } else {\n        setupCardsAndZones();\n      }\n    })();\n\n    \/* SYMULATOR SERWERA *\/\n    var simTemp = 20;\n    var simLake = 100;\n    var simCo2 = 0;\n    var simTasks = 0;\n    var simOver = false;\n\n    function startSimTask(heat, dur, co2Val) {\n      if (simOver) return;\n      simTasks++;\n      setLeds(true);\n      var ticks = 0;\n      var interval = setInterval(function() {\n        if (simOver) { clearInterval(interval); return; }\n        simTemp += (heat \/ dur);\n        simCo2 += (co2Val \/ dur);\n        ticks++;\n        if (ticks >= dur) {\n          simTasks--;\n          if (simTasks === 0) setLeds(false);\n          clearInterval(interval);\n        }\n      }, 100);\n    }\n\n    function setLeds(active) {\n      var leds = document.querySelectorAll('.led');\n      leds.forEach(function(l) {\n        if (active) l.classList.add('working');\n        else l.classList.remove('working');\n      });\n    }\n\n    function resetSim() {\n      simTemp = 20;\n      simLake = 100;\n      simCo2 = 0;\n      simTasks = 0;\n      simOver = false;\n      document.querySelectorAll('.sim-btn').forEach(function(b) { b.disabled = false; });\n      var msg = document.getElementById('game-over-msg');\n      var btn = document.getElementById('reset-btn');\n      if (msg) msg.style.display = 'none';\n      if (btn) btn.style.display = 'none';\n      setLeds(false);\n    }\n\n    function simTick() {\n      if (!simOver) {\n        if (simTemp > 20 && simTasks === 0) simTemp -= 0.4;\n        if (simTemp > 50) {\n          var cooling = (simTemp - 50) * 0.08;\n          simLake -= cooling;\n          simTemp -= cooling * 1.8;\n        }\n        if (simLake <= 0) {\n          simLake = 0;\n          simOver = true;\n          document.querySelectorAll('.sim-btn').forEach(function(b) { b.disabled = true; });\n          setLeds(false);\n          var msg = document.getElementById('game-over-msg');\n          var btn = document.getElementById('reset-btn');\n          if (msg) msg.style.display = 'block';\n          if (btn) btn.style.display = 'block';\n        }\n\n        var tVal = document.getElementById('temp-val');\n        var tBar = document.getElementById('temp-bar');\n        var sRack = document.getElementById('server');\n        if (tVal) tVal.textContent = Math.round(simTemp);\n        if (tBar) {\n          tBar.style.width = Math.min((simTemp \/ 100) * 100, 100) + '%';\n          if (simTemp < 40) {\n            tBar.style.backgroundColor = '#10b981';\n            if (sRack) sRack.style.backgroundColor = '#1e293b';\n          } else if (simTemp < 65) {\n            tBar.style.backgroundColor = '#f59e0b';\n            if (sRack) sRack.style.backgroundColor = '#451a03';\n          } else {\n            tBar.style.backgroundColor = '#ef4444';\n            if (sRack) sRack.style.backgroundColor = '#7f1d1d';\n          }\n        }\n\n        var lWater = document.getElementById('lake-water');\n        var wStat = document.getElementById('water-stat');\n        var cStat = document.getElementById('co2-stat');\n        var cCloud = document.getElementById('co2-cloud');\n        if (lWater) lWater.style.height = simLake + '%';\n        if (wStat) wStat.textContent = Math.round(simLake);\n        if (cStat) cStat.textContent = Math.round(simCo2);\n        if (cCloud) {\n          var scale = 1 + (simCo2 \/ 400);\n          var darkness = Math.max(255 - (simCo2 \/ 1.8), 60);\n          cCloud.style.transform = 'scale(' + Math.min(scale, 2.3) + ')';\n          cCloud.style.backgroundColor = 'rgb(' + darkness + ',' + darkness + ',' + darkness + ')';\n        }\n      }\n      requestAnimationFrame(simTick);\n    }\n    requestAnimationFrame(simTick);\n  <\/script>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Przetworzenie pojedynczego zapytania przez zaawansowany model generatywny mo\u017ce zu\u017cy\u0107 od kilkunastu do kilkudziesi\u0119ciu razy wi\u0119cej energii elektrycznej ni\u017c tradycyjne wyszukiwanie w sieci, a generowanie z\u0142o\u017conych grafik czy wideo potrafi poch\u0142on\u0105\u0107 tyle pr\u0105du, co pe\u0142ne na\u0142adowanie smartfona. R\u00f3wnolegle pojawia si\u0119 problem \u015bladu wodnego: serwerownie wymagaj\u0105 nieustannego odbierania ciep\u0142a, a standardowa konwersacja z\u0142o\u017cona z 20\u201350 zapyta\u0144 mo\u017ce [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1177","page","type-page","status-publish","hentry"],"acf":[],"featured_image_src":null,"_links":{"self":[{"href":"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/wp-json\/wp\/v2\/pages\/1177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/wp-json\/wp\/v2\/comments?post=1177"}],"version-history":[{"count":7,"href":"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/wp-json\/wp\/v2\/pages\/1177\/revisions"}],"predecessor-version":[{"id":1205,"href":"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/wp-json\/wp\/v2\/pages\/1177\/revisions\/1205"}],"wp:attachment":[{"href":"https:\/\/columbusenergy.pl\/lp\/mistrzowie-energii\/wp-json\/wp\/v2\/media?parent=1177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}