{"id":3434,"date":"2026-06-16T02:25:42","date_gmt":"2026-06-16T02:25:42","guid":{"rendered":"https:\/\/withifi.muhubonurture.nl\/?page_id=3434"},"modified":"2026-06-16T02:47:12","modified_gmt":"2026-06-16T02:47:12","slug":"zinfabriek","status":"publish","type":"page","link":"https:\/\/withifi.muhubonurture.nl\/?page_id=3434","title":{"rendered":"Zinfabriek"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3434\" class=\"elementor elementor-3434\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-49a45c4 e-con-full e-flex e-con e-parent\" data-id=\"49a45c4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9170767 elementor-widget elementor-widget-html\" data-id=\"9170767\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\nbody{margin:0;font-family:'Inter',sans-serif;}\r\n\r\n.zf-page *{box-sizing:border-box;}\r\n\r\n.zf-page{\r\n  min-height:100vh;\r\n  padding:6rem 7vw;\r\n  color:#3A2B24;\r\n  background:linear-gradient(135deg,#F9FBF8 0%,#EAF6FF 50%,#F3FBF8 100%);\r\n}\r\n\r\n.zf-wrap{max-width:1100px;margin:0 auto;}\r\n\r\n.zf-hero,.zf-game,.zf-note{\r\n  background:rgba(255,255,255,.76);\r\n  border:1px solid rgba(255,255,255,.96);\r\n  border-radius:40px;\r\n  padding:2.6rem;\r\n  box-shadow:0 18px 44px rgba(90,70,55,.09);\r\n}\r\n\r\n.zf-hero{text-align:center;}\r\n\r\n.zf-label{\r\n  display:inline-block;\r\n  padding:.75rem 1.3rem;\r\n  border-radius:999px;\r\n  background:#EAF7F1;\r\n  color:#5F7D66;\r\n  font-weight:950;\r\n  margin-bottom:1rem;\r\n}\r\n\r\n.zf-hero h1{\r\n  margin:0 0 1rem;\r\n  font-size:clamp(42px,6vw,76px);\r\n  line-height:1;\r\n  font-weight:950;\r\n}\r\n\r\n.zf-hero p,.zf-soft,.zf-note{\r\n  color:#5F4B3F;\r\n  font-size:1.15rem;\r\n  line-height:1.8;\r\n  font-weight:750;\r\n}\r\n\r\n.zf-tabs{\r\n  display:grid;\r\n  grid-template-columns:repeat(3,1fr);\r\n  gap:1rem;\r\n  margin:2rem 0;\r\n}\r\n\r\n.zf-tab{\r\n  border:3px solid #7CB8E4;\r\n  border-radius:28px;\r\n  background:#fff;\r\n  color:#3A2B24 !important;\r\n  padding:1.2rem;\r\n  font-weight:950;\r\n  cursor:pointer;\r\n}\r\n\r\n.zf-tab.active,.zf-tab:hover{\r\n  background:#DDEFFF !important;\r\n}\r\n\r\n.zf-game{display:none;}\r\n.zf-game.active{display:block;}\r\n\r\n.zf-box{\r\n  margin-top:1.5rem;\r\n  padding:2rem;\r\n  border-radius:34px;\r\n  background:#EEF7FE;\r\n  text-align:center;\r\n}\r\n\r\n.zf-wordbank,.zf-build{\r\n  display:flex;\r\n  flex-wrap:wrap;\r\n  justify-content:center;\r\n  align-items:center;\r\n  gap:.9rem;\r\n  padding:1.3rem;\r\n  border-radius:30px;\r\n  margin:1.5rem 0;\r\n}\r\n\r\n.zf-wordbank{\r\n  min-height:105px;\r\n}\r\n\r\n.zf-build{\r\n  min-height:120px;\r\n  background:#fff;\r\n  border:3px dashed #7CB8E4;\r\n}\r\n\r\n.zf-word{\r\n  border:3px solid #7CB8E4 !important;\r\n  background:#fff !important;\r\n  color:#3A2B24 !important;\r\n  border-radius:24px;\r\n  padding:1rem 1.35rem;\r\n  font-size:1.25rem !important;\r\n  font-weight:950 !important;\r\n  cursor:pointer;\r\n  box-shadow:0 9px 20px rgba(90,70,55,.08);\r\n  opacity:1 !important;\r\n}\r\n\r\n.zf-word:hover{\r\n  background:#DDEFFF !important;\r\n  transform:translateY(-2px);\r\n}\r\n\r\n.zf-word.selected{\r\n  background:#DFF5E8 !important;\r\n  border-color:#4E9B68 !important;\r\n}\r\n\r\n.zf-word.wrong{\r\n  background:#FFE7E7 !important;\r\n  border-color:#D98585 !important;\r\n}\r\n\r\n.zf-btn{\r\n  border:3px solid #7CB8E4 !important;\r\n  background:#fff !important;\r\n  color:#3A2B24 !important;\r\n  border-radius:999px;\r\n  padding:1rem 1.7rem;\r\n  margin:.5rem;\r\n  font-weight:950 !important;\r\n  cursor:pointer;\r\n  box-shadow:0 9px 20px rgba(90,70,55,.08);\r\n}\r\n\r\n.zf-btn:hover{background:#DDEFFF !important;}\r\n\r\n.zf-feedback{\r\n  min-height:44px;\r\n  margin-top:1.3rem;\r\n  font-size:1.25rem;\r\n  line-height:1.7;\r\n  font-weight:950;\r\n  color:#1D6845 !important;\r\n}\r\n\r\n.zf-question{\r\n  margin-top:1.5rem;\r\n  padding:1.3rem;\r\n  border-radius:26px;\r\n  background:#fff;\r\n  border:3px solid #7CB8E4;\r\n}\r\n\r\n.zf-options{\r\n  display:flex;\r\n  flex-wrap:wrap;\r\n  justify-content:center;\r\n  gap:.8rem;\r\n  margin-top:1rem;\r\n}\r\n\r\n.zf-note{\r\n  margin-top:2rem;\r\n  text-align:center;\r\n}\r\n\r\n@media(max-width:900px){\r\n  .zf-tabs{grid-template-columns:1fr;}\r\n  .zf-hero,.zf-game,.zf-note{padding:1.6rem;}\r\n  .zf-word{width:100%;}\r\n}\r\n<\/style>\r\n\r\n<section class=\"zf-page\">\r\n  <div class=\"zf-wrap\">\r\n\r\n    <div class=\"zf-hero\">\r\n      <div class=\"zf-label\">\ud83c\udfed Zinfabriek<\/div>\r\n      <h1>Bouw zinnen met woordkaartjes.<\/h1>\r\n      <p>\r\n        Kies de woorden in de juiste volgorde. Daarna ontdek je wie iets doet en wat er gebeurt.\r\n      <\/p>\r\n    <\/div>\r\n\r\n    <div class=\"zf-tabs\">\r\n      <button class=\"zf-tab active\" onclick=\"showZF(1)\">\ud83c\udf31<br>Level 1<br>Zin bouwen<\/button>\r\n      <button class=\"zf-tab\" onclick=\"showZF(2)\">\ud83d\udd0e<br>Level 2<br>Wie doet wat?<\/button>\r\n      <button class=\"zf-tab\" onclick=\"showZF(3)\">\ud83c\udfc6<br>Level 3<br>Extra woord<\/button>\r\n    <\/div>\r\n\r\n    <div id=\"zf-game-1\" class=\"zf-game active\">\r\n      <h2>\ud83c\udf31 Level 1: Bouw een goede zin<\/h2>\r\n      <p class=\"zf-soft\">Klik de woordkaartjes in de juiste volgorde.<\/p>\r\n\r\n      <div class=\"zf-box\">\r\n        <div id=\"zfWords1\" class=\"zf-wordbank\"><\/div>\r\n        <div id=\"zfBuild1\" class=\"zf-build\"><\/div>\r\n\r\n        <button class=\"zf-btn\" onclick=\"checkZF1()\">Controleer<\/button>\r\n        <button class=\"zf-btn\" onclick=\"newZF1()\">Nieuwe woorden<\/button>\r\n\r\n        <div id=\"zfFeedback1\" class=\"zf-feedback\"><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div id=\"zf-game-2\" class=\"zf-game\">\r\n      <h2>\ud83d\udd0e Level 2: Bouw en ontdek<\/h2>\r\n      <p class=\"zf-soft\">Bouw eerst de zin. Daarna klik je het onderwerp en het werkwoord.<\/p>\r\n\r\n      <div class=\"zf-box\">\r\n        <div id=\"zfWords2\" class=\"zf-wordbank\"><\/div>\r\n        <div id=\"zfBuild2\" class=\"zf-build\"><\/div>\r\n\r\n        <button class=\"zf-btn\" onclick=\"checkZF2()\">Controleer zin<\/button>\r\n        <button class=\"zf-btn\" onclick=\"newZF2()\">Nieuwe zin<\/button>\r\n\r\n        <div id=\"zfQuestion2\" class=\"zf-question\" style=\"display:none;\">\r\n          <p class=\"zf-soft\">Wie doet iets?<\/p>\r\n          <div id=\"zfSubject2\" class=\"zf-options\"><\/div>\r\n\r\n          <p class=\"zf-soft\">Wat gebeurt er?<\/p>\r\n          <div id=\"zfVerb2\" class=\"zf-options\"><\/div>\r\n        <\/div>\r\n\r\n        <div id=\"zfFeedback2\" class=\"zf-feedback\"><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div id=\"zf-game-3\" class=\"zf-game\">\r\n      <h2>\ud83c\udfc6 Level 3: Kies de juiste woorden<\/h2>\r\n      <p class=\"zf-soft\">Er staat \u00e9\u00e9n extra woord tussen. Bouw alleen met de woorden die kloppen.<\/p>\r\n\r\n      <div class=\"zf-box\">\r\n        <div id=\"zfWords3\" class=\"zf-wordbank\"><\/div>\r\n        <div id=\"zfBuild3\" class=\"zf-build\"><\/div>\r\n\r\n        <button class=\"zf-btn\" onclick=\"checkZF3()\">Controleer<\/button>\r\n        <button class=\"zf-btn\" onclick=\"newZF3()\">Nieuwe uitdaging<\/button>\r\n\r\n        <div id=\"zfFeedback3\" class=\"zf-feedback\"><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"zf-note\">\r\n      \ud83c\udf38 Ifi-regel:<br>\r\n      Een zin heeft vaak iemand of iets die iets doet.  \r\n      Vraag: <strong>wie doet iets?<\/strong> en <strong>wat gebeurt er?<\/strong>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\nconst zfSets = [\r\n  {words:[\"De hond\",\"rent\",\"snel\"], correct:[\"De hond\",\"rent\",\"snel\"], subject:\"De hond\", verb:\"rent\"},\r\n  {words:[\"Het meisje\",\"leest\",\"een boek\"], correct:[\"Het meisje\",\"leest\",\"een boek\"], subject:\"Het meisje\", verb:\"leest\"},\r\n  {words:[\"De bakker\",\"bakt\",\"brood\"], correct:[\"De bakker\",\"bakt\",\"brood\"], subject:\"De bakker\", verb:\"bakt\"},\r\n  {words:[\"Mijn broer\",\"speelt\",\"voetbal\"], correct:[\"Mijn broer\",\"speelt\",\"voetbal\"], subject:\"Mijn broer\", verb:\"speelt\"},\r\n  {words:[\"De vogel\",\"zingt\",\"mooi\"], correct:[\"De vogel\",\"zingt\",\"mooi\"], subject:\"De vogel\", verb:\"zingt\"},\r\n  {words:[\"De kinderen\",\"bouwen\",\"een hut\"], correct:[\"De kinderen\",\"bouwen\",\"een hut\"], subject:\"De kinderen\", verb:\"bouwen\"},\r\n  {words:[\"Mama\",\"maakt\",\"soep\"], correct:[\"Mama\",\"maakt\",\"soep\"], subject:\"Mama\", verb:\"maakt\"}\r\n];\r\n\r\nconst extraWords = [\"blauw\",\"tafel\",\"rennen\",\"de\",\"groot\",\"fiets\",\"vandaag\"];\r\n\r\nlet usedZF = [];\r\nlet currentZF1, currentZF2, currentZF3;\r\n\r\nfunction r(min,max){\r\n  return Math.floor(Math.random()*(max-min+1))+min;\r\n}\r\n\r\nfunction shuffle(arr){\r\n  return arr.sort(function(){return Math.random() - 0.5;});\r\n}\r\n\r\nfunction freshSet(){\r\n  if(usedZF.length >= zfSets.length){usedZF = [];}\r\n\r\n  let index;\r\n  do{\r\n    index = r(0,zfSets.length - 1);\r\n  }while(usedZF.includes(index) && usedZF.length < zfSets.length);\r\n\r\n  usedZF.push(index);\r\n  return zfSets[index];\r\n}\r\n\r\nfunction showZF(n){\r\n  document.querySelectorAll(\".zf-game\").forEach(function(game){\r\n    game.classList.remove(\"active\");\r\n  });\r\n\r\n  document.querySelectorAll(\".zf-tab\").forEach(function(tab){\r\n    tab.classList.remove(\"active\");\r\n  });\r\n\r\n  document.getElementById(\"zf-game-\" + n).classList.add(\"active\");\r\n  document.querySelectorAll(\".zf-tab\")[n - 1].classList.add(\"active\");\r\n\r\n  if(n === 1){newZF1();}\r\n  if(n === 2){newZF2();}\r\n  if(n === 3){newZF3();}\r\n}\r\n\r\nfunction makeWordButtons(words,bankId,buildId){\r\n  let html = \"\";\r\n\r\n  shuffle([...words]).forEach(function(word){\r\n    html += '<button class=\"zf-word\" onclick=\"moveToBuild(this,\\'' + buildId + '\\')\">' + word + '<\/button>';\r\n  });\r\n\r\n  document.getElementById(bankId).innerHTML = html;\r\n  document.getElementById(buildId).innerHTML = \"\";\r\n}\r\n\r\nfunction moveToBuild(button,buildId){\r\n  const copy = document.createElement(\"button\");\r\n  copy.className = \"zf-word\";\r\n  copy.innerText = button.innerText;\r\n  copy.onclick = function(){this.remove();};\r\n  document.getElementById(buildId).appendChild(copy);\r\n}\r\n\r\nfunction getBuilt(buildId){\r\n  return Array.from(document.querySelectorAll(\"#\" + buildId + \" .zf-word\")).map(function(btn){\r\n    return btn.innerText;\r\n  });\r\n}\r\n\r\nfunction sameSentence(built,correct){\r\n  return built.length === correct.length && built.every(function(word,index){\r\n    return word === correct[index];\r\n  });\r\n}\r\n\r\nfunction newZF1(){\r\n  currentZF1 = freshSet();\r\n  makeWordButtons(currentZF1.words,\"zfWords1\",\"zfBuild1\");\r\n  document.getElementById(\"zfFeedback1\").innerText = \"\";\r\n}\r\n\r\nfunction checkZF1(){\r\n  const built = getBuilt(\"zfBuild1\");\r\n\r\n  if(sameSentence(built,currentZF1.correct)){\r\n    document.getElementById(\"zfFeedback1\").innerHTML =\r\n      \"<strong>Goed gebouwd \ud83c\udf38<\/strong><br>\" + currentZF1.correct.join(\" \") + \".\";\r\n  }else{\r\n    document.getElementById(\"zfFeedback1\").innerText =\r\n      \"Bijna. Kijk rustig: wie begint? Wat gebeurt er daarna? \ud83d\udc9b\";\r\n  }\r\n}\r\n\r\nfunction newZF2(){\r\n  currentZF2 = freshSet();\r\n  makeWordButtons(currentZF2.words,\"zfWords2\",\"zfBuild2\");\r\n  document.getElementById(\"zfQuestion2\").style.display = \"none\";\r\n  document.getElementById(\"zfFeedback2\").innerText = \"\";\r\n}\r\n\r\nfunction checkZF2(){\r\n  const built = getBuilt(\"zfBuild2\");\r\n\r\n  if(sameSentence(built,currentZF2.correct)){\r\n    document.getElementById(\"zfFeedback2\").innerHTML =\r\n      \"<strong>Goed gebouwd \ud83c\udf38<\/strong><br>Nu kijken we wie iets doet.\";\r\n    showZF2Questions();\r\n  }else{\r\n    document.getElementById(\"zfFeedback2\").innerText =\r\n      \"Bijna. Zet de woorden rustig in een zin \ud83d\udc9b\";\r\n  }\r\n}\r\n\r\nfunction showZF2Questions(){\r\n  document.getElementById(\"zfQuestion2\").style.display = \"block\";\r\n\r\n  let subjectHtml = \"\";\r\n  let verbHtml = \"\";\r\n\r\n  currentZF2.correct.forEach(function(word){\r\n    subjectHtml += '<button class=\"zf-word\" onclick=\"checkZF2Subject(this,\\'' + word + '\\')\">' + word + '<\/button>';\r\n    verbHtml += '<button class=\"zf-word\" onclick=\"checkZF2Verb(this,\\'' + word + '\\')\">' + word + '<\/button>';\r\n  });\r\n\r\n  document.getElementById(\"zfSubject2\").innerHTML = subjectHtml;\r\n  document.getElementById(\"zfVerb2\").innerHTML = verbHtml;\r\n}\r\n\r\nfunction checkZF2Subject(button,word){\r\n  if(word === currentZF2.subject){\r\n    button.classList.add(\"selected\");\r\n    document.getElementById(\"zfFeedback2\").innerHTML =\r\n      \"<strong>Yes \ud83c\udf38<\/strong><br>\" + currentZF2.subject + \" doet iets.\";\r\n  }else{\r\n    button.classList.add(\"wrong\");\r\n    document.getElementById(\"zfFeedback2\").innerText =\r\n      \"Bijna. Vraag: wie of wat doet iets? \ud83d\udc9b\";\r\n  }\r\n}\r\n\r\nfunction checkZF2Verb(button,word){\r\n  if(word === currentZF2.verb){\r\n    button.classList.add(\"selected\");\r\n    document.getElementById(\"zfFeedback2\").innerHTML =\r\n      \"<strong>Mooi gezien \ud83c\udf3f<\/strong><br>\" + currentZF2.verb + \" vertelt wat er gebeurt.\";\r\n  }else{\r\n    button.classList.add(\"wrong\");\r\n    document.getElementById(\"zfFeedback2\").innerText =\r\n      \"Bijna. Zoek het doe-woord \ud83d\udc9b\";\r\n  }\r\n}\r\n\r\nfunction newZF3(){\r\n  currentZF3 = freshSet();\r\n\r\n  let extra = extraWords[r(0,extraWords.length - 1)];\r\n  let words = [...currentZF3.words, extra];\r\n\r\n  makeWordButtons(words,\"zfWords3\",\"zfBuild3\");\r\n  document.getElementById(\"zfFeedback3\").innerText = \"\";\r\n}\r\n\r\nfunction checkZF3(){\r\n  const built = getBuilt(\"zfBuild3\");\r\n\r\n  if(sameSentence(built,currentZF3.correct)){\r\n    document.getElementById(\"zfFeedback3\").innerHTML =\r\n      \"<strong>Yes fabriekbaas \ud83c\udf38<\/strong><br>Je koos de juiste woorden en maakte een goede zin.\";\r\n  }else{\r\n    document.getElementById(\"zfFeedback3\").innerText =\r\n      \"Bijna. Er staat \u00e9\u00e9n woord tussen dat je niet nodig hebt \ud83d\udc9b\";\r\n  }\r\n}\r\n\r\nnewZF1();\r\nnewZF2();\r\nnewZF3();\r\n<\/script>\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>\ud83c\udfed Zinfabriek Bouw zinnen met woordkaartjes. Kies de woorden in de juiste volgorde. Daarna ontdek je wie iets doet en wat er gebeurt. \ud83c\udf31Level 1Zin bouwen \ud83d\udd0eLevel 2Wie doet wat? \ud83c\udfc6Level 3Extra woord \ud83c\udf31 Level 1: Bouw een goede zin Klik de woordkaartjes in de juiste volgorde. Controleer Nieuwe woorden \ud83d\udd0e Level 2: Bouw en [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-3434","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/withifi.muhubonurture.nl\/index.php?rest_route=\/wp\/v2\/pages\/3434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/withifi.muhubonurture.nl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/withifi.muhubonurture.nl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/withifi.muhubonurture.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/withifi.muhubonurture.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3434"}],"version-history":[{"count":10,"href":"https:\/\/withifi.muhubonurture.nl\/index.php?rest_route=\/wp\/v2\/pages\/3434\/revisions"}],"predecessor-version":[{"id":3451,"href":"https:\/\/withifi.muhubonurture.nl\/index.php?rest_route=\/wp\/v2\/pages\/3434\/revisions\/3451"}],"wp:attachment":[{"href":"https:\/\/withifi.muhubonurture.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}