{"id":11547,"date":"2026-08-22T16:30:53","date_gmt":"2026-08-22T13:30:53","guid":{"rendered":"https:\/\/lingualand.gr\/new\/exercises\/b-junior-listening-06-crazy-house-rules\/"},"modified":"2026-08-22T17:02:59","modified_gmt":"2026-08-22T14:02:59","slug":"b-junior-listening-06-crazy-house-rules","status":"publish","type":"page","link":"https:\/\/lingualand.gr\/new\/exercises\/b-junior-listening-06-crazy-house-rules\/","title":{"rendered":"B Junior Listening 6 \u2013 Crazy House Rules"},"content":{"rendered":"<!-- lingualand-listening-access:bj:lesson:start -->\n<div id=\"accessGate-lesson-bj\" class=\"lingualand-listening-access-gate\" style=\"min-height:320px;display:grid;place-items:center;padding:20px;background:#eef3f8;color:#172033;font-family:Arial,sans-serif\"><form id=\"accessForm-lesson-bj\" style=\"width:min(420px,100%);background:#fff;border-radius:14px;padding:24px;box-shadow:0 4px 16px #243a8f22\"><h4 style=\"margin:0 0 10px;color:#243a8f;font-size:1.45rem\">B Junior Listening Access<\/h4><p style=\"margin:0 0 16px\">Enter your access key to open the exercises.<\/p><input id=\"accessKey-lesson-bj\" type=\"password\" autocomplete=\"off\" style=\"width:100%;padding:12px;border:1px solid #aab3c2;border-radius:9px;font-size:1rem\" aria-label=\"Access key\"><button type=\"submit\" style=\"margin-top:14px;width:100%;padding:12px;border:0;border-radius:9px;background:#243a8f;color:white;font-weight:bold;cursor:pointer\">Open exercises<\/button><div id=\"accessMessage-lesson-bj\" style=\"min-height:22px;margin-top:12px;color:#b91c1c;font-weight:bold\" aria-live=\"polite\"><\/div><\/form><\/div><div id=\"exerciseApp-lesson-bj\" hidden><!-- lingualand-listening-exercise:bj:6:start -->\n<div class=\"lingualand-bj-listening-exercise-page\" style=\"max-width:1100px;margin:20px auto;\"><iframe title=\"B Junior Listening 6 \u2013 Crazy House Rules\" srcdoc=\"&lt;!doctype html&gt;\n&lt;html lang=&quot;en&quot;&gt;\n&lt;head&gt;\n  &lt;meta charset=&quot;utf-8&quot;&gt;\n  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,initial-scale=1&quot;&gt;\n  &lt;title&gt;B Junior Listening 6 \u2013 Crazy House Rules&lt;\/title&gt;\n  &lt;style&gt;\n    :root{--purple:#573c87;--pink:#d85688;--yellow:#ffd66b;--green:#27864a;--red:#c43d3d;--ink:#2d2940;--pale:#f7f1ff;--line:#ded5ec}\n    *{box-sizing:border-box}\n    body{margin:0;min-height:100vh;padding:24px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:linear-gradient(145deg,#f3eaff,#fff7d8)}\n    .page{width:min(920px,100%);margin:auto;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 16px 45px #38266025}\n    header{padding:26px 28px;text-align:center;color:#fff;background:linear-gradient(120deg,var(--purple),#7c4ba7)}\n    .brand{margin:0 0 7px;color:var(--yellow);font-weight:900;letter-spacing:1.5px;text-transform:uppercase;font-size:.84rem}\n    h1{margin:0;font-size:clamp(1.7rem,4vw,2.45rem)}\n    header p{margin:8px 0 0;opacity:.94}\n    main{padding:28px}\n    .instructions{padding:16px 18px;border-left:5px solid var(--pink);border-radius:11px;background:var(--pale);line-height:1.5}\n    .audio-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:20px 0 24px}\n    button{border:0;border-radius:11px;padding:12px 17px;font-size:.96rem;font-weight:800;cursor:pointer;transition:.15s}\n    button:hover{transform:translateY(-1px);filter:brightness(.97)}\n    button:disabled{opacity:.55;cursor:not-allowed;transform:none}\n    .listen-all{background:var(--purple);color:#fff}.stop,.reset{background:#ede8f4;color:var(--purple)}\n    #audioStatus{min-width:195px;color:var(--purple);font-weight:800;text-align:center}\n    .questions{display:grid;gap:14px}\n    .question{padding:17px;border:2px solid var(--line);border-radius:16px;background:#fff}\n    .question.missing{border-color:#dfa624;background:#fffaf0}\n    .q-head{display:flex;align-items:center;gap:12px;margin-bottom:13px}\n    .number{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:50%;background:var(--purple);color:#fff;font-weight:900}\n    .q-head h2{flex:1;margin:0;font-size:1.04rem}\n    .listen-one{padding:8px 12px;background:var(--pink);color:#fff;font-size:.82rem}\n    .options{display:grid;grid-template-columns:1fr 1fr;gap:11px}\n    .choice{display:flex;align-items:center;gap:11px;min-height:60px;padding:12px;border:3px solid #ddd6e8;border-radius:13px;background:#fff;cursor:pointer;font-weight:800;line-height:1.3;transition:.15s}\n    .choice:hover{border-color:#a98aca;background:#fbf8ff}\n    .choice input{width:19px;height:19px;flex:0 0 auto;accent-color:var(--purple)}\n    .choice.correct{border-color:var(--green);background:#edfbf3;color:#176739}\n    .choice.wrong{border-color:var(--red);background:#fff0f0;color:#9d2929}\n    .choice.answer{border-color:var(--green);box-shadow:0 0 0 2px #27864a30 inset}\n    .actions{display:flex;justify-content:center;gap:11px;margin-top:24px}\n    .check{background:var(--green);color:#fff}\n    #result{min-height:38px;margin:18px 0 0;text-align:center;font-size:1.16rem;font-weight:900}\n    footer{text-align:center;padding:0 20px 22px;color:#777083;font-size:.83rem}\n    @media(max-width:650px){body{padding:10px}main{padding:18px}.options{grid-template-columns:1fr}.q-head{flex-wrap:wrap}.q-head h2{min-width:calc(100% - 48px)}.listen-one{margin-left:46px}.actions{flex-direction:column}.actions button{width:100%}.audio-bar{align-items:stretch}.audio-bar button{flex:1 1 140px}}\n  &lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n  &lt;section class=&quot;page&quot;&gt;\n    &lt;header&gt;\n      &lt;p class=&quot;brand&quot;&gt;Lingualand \u00b7 Est. 1972&lt;\/p&gt;\n      &lt;h1&gt;Crazy House Rules!&lt;\/h1&gt;\n      &lt;p&gt;B Junior \u00b7 Must \/ Mustn't Listening&lt;\/p&gt;\n    &lt;\/header&gt;\n    &lt;main&gt;\n      &lt;div class=&quot;instructions&quot;&gt;&lt;strong&gt;Listen to Mum and Ryanna.&lt;\/strong&gt; Mum\u2019s rules are very strange! Choose the place where Ryanna &lt;strong&gt;must&lt;\/strong&gt; do each activity. Listen carefully to both &lt;em&gt;must&lt;\/em&gt; and &lt;em&gt;mustn\u2019t&lt;\/em&gt;.&lt;\/div&gt;\n\n      &lt;div class=&quot;audio-bar&quot;&gt;\n        &lt;button class=&quot;listen-all&quot; id=&quot;listenAll&quot; type=&quot;button&quot;&gt;\u25b6 Listen to all&lt;\/button&gt;\n        &lt;button class=&quot;stop&quot; id=&quot;stopAudio&quot; type=&quot;button&quot; disabled&gt;\u25a0 Stop&lt;\/button&gt;\n        &lt;span id=&quot;audioStatus&quot; aria-live=&quot;polite&quot;&gt;Ready to listen&lt;\/span&gt;\n      &lt;\/div&gt;\n\n      &lt;section class=&quot;questions&quot; id=&quot;questions&quot; aria-label=&quot;Listening questions&quot;&gt;&lt;\/section&gt;\n\n      &lt;div class=&quot;actions&quot;&gt;\n        &lt;button class=&quot;check&quot; id=&quot;checkAnswers&quot; type=&quot;button&quot;&gt;Check answers&lt;\/button&gt;\n        &lt;button class=&quot;reset&quot; id=&quot;resetExercise&quot; type=&quot;button&quot;&gt;Try again&lt;\/button&gt;\n      &lt;\/div&gt;\n      &lt;p id=&quot;result&quot; aria-live=&quot;polite&quot;&gt;&lt;\/p&gt;\n    &lt;\/main&gt;\n    &lt;footer&gt;The listening transcript is hidden during the activity.&lt;\/footer&gt;\n  &lt;\/section&gt;\n\n  &lt;script&gt;\n    const rules=[\n      {activity:&quot;eat&quot;,line:&quot;You mustn't eat in the kitchen. You must eat in the bathroom.&quot;,correct:1,options:[&quot;in the kitchen&quot;,&quot;in the bathroom&quot;]},\n      {activity:&quot;play&quot;,line:&quot;You mustn't play in your bedroom. You must play in the living room.&quot;,correct:0,options:[&quot;in the living room&quot;,&quot;in her bedroom&quot;]},\n      {activity:&quot;sleep&quot;,line:&quot;You mustn't sleep in your bedroom. You must sleep in the kitchen.&quot;,correct:0,options:[&quot;in the kitchen&quot;,&quot;in her bedroom&quot;]},\n      {activity:&quot;read books&quot;,line:&quot;You mustn't read books in the living room. You must read them in the garden.&quot;,correct:1,options:[&quot;in the living room&quot;,&quot;in the garden&quot;]},\n      {activity:&quot;sing&quot;,line:&quot;You mustn't sing in the bathroom. You must sing in the bedroom.&quot;,correct:0,options:[&quot;in the bedroom&quot;,&quot;in the bathroom&quot;]},\n      {activity:&quot;do her homework&quot;,line:&quot;You mustn't do your homework at your desk. You must do it under the table.&quot;,correct:1,options:[&quot;at her desk&quot;,&quot;under the table&quot;]},\n      {activity:&quot;keep her shoes&quot;,line:&quot;You mustn't keep your shoes by the door. You must keep them in the fridge.&quot;,correct:0,options:[&quot;in the fridge&quot;,&quot;by the door&quot;]}\n    ];\n\n    const questions=document.getElementById(&quot;questions&quot;);\n    rules.forEach((item,index)=&gt;{\n      const article=document.createElement(&quot;article&quot;);\n      article.className=&quot;question&quot;;\n      article.dataset.question=index;\n      article.innerHTML=`\n        &lt;div class=&quot;q-head&quot;&gt;\n          &lt;span class=&quot;number&quot;&gt;${index+1}&lt;\/span&gt;\n          &lt;h2&gt;Ryanna must ${item.activity}:&lt;\/h2&gt;\n          &lt;button class=&quot;listen-one&quot; type=&quot;button&quot; data-listen-rule=&quot;${index}&quot;&gt;\u25b6 Listen&lt;\/button&gt;\n        &lt;\/div&gt;\n        &lt;div class=&quot;options&quot;&gt;\n          ${item.options.map((option,optionIndex)=&gt;`&lt;label class=&quot;choice&quot; data-option=&quot;${optionIndex}&quot;&gt;&lt;input type=&quot;radio&quot; name=&quot;rule-${index}&quot; value=&quot;${optionIndex}&quot;&gt;&lt;span&gt;&lt;strong&gt;${optionIndex===0?&quot;A&quot;:&quot;B&quot;}.&lt;\/strong&gt; ${option}&lt;\/span&gt;&lt;\/label&gt;`).join(&quot;&quot;)}\n        &lt;\/div&gt;`;\n      questions.appendChild(article);\n    });\n\n    const mumProfile={names:[&quot;Google UK English Female&quot;,&quot;Microsoft Aria&quot;,&quot;Microsoft Zira&quot;,&quot;Serena&quot;,&quot;Samantha&quot;,&quot;Karen&quot;,&quot;Moira&quot;,&quot;Victoria&quot;,&quot;Fiona&quot;,&quot;Tessa&quot;],pitch:.94,rate:.82};\n    const girlProfile={names:[&quot;Microsoft Ana&quot;,&quot;Ava&quot;,&quot;Sandy&quot;,&quot;Flo&quot;,&quot;Shelley&quot;,&quot;Google US English&quot;,&quot;Samantha&quot;],pitch:1.13,rate:.80};\n    const listenAll=document.getElementById(&quot;listenAll&quot;);\n    const stopAudio=document.getElementById(&quot;stopAudio&quot;);\n    const audioStatus=document.getElementById(&quot;audioStatus&quot;);\n    const result=document.getElementById(&quot;result&quot;);\n    let playToken=0;\n\n    function findVoice(profile,excluded=&quot;&quot;){\n      const voices=speechSynthesis.getVoices();\n      const english=voices.filter(voice=&gt;\/^en[-_]\/i.test(voice.lang));\n      return profile.names.map(name=&gt;english.find(voice=&gt;voice.name.toLowerCase().includes(name.toLowerCase())&amp;&amp;voice.name!==excluded)).find(Boolean)\n        || english.find(voice=&gt;\/female|woman|girl|zira|aria|samantha|serena|karen|victoria|fiona|moira|ava|sandy|flo|shelley|ana\/i.test(voice.name)&amp;&amp;voice.name!==excluded)\n        || null;\n    }\n    function setAudioState(playing,status){\n      listenAll.disabled=playing;\n      stopAudio.disabled=!playing;\n      document.querySelectorAll(&quot;.listen-one&quot;).forEach(button=&gt;button.disabled=playing);\n      audioStatus.textContent=status;\n    }\n    function speak(text,profile,voice,onDone,token){\n      const utterance=new SpeechSynthesisUtterance(text);\n      if(voice){utterance.voice=voice;utterance.lang=voice.lang}else utterance.lang=&quot;en-GB&quot;;\n      utterance.pitch=profile.pitch;\n      utterance.rate=profile.rate;\n      utterance.volume=1;\n      utterance.onend=()=&gt;{if(token===playToken)onDone()};\n      utterance.onerror=()=&gt;{if(token===playToken)onDone()};\n      speechSynthesis.speak(utterance);\n    }\n    function getVoices(){\n      const mum=findVoice(mumProfile);\n      const girl=findVoice(girlProfile,mum?.name||&quot;&quot;);\n      return mum&amp;&amp;girl?{mum,girl}:null;\n    }\n    function playRule(index,onDone,token,voices){\n      audioStatus.textContent=`Listening: rule ${index+1}`;\n      speak(rules[index].line,mumProfile,voices.mum,onDone,token);\n    }\n    function unsupported(){\n      if(!(&quot;speechSynthesis&quot; in window)){\n        setAudioState(false,&quot;Audio is unavailable in this browser&quot;);\n        return true;\n      }\n      return false;\n    }\n\n    listenAll.addEventListener(&quot;click&quot;,()=&gt;{\n      if(unsupported())return;\n      speechSynthesis.cancel();\n      const voices=getVoices();\n      if(!voices){setAudioState(false,&quot;Woman and girl voices are unavailable here \u2014 open in Safari&quot;);return}\n      const token=++playToken;\n      setAudioState(true,&quot;Starting...&quot;);\n      speak(&quot;Mum, what are the new rules?&quot;,girlProfile,voices.girl,()=&gt;{\n        setTimeout(()=&gt;speak(&quot;Ryanna, listen carefully. I have some new rules for our home.&quot;,mumProfile,voices.mum,()=&gt;{\n          function next(index){\n            if(token!==playToken)return;\n            if(index===rules.length){\n              setTimeout(()=&gt;speak(&quot;Mum, these rules are crazy!&quot;,girlProfile,voices.girl,()=&gt;setAudioState(false,&quot;Ready to listen again&quot;),token),450);\n              return;\n            }\n            playRule(index,()=&gt;setTimeout(()=&gt;next(index+1),600),token,voices);\n          }\n          setTimeout(()=&gt;next(0),500);\n        },token),350);\n      },token);\n    });\n\n    document.addEventListener(&quot;click&quot;,event=&gt;{\n      const button=event.target.closest(&quot;.listen-one&quot;);\n      if(!button||unsupported())return;\n      speechSynthesis.cancel();\n      const voices=getVoices();\n      if(!voices){setAudioState(false,&quot;Woman and girl voices are unavailable here \u2014 open in Safari&quot;);return}\n      const token=++playToken,index=Number(button.dataset.listenRule);\n      setAudioState(true,`Starting rule ${index+1}...`);\n      playRule(index,()=&gt;setAudioState(false,&quot;Ready to listen again&quot;),token,voices);\n    });\n\n    stopAudio.addEventListener(&quot;click&quot;,()=&gt;{\n      playToken++;\n      if(&quot;speechSynthesis&quot; in window)speechSynthesis.cancel();\n      setAudioState(false,&quot;Stopped&quot;);\n    });\n\n    document.getElementById(&quot;checkAnswers&quot;).addEventListener(&quot;click&quot;,()=&gt;{\n      let score=0,answered=0;\n      document.querySelectorAll(&quot;.question&quot;).forEach((question,index)=&gt;{\n        question.classList.remove(&quot;missing&quot;);\n        question.querySelectorAll(&quot;.choice&quot;).forEach(choice=&gt;choice.classList.remove(&quot;correct&quot;,&quot;wrong&quot;,&quot;answer&quot;));\n        const selected=question.querySelector(&quot;input:checked&quot;),correct=rules[index].correct;\n        if(!selected){\n          question.classList.add(&quot;missing&quot;);\n          question.querySelector(`[data-option=&quot;${correct}&quot;]`).classList.add(&quot;answer&quot;);\n          return;\n        }\n        answered++;\n        const chosen=Number(selected.value);\n        if(chosen===correct){\n          score++;\n          question.querySelector(`[data-option=&quot;${chosen}&quot;]`).classList.add(&quot;correct&quot;);\n        }else{\n          question.querySelector(`[data-option=&quot;${chosen}&quot;]`).classList.add(&quot;wrong&quot;);\n          question.querySelector(`[data-option=&quot;${correct}&quot;]`).classList.add(&quot;answer&quot;);\n        }\n      });\n      result.textContent=`Score: ${score}\/7 (${Math.round(score\/7*100)}%) \u2014 Answered: ${answered}\/7`;\n      result.style.color=score===7?&quot;#27864a&quot;:&quot;#573c87&quot;;\n    });\n\n    document.getElementById(&quot;resetExercise&quot;).addEventListener(&quot;click&quot;,()=&gt;{\n      playToken++;\n      if(&quot;speechSynthesis&quot; in window)speechSynthesis.cancel();\n      setAudioState(false,&quot;Ready to listen&quot;);\n      document.querySelectorAll(&quot;input[type=radio]&quot;).forEach(input=&gt;input.checked=false);\n      document.querySelectorAll(&quot;.question&quot;).forEach(question=&gt;{\n        question.classList.remove(&quot;missing&quot;);\n        question.querySelectorAll(&quot;.choice&quot;).forEach(choice=&gt;choice.classList.remove(&quot;correct&quot;,&quot;wrong&quot;,&quot;answer&quot;));\n      });\n      result.textContent=&quot;&quot;;\n      window.scrollTo({top:0,behavior:&quot;smooth&quot;});\n    });\n\n    window.addEventListener(&quot;beforeunload&quot;,()=&gt;{\n      playToken++;\n      if(&quot;speechSynthesis&quot; in window)speechSynthesis.cancel();\n    });\n  &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n\" style=\"width:100%;min-height:1850px;border:0;border-radius:8px;background:#f8fafc;display:block;\" loading=\"eager\" allow=\"autoplay\"><\/iframe><\/div>\n<!-- lingualand-listening-exercise:bj:6:end --><\/div><script>(function(){const expectedHash=\"54c6e6001970489b11bc97cf0986b7b9f1684d10c293be936a975466a86f94b1\";const storageKey=\"lingualandListeningAccess:bj\";const form=document.getElementById(\"accessForm-lesson-bj\"),keyInput=document.getElementById(\"accessKey-lesson-bj\"),msg=document.getElementById(\"accessMessage-lesson-bj\"),gate=document.getElementById(\"accessGate-lesson-bj\"),app=document.getElementById(\"exerciseApp-lesson-bj\");async function sha256(text){const bytes=new TextEncoder().encode(text);const digest=await crypto.subtle.digest(\"SHA-256\",bytes);return Array.from(new Uint8Array(digest)).map(b=>b.toString(16).padStart(2,\"0\")).join(\"\");}function deny(text){msg.textContent=text;app.hidden=true;gate.style.display=\"grid\";}function allow(){try{sessionStorage.setItem(storageKey,\"1\");}catch(e){} gate.style.display=\"none\";app.hidden=false;keyInput.value=\"\";}try{if(sessionStorage.getItem(storageKey)===\"1\") allow();}catch(e){}form.addEventListener(\"submit\",async function(e){e.preventDefault();const entered=keyInput.value.trim();if(!entered){deny(\"Please enter the access key.\");return;}try{const hash=await sha256(entered);if(hash===expectedHash){allow();}else{deny(\"Incorrect access key.\");}}catch(err){deny(\"Access check is unavailable in this browser.\");}});})();<\/script>\n<!-- lingualand-listening-access:bj:lesson:end -->","protected":false},"excerpt":{"rendered":"<p>B Junior Listening Access Enter your access key to open the exercises. Open exercises<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":9619,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-11547","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/11547","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/comments?post=11547"}],"version-history":[{"count":1,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/11547\/revisions"}],"predecessor-version":[{"id":11575,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/11547\/revisions\/11575"}],"up":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/9619"}],"wp:attachment":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/media?parent=11547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}