{"id":449,"date":"2025-10-07T13:08:15","date_gmt":"2025-10-07T11:08:15","guid":{"rendered":"https:\/\/slowka-angielski.you2.pl\/?page_id=449"},"modified":"2025-10-28T14:53:28","modified_gmt":"2025-10-28T13:53:28","slug":"zwierzeta","status":"publish","type":"page","link":"https:\/\/slowka-angielski.you2.pl\/index.php\/zwierzeta\/","title":{"rendered":"Zwierz\u0119ta"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"449\" class=\"elementor elementor-449\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d1946a8 e-flex e-con-boxed e-con e-parent\" data-id=\"d1946a8\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5b60b2c elementor-widget elementor-widget-html\" data-id=\"5b60b2c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"pl\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Test s\u0142\u00f3wek \u2013 Nauka ze s\u0142uchu<\/title>\r\n<style>\r\nbody { font-family: Arial,sans-serif; margin:0; height:100vh; display:flex; justify-content:center; align-items:center; background:linear-gradient(to right,#f0f0f0,#d0d0d0); transition:background 1s ease; }\r\n.quiz-container { max-width:600px; width:90%; background:rgba(255,255,255,0.95); padding:20px; border-radius:15px; text-align:center; }\r\nh1 { font-size:1.5em; margin-bottom:15px; }\r\n.word { font-size:1.6em; margin-bottom:10px; color:#222; min-height:50px; }\r\n#answer { width:100%; padding:0 15px; font-size:1em; height:50px; line-height:50px; margin-bottom:5px; display:none; border:2px solid #ccc; border-radius:8px; text-align:center; transition: all 0.3s; background:white; }\r\n#answer.correct { background: repeating-linear-gradient(45deg, #e6ffe6 0px, #e6ffe6 10px, #ffffff 10px, #ffffff 20px); border-color:green; }\r\n#answer.incorrect { background: repeating-linear-gradient(45deg, #ffe6e6 0px, #ffe6e6 10px, #ffffff 10px, #ffffff 20px); border-color:red; color:green; font-weight:bold; }\r\n#answer.empty { border-color:blue; }\r\nbutton { padding:10px 20px; font-size:1em; border-radius:10px; margin:5px; cursor:pointer; }\r\n#start-btn { background:#28a745; color:white; border:none; }\r\n#submit-btn { background:#007bff; color:white; border:none; display:none; }\r\n#repeat-voice-btn { background:#f0f0f0; color:#333; border:1px solid #ccc; display:none; margin-left:5px; }\r\n#speed-control { margin:10px 0; display:none; }\r\n#return-btn { background:#ffc107; color:#333; border:none; display:none; }\r\n#group-selection { margin-bottom:15px; text-align:left; border:1px solid #ccc; padding:10px; border-radius:8px; background:#f9f9f9; max-height:200px; overflow-y:auto; }\r\n#group-selection label { display:block; margin-bottom:5px; cursor:pointer; }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div class=\"quiz-container\">\r\n<h1>Nauka ze s\u0142uchu<\/h1>\r\n\r\n<div id=\"group-selection\">\r\n  <strong>Wybierz grup\u0119 s\u0142\u00f3wek:<\/strong>\r\n  <label><input type=\"checkbox\" class=\"group-checkbox\" value=\"dom\"> Dom i jego elementy<\/label>\r\n  <label><input type=\"checkbox\" class=\"group-checkbox\" value=\"ogrod\"> Ogr\u00f3d<\/label>\r\n  <label><input type=\"checkbox\" class=\"group-checkbox\" value=\"pomieszczenia\"> Pomieszczenia<\/label>\r\n<\/div>\r\n\r\n<div id=\"progress\"><\/div>\r\n<progress id=\"progress-bar\" value=\"0\" max=\"100\"><\/progress>\r\n<div class=\"word\" id=\"word\"><\/div>\r\n<input type=\"text\" id=\"answer\" placeholder=\"Wpisz znaczenie po polsku...\" autocomplete=\"off\">\r\n<div>\r\n  <button id=\"start-btn\">Start<\/button>\r\n  <button id=\"submit-btn\">Sprawd\u017a<\/button>\r\n  <button id=\"repeat-voice-btn\">Powt\u00f3rz lektora<\/button>\r\n  <button id=\"return-btn\">Powr\u00f3t<\/button>\r\n<\/div>\r\n<div id=\"speed-control\">\r\n  Pr\u0119dko\u015b\u0107 lektora: <input type=\"range\" id=\"speedRange\" min=\"0.5\" max=\"2\" step=\"0.1\" value=\"0.9\"> <span id=\"speedValue\">0.9<\/span>\r\n<\/div>\r\n<\/div>\r\n\r\n<script>\r\nconst groups = {\r\n  dom: [\r\n    { en: \"kitchen\", pl: \"kuchnia\" },\r\n    { en: \"bathroom\", pl: \"\u0142azienka\" },\r\n    { en: \"bedroom\", pl: \"sypialnia\" }\r\n  ],\r\n  ogrod: [\r\n    { en: \"flower\", pl: \"kwiat\" },\r\n    { en: \"tree\", pl: \"drzewo\" },\r\n    { en: \"grass\", pl: \"trawa\" }\r\n  ],\r\n  pomieszczenia: [\r\n    { en: \"garage\", pl: \"gara\u017c\" },\r\n    { en: \"attic\", pl: \"strych\" },\r\n    { en: \"basement\", pl: \"piwnica\" }\r\n  ]\r\n};\r\n\r\nfunction shuffle(array){let current=array.length, random; while(current!==0){random=Math.floor(Math.random()*current);current--;[array[current],array[random]]=[array[random],array[current]];} return array;}\r\n\r\nlet queue = [];\r\nlet currentWord;\r\nlet speechRate = 0.9;\r\nlet waitingForRetry = false;\r\nlet correctCount = 0;\r\nlet totalCount = 0;\r\n\r\nconst wordEl = document.getElementById(\"word\");\r\nconst answerEl = document.getElementById(\"answer\");\r\nconst startBtn = document.getElementById(\"start-btn\");\r\nconst submitBtn = document.getElementById(\"submit-btn\");\r\nconst repeatVoiceBtn = document.getElementById(\"repeat-voice-btn\");\r\nconst returnBtn = document.getElementById(\"return-btn\");\r\nconst speedRange = document.getElementById(\"speedRange\");\r\nconst speedValue = document.getElementById(\"speedValue\");\r\nconst groupSelection = document.getElementById(\"group-selection\");\r\nconst progressBar = document.getElementById(\"progress-bar\");\r\nconst progressDiv = document.getElementById(\"progress\");\r\n\r\nfunction speak(text){\r\n  const u = new SpeechSynthesisUtterance(text);\r\n  u.lang = \"en-US\";\r\n  u.rate = speechRate;\r\n  speechSynthesis.speak(u);\r\n}\r\n\r\nfunction loadWord() {\r\n  waitingForRetry = false;\r\n  answerEl.value = \"\";\r\n  answerEl.className = \"\";\r\n  submitBtn.textContent = \"Sprawd\u017a\";\r\n  answerEl.style.display = \"inline-block\";\r\n  submitBtn.style.display = \"inline-block\";\r\n  repeatVoiceBtn.style.display = \"inline-block\";\r\n\r\n  wordEl.textContent = \"S\u0142uchaj lektora\u2026\";\r\n\r\n  setTimeout(()=>{ speak(currentWord.en); }, 1600);\r\n\r\n  updateProgress();\r\n}\r\n\r\n\/\/ Aktualizacja progress baru\r\nfunction updateProgress(){\r\n  const done = totalCount - queue.length;\r\n  progressBar.value = Math.round((done \/ totalCount) * 100);\r\n  progressDiv.textContent = `${done} \/ ${totalCount} s\u0142\u00f3wek`;\r\n}\r\n\r\n\/\/ Sprawdzenie odpowiedzi\r\nfunction checkAnswer(){\r\n  if(waitingForRetry){\r\n    loadWord();\r\n    return;\r\n  }\r\n\r\n  let userAnswer = answerEl.value.trim().toLowerCase();\r\n  const correctAnswers = currentWord.pl.split(\",\").map(s => s.trim().toLowerCase());\r\n\r\n  \/\/ brak odpowiedzi traktujemy jak b\u0142\u0119dn\u0105\r\n  if(!userAnswer || !correctAnswers.includes(userAnswer)){\r\n    answerEl.className = \"incorrect\";\r\n    answerEl.value = correctAnswers[0];\r\n    waitingForRetry = true;\r\n    submitBtn.textContent = \"Dalej\";\r\n    queue.push(queue.shift());\r\n    return;\r\n  }\r\n\r\n  \/\/ poprawna odpowied\u017a\r\n  answerEl.className = \"correct\";\r\n  correctCount++;\r\n  setTimeout(()=>{\r\n    queue.shift();\r\n    if(queue.length === 0){\r\n      wordEl.textContent = `Gratulacje! Poprawnych odpowiedzi: ${correctCount} \/ ${totalCount} (${Math.round(correctCount\/totalCount*100)}%)`;\r\n      answerEl.style.display = \"none\";\r\n      submitBtn.style.display = \"none\";\r\n      repeatVoiceBtn.style.display = \"none\";\r\n      returnBtn.style.display = \"inline-block\";\r\n      progressBar.value = 100;\r\n      progressDiv.textContent = `${totalCount} \/ ${totalCount} s\u0142\u00f3wek`;\r\n      return;\r\n    }\r\n    currentWord = queue[0];\r\n    loadWord();\r\n  }, 1600);\r\n}\r\n\r\n\/\/ Start testu\r\nstartBtn.addEventListener(\"click\", ()=>{\r\n  const selectedGroups = [...document.querySelectorAll(\".group-checkbox:checked\")].map(c => c.value);\r\n  if(selectedGroups.length === 0){ alert(\"Wybierz przynajmniej jedn\u0105 grup\u0119 s\u0142\u00f3wek.\"); return; }\r\n\r\n  queue = [];\r\n  correctCount = 0;\r\n  selectedGroups.forEach(g => { if(groups[g]) queue.push(...groups[g]); });\r\n  queue = shuffle(queue);\r\n  totalCount = queue.length;\r\n\r\n  groupSelection.style.display = \"none\";\r\n  startBtn.style.display = \"none\";\r\n  document.getElementById(\"speed-control\").style.display = \"block\";\r\n\r\n  currentWord = queue[0];\r\n  loadWord();\r\n});\r\n\r\n\/\/ Powr\u00f3t do wyboru grup s\u0142\u00f3wek\r\nreturnBtn.addEventListener(\"click\", ()=>{\r\n  groupSelection.style.display = \"block\";\r\n  startBtn.style.display = \"inline-block\";\r\n  returnBtn.style.display = \"none\";\r\n  answerEl.style.display = \"none\";\r\n  submitBtn.style.display = \"none\";\r\n  repeatVoiceBtn.style.display = \"none\";\r\n  wordEl.textContent = \"\";\r\n  queue = [];\r\n  correctCount = 0;\r\n  totalCount = 0;\r\n  progressBar.value = 0;\r\n  progressDiv.textContent = \"\";\r\n});\r\n\r\nsubmitBtn.addEventListener(\"click\", checkAnswer);\r\nrepeatVoiceBtn.addEventListener(\"click\", ()=>{ if(currentWord) speak(currentWord.en); });\r\nanswerEl.addEventListener(\"keypress\", e=>{ if(e.key===\"Enter\") checkAnswer(); });\r\nspeedRange.addEventListener(\"input\", ()=>{\r\n  speechRate = parseFloat(speedRange.value);\r\n  speedValue.textContent = speechRate;\r\n});\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Test s\u0142\u00f3wek \u2013 Nauka ze s\u0142uchu Nauka ze s\u0142uchu Wybierz grup\u0119 s\u0142\u00f3wek: Dom i jego elementy Ogr\u00f3d Pomieszczenia Start Sprawd\u017a Powt\u00f3rz lektora Powr\u00f3t Pr\u0119dko\u015b\u0107 lektora: 0.9<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/template-pagebuilder-full-width.php","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"class_list":["post-449","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/slowka-angielski.you2.pl\/index.php\/wp-json\/wp\/v2\/pages\/449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/slowka-angielski.you2.pl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/slowka-angielski.you2.pl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/slowka-angielski.you2.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/slowka-angielski.you2.pl\/index.php\/wp-json\/wp\/v2\/comments?post=449"}],"version-history":[{"count":28,"href":"https:\/\/slowka-angielski.you2.pl\/index.php\/wp-json\/wp\/v2\/pages\/449\/revisions"}],"predecessor-version":[{"id":1185,"href":"https:\/\/slowka-angielski.you2.pl\/index.php\/wp-json\/wp\/v2\/pages\/449\/revisions\/1185"}],"wp:attachment":[{"href":"https:\/\/slowka-angielski.you2.pl\/index.php\/wp-json\/wp\/v2\/media?parent=449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}