Widget:520Jeopardy: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 8: | Line 8: | ||
//<![CDATA[ | //<![CDATA[ | ||
(function(){ | (function(){ | ||
var J={s1:0,s2:0,tm:1,done:{},cur:null,tmr:30,ti:null,el:null}; | var J={s1:0,s2:0,tm:1,done:{},cur:null,tmr:30,ti:null,el:null,mute:false,actx:null}; | ||
var C=[ | var C=[ | ||
{n:"Cardiovascular",q:[ | {n:"Cardiovascular",q:[ | ||
| Line 53: | Line 53: | ||
]} | ]} | ||
]; | ]; | ||
var css='<style>#jepApp .jG{font-family:Arial,sans-serif;background:linear-gradient(135deg,rgb(30,58,95),rgb(12,25,41));padding:15px;border-radius:8px;color:white}#jepApp .jG *{margin:0;padding:0;box-sizing:border-box}#jepApp .t{text-align:center;color:rgb(251,191,36);font-size:1.6rem;font-weight:bold;margin-bottom:5px}#jepApp .st{text-align:center;color:rgb(147,197,253);margin-bottom:10px;font-size:.8rem}#jepApp .sb{display:flex;justify-content:center;gap:20px;margin-bottom:8px}#jepApp .tm{background:rgb(30,64,175);padding:8px 15px;border-radius:6px;text-align:center}#jepApp .tm.on{box-shadow:0 0 10px rgb(251,191,36)}#jepApp .tm h3{color:white;font-size:.8rem;margin-bottom:2px}#jepApp .sc{font-size:1.1rem;font-weight:bold}#jepApp .ps{color:rgb(74,222,128)}#jepApp .ng{color:rgb(248,113,113)}#jepApp .tr{text-align:center;color:rgb(251,191,36);font-size:.85rem;margin-bottom:8px}#jepApp .bd{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin-bottom:10px}#jepApp .ct{background:rgb(30,64,175);color:white;padding:6px 3px;text-align:center;font-weight:bold;font-size:.65rem;border-radius:3px 3px 0 0;min-height:35px;display:flex;align-items:center;justify-content:center}#jepApp .cl{background:rgb(37,99,235);color:rgb(251,191,36);padding:10px 3px;text-align:center;font-size:.9rem;font-weight:bold;border-radius:3px;cursor:pointer;border:none}#jepApp .cl:hover{background:rgb(59,130,246)}#jepApp .cl.dn{background:rgb(30,58,95);color:transparent;cursor:default}#jepApp .bt{text-align:center}#jepApp .rs{background:rgb(220,38,38);color:white;padding:5px 10px;border-radius:3px;font-weight:bold;cursor:pointer;border:none;font-size:.75rem}#jepApp .qv{background:rgb(30,64,175);border-radius:6px;padding:12px;max-width:550px;margin:0 auto}#jepApp .qh{text-align:center;margin-bottom:8px}#jepApp .qc{display:inline-block;background:rgb(251,191,36);color:rgb(30,58,95);padding:3px 10px;border-radius:10px;font-weight:bold;font-size:.75rem}#jepApp .qt{color:rgb(251,191,36);margin-top:4px;font-size:.75rem}#jepApp .ti{text-align:center;margin-bottom:6px}#jepApp .tb{display:inline-block;padding:4px 10px;border-radius:10px;font-size:.9rem;font-weight:bold;background:rgb(251,191,36);color:rgb(30,58,95)}#jepApp .tb.w{background:rgb(220,38,38);color:white}#jepApp .sx{background:rgb(29,78,216);border-radius:4px;padding:8px;margin-bottom:6px}#jepApp .sx h4{color:rgb(251,191,36);font-size:.7rem;margin-bottom:3px}#jepApp .sx p{font-size:.8rem;line-height:1.3}#jepApp .qx{background:rgb(37,99,235);border-radius:4px;padding:8px;margin-bottom:6px}#jepApp .qx h4{color:rgb(251,191,36);font-size:.7rem;margin-bottom:3px}#jepApp .qx p{font-size:.85rem;font-weight:600}#jepApp .ax{background:rgb(22,101,52);border-radius:4px;padding:8px;margin-bottom:6px}#jepApp .ax h4{color:rgb(251,191,36);font-size:.7rem;margin-bottom:3px}#jepApp .ax p{font-size:.8rem;line-height:1.3}#jepApp .qb{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:8px}#jepApp .bn{padding:6px 12px;border-radius:3px;font-weight:bold;cursor:pointer;border:none;font-size:.75rem}#jepApp .rv{background:rgb(251,191,36);color:rgb(30,58,95)}#jepApp .cr{background:rgb(34,197,94);color:white}#jepApp .wr{background:rgb(239,68,68);color:white}#jepApp .ov{text-align:center;padding:15px}#jepApp .ov h1{font-size:1.5rem;color:rgb(251,191,36);margin-bottom:8px}#jepApp .fn{font-size:.9rem;margin-bottom:3px}#jepApp .wn{font-size:1.1rem;color:rgb(251,191,36);font-weight:bold;margin-bottom:12px}</style>'; | function initAudio(){ | ||
if(!J.actx){try{J.actx=new(window.AudioContext||window.webkitAudioContext)();}catch(e){}} | |||
if(J.actx&&J.actx.state==="suspended"){J.actx.resume();} | |||
} | |||
function tone(f,d,t,v){ | |||
if(J.mute||!J.actx)return; | |||
try{ | |||
var o=J.actx.createOscillator(); | |||
var g=J.actx.createGain(); | |||
o.connect(g); | |||
g.connect(J.actx.destination); | |||
o.frequency.value=f; | |||
o.type=t||"sine"; | |||
g.gain.value=v||0.3; | |||
g.gain.exponentialRampToValueAtTime(0.01,J.actx.currentTime+d); | |||
o.start(); | |||
o.stop(J.actx.currentTime+d); | |||
}catch(e){} | |||
} | |||
function sndSelect(){ | |||
initAudio(); | |||
tone(523,0.1,"sine",0.2); | |||
setTimeout(function(){tone(659,0.1,"sine",0.2);},50); | |||
setTimeout(function(){tone(784,0.15,"sine",0.2);},100); | |||
} | |||
function sndCorrect(){ | |||
initAudio(); | |||
var n=[523,659,784,1047]; | |||
for(var i=0;i<n.length;i++){ | |||
(function(x){setTimeout(function(){tone(n[x],0.2,"sine",0.25);},x*100);})(i); | |||
} | |||
} | |||
function sndWrong(){ | |||
initAudio(); | |||
tone(200,0.3,"sawtooth",0.15); | |||
setTimeout(function(){tone(150,0.4,"sawtooth",0.15);},150); | |||
} | |||
function sndReveal(){ | |||
initAudio(); | |||
tone(440,0.1,"triangle",0.2); | |||
setTimeout(function(){tone(554,0.1,"triangle",0.2);},100); | |||
setTimeout(function(){tone(659,0.2,"triangle",0.2);},200); | |||
} | |||
var css='<style>#jepApp .jG{font-family:Arial,sans-serif;background:linear-gradient(135deg,rgb(30,58,95),rgb(12,25,41));padding:15px;border-radius:8px;color:white}#jepApp .jG *{margin:0;padding:0;box-sizing:border-box}#jepApp .t{text-align:center;color:rgb(251,191,36);font-size:1.6rem;font-weight:bold;margin-bottom:5px}#jepApp .st{text-align:center;color:rgb(147,197,253);margin-bottom:10px;font-size:.8rem}#jepApp .sb{display:flex;justify-content:center;gap:20px;margin-bottom:8px}#jepApp .tm{background:rgb(30,64,175);padding:8px 15px;border-radius:6px;text-align:center}#jepApp .tm.on{box-shadow:0 0 10px rgb(251,191,36)}#jepApp .tm h3{color:white;font-size:.8rem;margin-bottom:2px}#jepApp .sc{font-size:1.1rem;font-weight:bold}#jepApp .ps{color:rgb(74,222,128)}#jepApp .ng{color:rgb(248,113,113)}#jepApp .tr{text-align:center;color:rgb(251,191,36);font-size:.85rem;margin-bottom:8px}#jepApp .bd{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin-bottom:10px}#jepApp .ct{background:rgb(30,64,175);color:white;padding:6px 3px;text-align:center;font-weight:bold;font-size:.65rem;border-radius:3px 3px 0 0;min-height:35px;display:flex;align-items:center;justify-content:center}#jepApp .cl{background:rgb(37,99,235);color:rgb(251,191,36);padding:10px 3px;text-align:center;font-size:.9rem;font-weight:bold;border-radius:3px;cursor:pointer;border:none}#jepApp .cl:hover{background:rgb(59,130,246)}#jepApp .cl.dn{background:rgb(30,58,95);color:transparent;cursor:default}#jepApp .bt{text-align:center}#jepApp .rs{background:rgb(220,38,38);color:white;padding:5px 10px;border-radius:3px;font-weight:bold;cursor:pointer;border:none;font-size:.75rem;margin-right:5px}#jepApp .mt{background:rgb(30,64,175);color:white;padding:5px 10px;border-radius:3px;font-weight:bold;cursor:pointer;border:none;font-size:.9rem}#jepApp .qv{background:rgb(30,64,175);border-radius:6px;padding:12px;max-width:550px;margin:0 auto}#jepApp .qh{text-align:center;margin-bottom:8px}#jepApp .qc{display:inline-block;background:rgb(251,191,36);color:rgb(30,58,95);padding:3px 10px;border-radius:10px;font-weight:bold;font-size:.75rem}#jepApp .qt{color:rgb(251,191,36);margin-top:4px;font-size:.75rem}#jepApp .ti{text-align:center;margin-bottom:6px}#jepApp .tb{display:inline-block;padding:4px 10px;border-radius:10px;font-size:.9rem;font-weight:bold;background:rgb(251,191,36);color:rgb(30,58,95)}#jepApp .tb.w{background:rgb(220,38,38);color:white}#jepApp .sx{background:rgb(29,78,216);border-radius:4px;padding:8px;margin-bottom:6px}#jepApp .sx h4{color:rgb(251,191,36);font-size:.7rem;margin-bottom:3px}#jepApp .sx p{font-size:.8rem;line-height:1.3}#jepApp .qx{background:rgb(37,99,235);border-radius:4px;padding:8px;margin-bottom:6px}#jepApp .qx h4{color:rgb(251,191,36);font-size:.7rem;margin-bottom:3px}#jepApp .qx p{font-size:.85rem;font-weight:600}#jepApp .ax{background:rgb(22,101,52);border-radius:4px;padding:8px;margin-bottom:6px}#jepApp .ax h4{color:rgb(251,191,36);font-size:.7rem;margin-bottom:3px}#jepApp .ax p{font-size:.8rem;line-height:1.3}#jepApp .qb{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:8px}#jepApp .bn{padding:6px 12px;border-radius:3px;font-weight:bold;cursor:pointer;border:none;font-size:.75rem}#jepApp .rv{background:rgb(251,191,36);color:rgb(30,58,95)}#jepApp .cr{background:rgb(34,197,94);color:white}#jepApp .wr{background:rgb(239,68,68);color:white}#jepApp .ov{text-align:center;padding:15px}#jepApp .ov h1{font-size:1.5rem;color:rgb(251,191,36);margin-bottom:8px}#jepApp .fn{font-size:.9rem;margin-bottom:3px}#jepApp .wn{font-size:1.1rem;color:rgb(251,191,36);font-weight:bold;margin-bottom:12px}</style>'; | |||
function board(){ | function board(){ | ||
var h=css+'<div class="jG"><h1 class="t">Nursing Jeopardy</h1><p class="st">NSG 520</p>'; | var h=css+'<div class="jG"><h1 class="t">Nursing Jeopardy</h1><p class="st">NSG 520 - Click any tile to start!</p>'; | ||
h+='<div class="sb"><div class="tm'+(J.tm===1?' on':'')+'"><h3>Team 1</h3><div class="sc '+(J.s1>=0?'ps':'ng')+'">$'+J.s1+'</div></div>'; | h+='<div class="sb"><div class="tm'+(J.tm===1?' on':'')+'"><h3>Team 1</h3><div class="sc '+(J.s1>=0?'ps':'ng')+'">$'+J.s1+'</div></div>'; | ||
h+='<div class="tm'+(J.tm===2?' on':'')+'"><h3>Team 2</h3><div class="sc '+(J.s2>=0?'ps':'ng')+'">$'+J.s2+'</div></div></div>'; | h+='<div class="tm'+(J.tm===2?' on':'')+'"><h3>Team 2</h3><div class="sc '+(J.s2>=0?'ps':'ng')+'">$'+J.s2+'</div></div></div>'; | ||
| Line 61: | Line 104: | ||
for(var i=0;i<6;i++)h+='<div class="ct">'+C[i].n+'</div>'; | for(var i=0;i<6;i++)h+='<div class="ct">'+C[i].n+'</div>'; | ||
for(var r=0;r<5;r++)for(var c=0;c<6;c++){var k=c+'-'+r;h+=J.done[k]?'<button class="cl dn"></button>':'<button class="cl" onclick="jepPick('+c+','+r+')">$'+C[c].q[r].p+'</button>';} | for(var r=0;r<5;r++)for(var c=0;c<6;c++){var k=c+'-'+r;h+=J.done[k]?'<button class="cl dn"></button>':'<button class="cl" onclick="jepPick('+c+','+r+')">$'+C[c].q[r].p+'</button>';} | ||
h+='</div><div class="bt"><button class="rs" onclick="jepReset()">Reset</button></div></div>'; | h+='</div><div class="bt"><button class="rs" onclick="jepReset()">Reset</button><button class="mt" onclick="jepMute()">'+(J.mute?'🔇':'🔊')+'</button></div></div>'; | ||
J.el.innerHTML=h; | J.el.innerHTML=h; | ||
} | } | ||
| Line 87: | Line 130: | ||
J.el.innerHTML=h; | J.el.innerHTML=h; | ||
} | } | ||
window.jepPick=function(c,r){if(J.done[c+'-'+r])return;J.cur={c:c,r:r};J.tmr=30;clearInterval(J.ti);J.ti=setInterval(function(){J.tmr--;if(J.tmr<=0)clearInterval(J.ti);question();},1000);question();}; | window.jepPick=function(c,r){ | ||
window.jepReveal=function(){clearInterval(J.ti);answer();}; | if(J.done[c+'-'+r])return; | ||
window.jepAns=function(ok){clearInterval(J.ti);var q=C[J.cur.c].q[J.cur.r];if(J.tm===1)J.s1+=ok?q.p:-q.p;else J.s2+=ok?q.p:-q.p;J.done[J.cur.c+'-'+J.cur.r]=true;J.tm=J.tm===1?2:1;J.cur=null;Object.keys(J.done).length===30?gameover():board();}; | sndSelect(); | ||
window.jepReset=function(){clearInterval(J.ti);J.s1=0;J.s2=0;J.tm=1;J.done={};J.cur=null;J.tmr=30;board();}; | J.cur={c:c,r:r}; | ||
J.tmr=30; | |||
clearInterval(J.ti); | |||
J.ti=setInterval(function(){J.tmr--;if(J.tmr<=0)clearInterval(J.ti);question();},1000); | |||
question(); | |||
}; | |||
window.jepReveal=function(){ | |||
clearInterval(J.ti); | |||
sndReveal(); | |||
answer(); | |||
}; | |||
window.jepAns=function(ok){ | |||
clearInterval(J.ti); | |||
if(ok){sndCorrect();}else{sndWrong();} | |||
var q=C[J.cur.c].q[J.cur.r]; | |||
if(J.tm===1)J.s1+=ok?q.p:-q.p;else J.s2+=ok?q.p:-q.p; | |||
J.done[J.cur.c+'-'+J.cur.r]=true; | |||
J.tm=J.tm===1?2:1; | |||
J.cur=null; | |||
Object.keys(J.done).length===30?gameover():board(); | |||
}; | |||
window.jepReset=function(){ | |||
clearInterval(J.ti); | |||
J.s1=0;J.s2=0;J.tm=1;J.done={};J.cur=null;J.tmr=30; | |||
board(); | |||
}; | |||
window.jepMute=function(){ | |||
J.mute=!J.mute; | |||
board(); | |||
}; | |||
function init(){J.el=document.getElementById("jepApp");if(J.el)board();} | function init(){J.el=document.getElementById("jepApp");if(J.el)board();} | ||
if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",init);}else{init();} | if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",init);}else{init();} | ||
Latest revision as of 01:29, 11 January 2026
Nursing Pharmacology Jeopardy Game for NSG 520
Usage
{{#widget:520Jeapordy}}