Widget:520FamilyFeud: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 3: | Line 3: | ||
== Usage == | == Usage == | ||
<pre>{{# | <pre>{{#widget:FamilyFeudNursing}}</pre> | ||
</noinclude><includeonly><html> | </noinclude><includeonly><html> | ||
<div class="family-feud-nursing-game"> | <div class="family-feud-nursing-game"> | ||
| Line 27: | Line 11: | ||
font-family: 'Oswald', sans-serif; | font-family: 'Oswald', sans-serif; | ||
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); | background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); | ||
min-height: | min-height: 700px; | ||
height: 700px; | |||
color: white; | color: white; | ||
padding: 20px; | padding: 20px; | ||
border-radius: 12px; | |||
position: relative; | |||
overflow: hidden; | |||
} | } | ||
.family-feud-nursing-game .ff-container { max-width: | .family-feud-nursing-game .ff-container { max-width: 1000px; margin: 0 auto; height: 100%; } | ||
.family-feud-nursing-game .ff-title { text-align: center; margin-bottom: | .family-feud-nursing-game .ff-title { text-align: center; margin-bottom: 15px; } | ||
.family-feud-nursing-game .ff-title h1 { | .family-feud-nursing-game .ff-title h1 { | ||
font-family: 'Bebas Neue', sans-serif; | font-family: 'Bebas Neue', sans-serif; | ||
font-size: | font-size: 2.8rem; | ||
background: linear-gradient(180deg, #ffd700, #ff8c00, #ff4500); | background: linear-gradient(180deg, #ffd700, #ff8c00, #ff4500); | ||
-webkit-background-clip: text; | -webkit-background-clip: text; | ||
-webkit-text-fill-color: transparent; | -webkit-text-fill-color: transparent; | ||
background-clip: text; | background-clip: text; | ||
letter-spacing: | letter-spacing: 6px; | ||
} | } | ||
.family-feud-nursing-game .ff-subtitle { font-size: 1. | .family-feud-nursing-game .ff-subtitle { font-size: 1.1rem; color: #00d4ff; letter-spacing: 4px; } | ||
.family-feud-nursing-game .ff-steve { | .family-feud-nursing-game .ff-steve { | ||
display: flex; align-items: center; gap: | display: flex; align-items: center; gap: 15px; | ||
background: linear-gradient(145deg, #2d2d44, #1a1a2e); | background: linear-gradient(145deg, #2d2d44, #1a1a2e); | ||
border-radius: | border-radius: 15px; padding: 15px; margin-bottom: 15px; | ||
border: | border: 2px solid #ffd700; | ||
} | } | ||
.family-feud-nursing-game .ff-steve-avatar { | .family-feud-nursing-game .ff-steve-avatar { | ||
width: | width: 60px; height: 60px; | ||
background: linear-gradient(135deg, #ffd700, #ff8c00); | background: linear-gradient(135deg, #ffd700, #ff8c00); | ||
border-radius: 50%; display: flex; align-items: center; | border-radius: 50%; display: flex; align-items: center; | ||
justify-content: center; font-size: | justify-content: center; font-size: 2rem; border: 3px solid #fff; | ||
flex-shrink: 0; | |||
} | } | ||
.family-feud-nursing-game .ff-steve-avatar.ff-happy { animation: ffHappy 0.5s ease-out; } | .family-feud-nursing-game .ff-steve-avatar.ff-happy { animation: ffHappy 0.5s ease-out; } | ||
| Line 61: | Line 50: | ||
@keyframes ffHappy { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.2) rotate(10deg); } } | @keyframes ffHappy { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.2) rotate(10deg); } } | ||
@keyframes ffShock { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.3) rotate(-10deg); } } | @keyframes ffShock { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.3) rotate(-10deg); } } | ||
.family-feud-nursing-game .ff-steve-name { font-family: 'Bebas Neue', sans-serif; color: #ffd700; letter-spacing: 2px; } | .family-feud-nursing-game .ff-steve-name { font-family: 'Bebas Neue', sans-serif; color: #ffd700; letter-spacing: 2px; font-size: 0.9rem; } | ||
.family-feud-nursing-game .ff-steve-dialogue { font-size: 1. | .family-feud-nursing-game .ff-steve-dialogue { font-size: 1.1rem; line-height: 1.3; margin-top: 3px; } | ||
.family-feud-nursing-game .ff-scores { display: flex; justify-content: center; gap: | .family-feud-nursing-game .ff-scores { display: flex; justify-content: center; gap: 20px; margin-bottom: 15px; } | ||
.family-feud-nursing-game .ff-score-box { | .family-feud-nursing-game .ff-score-box { | ||
background: linear-gradient(145deg, #0f3460, #16213e); | background: linear-gradient(145deg, #0f3460, #16213e); | ||
padding: | padding: 10px 30px; border-radius: 12px; border: 2px solid #00d4ff; text-align: center; | ||
} | } | ||
.family-feud-nursing-game .ff-score-label { font-size: 0. | .family-feud-nursing-game .ff-score-label { font-size: 0.75rem; color: #00d4ff; text-transform: uppercase; letter-spacing: 2px; } | ||
.family-feud-nursing-game .ff-score-value { font-family: 'Bebas Neue', sans-serif; font-size: | .family-feud-nursing-game .ff-score-value { font-family: 'Bebas Neue', sans-serif; font-size: 2rem; color: #ffd700; } | ||
.family-feud-nursing-game .ff-strikes { display: flex; justify-content: center; gap: | .family-feud-nursing-game .ff-strikes { display: flex; justify-content: center; gap: 12px; margin-bottom: 15px; } | ||
.family-feud-nursing-game .ff-strike { | .family-feud-nursing-game .ff-strike { | ||
width: | width: 60px; height: 60px; background: #1a1a2e; border: 3px solid #333; | ||
border-radius: | border-radius: 10px; display: flex; align-items: center; justify-content: center; | ||
font-size: | font-size: 2.2rem; color: transparent; | ||
} | } | ||
.family-feud-nursing-game .ff-strike.ff-active { | .family-feud-nursing-game .ff-strike.ff-active { | ||
| Line 83: | Line 72: | ||
animation: ffStrikeFlash 0.3s ease-out; | animation: ffStrikeFlash 0.3s ease-out; | ||
} | } | ||
@keyframes ffStrikeFlash { 0% { transform: scale(1. | @keyframes ffStrikeFlash { 0% { transform: scale(1.4); } 100% { transform: scale(1); } } | ||
.family-feud-nursing-game .ff-x-overlay, .family-feud-nursing-game .ff-ding-overlay { | .family-feud-nursing-game .ff-x-overlay, .family-feud-nursing-game .ff-ding-overlay { | ||
position: | position: absolute; top: 0; left: 0; width: 100%; height: 100%; | ||
display: none; align-items: center; justify-content: center; z-index: | display: none; align-items: center; justify-content: center; z-index: 50; | ||
pointer-events: none; border-radius: 12px; | |||
} | } | ||
.family-feud-nursing-game .ff-x-overlay { background: rgba(139, 0, 0, 0.9); } | .family-feud-nursing-game .ff-x-overlay { background: rgba(139, 0, 0, 0.9); } | ||
| Line 94: | Line 84: | ||
.family-feud-nursing-game .ff-ding-overlay.ff-show { animation: ffOverlayFade 0.7s forwards; } | .family-feud-nursing-game .ff-ding-overlay.ff-show { animation: ffOverlayFade 0.7s forwards; } | ||
@keyframes ffOverlayFade { 0%, 60% { opacity: 1; } 100% { opacity: 0; } } | @keyframes ffOverlayFade { 0%, 60% { opacity: 1; } 100% { opacity: 0; } } | ||
.family-feud-nursing-game .ff-big-x { font-size: | .family-feud-nursing-game .ff-big-x { font-size: 15rem; color: #fff; font-family: 'Bebas Neue', sans-serif; animation: ffPopIn 0.2s ease-out; } | ||
.family-feud-nursing-game .ff-ding-text { font-size: | .family-feud-nursing-game .ff-ding-text { font-size: 12rem; color: #90EE90; font-family: 'Bebas Neue', sans-serif; animation: ffPopIn 0.2s ease-out; } | ||
@keyframes ffPopIn { 0% { transform: scale(0); } 100% { transform: scale(1); } } | @keyframes ffPopIn { 0% { transform: scale(0); } 100% { transform: scale(1); } } | ||
.family-feud-nursing-game .ff-board { | .family-feud-nursing-game .ff-board { | ||
background: linear-gradient(180deg, #1a237e, #0d47a1); | background: linear-gradient(180deg, #1a237e, #0d47a1); | ||
border-radius: | border-radius: 15px; padding: 20px; margin-bottom: 15px; | ||
border: | border: 4px solid #ffd700; | ||
} | } | ||
.family-feud-nursing-game .ff-question { | .family-feud-nursing-game .ff-question { | ||
text-align: center; margin-bottom: | text-align: center; margin-bottom: 15px; padding: 12px; | ||
background: rgba(0,0,0,0.4); border-radius: | background: rgba(0,0,0,0.4); border-radius: 10px; border: 2px solid #ffd700; | ||
} | } | ||
.family-feud-nursing-game .ff-category { font-size: 0. | .family-feud-nursing-game .ff-category { font-size: 0.8rem; color: #00d4ff; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 6px; } | ||
.family-feud-nursing-game .ff-question-text { font-size: 1. | .family-feud-nursing-game .ff-question-text { font-size: 1.2rem; line-height: 1.3; } | ||
.family-feud-nursing-game .ff-answers { display: grid; grid-template-columns: repeat(2, 1fr); gap: | .family-feud-nursing-game .ff-answers { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; } | ||
.family-feud-nursing-game .ff-answer { | .family-feud-nursing-game .ff-answer { | ||
background: linear-gradient(145deg, #0d47a1, #1565c0); | background: linear-gradient(145deg, #0d47a1, #1565c0); | ||
border: | border: 2px solid #2196f3; border-radius: 8px; padding: 10px 12px; | ||
display: flex; justify-content: space-between; align-items: center; min-height: | display: flex; justify-content: space-between; align-items: center; min-height: 48px; | ||
} | } | ||
.family-feud-nursing-game .ff-answer.ff-revealed { | .family-feud-nursing-game .ff-answer.ff-revealed { | ||
| Line 121: | Line 111: | ||
} | } | ||
@keyframes ffReveal { 0% { transform: rotateX(90deg); } 100% { transform: rotateX(0); } } | @keyframes ffReveal { 0% { transform: rotateX(90deg); } 100% { transform: rotateX(0); } } | ||
.family-feud-nursing-game .ff-answer-num { font-family: 'Bebas Neue', sans-serif; font-size: 1. | .family-feud-nursing-game .ff-answer-num { font-family: 'Bebas Neue', sans-serif; font-size: 1.5rem; color: #ffd700; width: 30px; text-align: center; } | ||
.family-feud-nursing-game .ff-answer.ff-revealed .ff-answer-num { color: #1a1a2e; } | .family-feud-nursing-game .ff-answer.ff-revealed .ff-answer-num { color: #1a1a2e; } | ||
.family-feud-nursing-game .ff-answer-text { flex: 1; font-size: | .family-feud-nursing-game .ff-answer-text { flex: 1; font-size: 0.9rem; text-align: center; text-transform: uppercase; letter-spacing: 1px; } | ||
.family-feud-nursing-game .ff-answer.ff-revealed .ff-answer-text { color: #1a1a2e; font-weight: 700; } | .family-feud-nursing-game .ff-answer.ff-revealed .ff-answer-text { color: #1a1a2e; font-weight: 700; } | ||
.family-feud-nursing-game .ff-answer-pts { font-family: 'Bebas Neue', sans-serif; font-size: 1. | .family-feud-nursing-game .ff-answer-pts { font-family: 'Bebas Neue', sans-serif; font-size: 1.4rem; color: #00d4ff; width: 40px; text-align: center; } | ||
.family-feud-nursing-game .ff-answer.ff-revealed .ff-answer-pts { color: #1a1a2e; } | .family-feud-nursing-game .ff-answer.ff-revealed .ff-answer-pts { color: #1a1a2e; } | ||
.family-feud-nursing-game .ff-input-area { display: flex; gap: | .family-feud-nursing-game .ff-input-area { display: flex; gap: 10px; justify-content: center; margin-bottom: 15px; } | ||
.family-feud-nursing-game .ff-input { | .family-feud-nursing-game .ff-input { | ||
flex: 1; max-width: | flex: 1; max-width: 400px; padding: 10px 18px; font-size: 1.1rem; | ||
font-family: 'Oswald', sans-serif; border: | font-family: 'Oswald', sans-serif; border: 2px solid #00d4ff; border-radius: 50px; | ||
background: rgba(255,255,255,0.1); color: #fff; text-align: center; | background: rgba(255,255,255,0.1); color: #fff; text-align: center; | ||
text-transform: uppercase; letter-spacing: 2px; outline: none; | text-transform: uppercase; letter-spacing: 2px; outline: none; | ||
} | } | ||
.family-feud-nursing-game .ff-input:focus { border-color: #ffd700; box-shadow: 0 0 | .family-feud-nursing-game .ff-input:focus { border-color: #ffd700; box-shadow: 0 0 15px rgba(255,215,0,0.4); } | ||
.family-feud-nursing-game .ff-input::placeholder { color: rgba(255,255,255,0.5); } | .family-feud-nursing-game .ff-input::placeholder { color: rgba(255,255,255,0.5); } | ||
.family-feud-nursing-game .ff-submit { | .family-feud-nursing-game .ff-submit { | ||
padding: | padding: 10px 30px; font-family: 'Bebas Neue', sans-serif; font-size: 1.2rem; | ||
background: linear-gradient(145deg, #ffd700, #ff8c00); border: none; | background: linear-gradient(145deg, #ffd700, #ff8c00); border: none; | ||
border-radius: 50px; color: #1a1a2e; cursor: pointer; letter-spacing: 2px; | border-radius: 50px; color: #1a1a2e; cursor: pointer; letter-spacing: 2px; | ||
| Line 144: | Line 134: | ||
.family-feud-nursing-game .ff-submit:hover { transform: scale(1.05); } | .family-feud-nursing-game .ff-submit:hover { transform: scale(1.05); } | ||
.family-feud-nursing-game .ff-buttons { display: flex; justify-content: center; gap: | .family-feud-nursing-game .ff-buttons { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; } | ||
.family-feud-nursing-game .ff-btn { | .family-feud-nursing-game .ff-btn { | ||
padding: | padding: 8px 18px; font-family: 'Oswald', sans-serif; font-size: 0.85rem; | ||
border: 2px solid; border-radius: | border: 2px solid; border-radius: 8px; cursor: pointer; text-transform: uppercase; | ||
} | } | ||
.family-feud-nursing-game .ff-btn-next { background: linear-gradient(145deg, #00d4ff, #0099cc); border-color: #00d4ff; color: #1a1a2e; } | .family-feud-nursing-game .ff-btn-next { background: linear-gradient(145deg, #00d4ff, #0099cc); border-color: #00d4ff; color: #1a1a2e; } | ||
| Line 155: | Line 145: | ||
.family-feud-nursing-game .ff-btn:hover { transform: translateY(-2px); } | .family-feud-nursing-game .ff-btn:hover { transform: translateY(-2px); } | ||
/* Start and Game Over screens - positioned within container */ | |||
.family-feud-nursing-game .ff-start, .family-feud-nursing-game .ff-gameover { | .family-feud-nursing-game .ff-start, .family-feud-nursing-game .ff-gameover { | ||
position: | position: absolute; | ||
top: 0; | |||
left: 0; | |||
right: 0; | |||
bottom: 0; | |||
background: linear-gradient(135deg, #1a1a2e, #0f3460); | background: linear-gradient(135deg, #1a1a2e, #0f3460); | ||
display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: | display: flex; | ||
flex-direction: column; | |||
align-items: center; | |||
justify-content: center; | |||
z-index: 100; | |||
border-radius: 12px; | |||
} | } | ||
.family-feud-nursing-game .ff-start.ff-hidden | .family-feud-nursing-game .ff-start.ff-hidden { display: none; } | ||
.family-feud-nursing-game .ff-gameover { display: none; } | |||
.family-feud-nursing-game .ff-gameover.ff-show { display: flex; } | |||
.family-feud-nursing-game .ff-start-title { | .family-feud-nursing-game .ff-start-title { | ||
font-family: 'Bebas Neue', sans-serif; font-size: | font-family: 'Bebas Neue', sans-serif; font-size: 3.5rem; | ||
background: linear-gradient(180deg, #ffd700, #ff8c00, #ff4500); | background: linear-gradient(180deg, #ffd700, #ff8c00, #ff4500); | ||
-webkit-background-clip: text; -webkit-text-fill-color: transparent; | -webkit-background-clip: text; -webkit-text-fill-color: transparent; | ||
letter-spacing: | letter-spacing: 8px; animation: ffPulse 2s infinite; | ||
} | } | ||
@keyframes ffPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.02); } } | @keyframes ffPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.02); } } | ||
.family-feud-nursing-game .ff-start-sub { font-size: 1. | .family-feud-nursing-game .ff-start-sub { font-size: 1.4rem; color: #00d4ff; margin-bottom: 20px; letter-spacing: 4px; } | ||
.family-feud-nursing-game .ff-start-emoji { font-size: | .family-feud-nursing-game .ff-start-emoji { font-size: 5rem; margin-bottom: 20px; animation: ffWave 1s infinite; } | ||
@keyframes ffWave { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } } | @keyframes ffWave { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } } | ||
.family-feud-nursing-game .ff-play-btn { | .family-feud-nursing-game .ff-play-btn { | ||
padding: | padding: 15px 60px; font-family: 'Bebas Neue', sans-serif; font-size: 2rem; | ||
background: linear-gradient(145deg, #ffd700, #ff8c00); border: none; | background: linear-gradient(145deg, #ffd700, #ff8c00); border: none; | ||
border-radius: | border-radius: 50px; color: #1a1a2e; cursor: pointer; letter-spacing: 4px; | ||
} | } | ||
.family-feud-nursing-game .ff-play-btn:hover { transform: scale(1.1); } | .family-feud-nursing-game .ff-play-btn:hover { transform: scale(1.1); } | ||
.family-feud-nursing-game .ff-start-info { margin-top: | .family-feud-nursing-game .ff-start-info { margin-top: 20px; text-align: center; color: rgba(255,255,255,0.7); max-width: 400px; line-height: 1.6; font-size: 0.95rem; } | ||
.family-feud-nursing-game .ff-final-score { font-family: 'Bebas Neue', sans-serif; font-size: | .family-feud-nursing-game .ff-final-score { font-family: 'Bebas Neue', sans-serif; font-size: 5rem; color: #ffd700; } | ||
.family-feud-nursing-game .ff-final-msg { font-size: 1. | .family-feud-nursing-game .ff-final-msg { font-size: 1.4rem; color: #00d4ff; margin-bottom: 20px; text-align: center; } | ||
.family-feud-nursing-game .ff-confetti { | .family-feud-nursing-game .ff-confetti { | ||
position: | position: absolute; width: 10px; height: 10px; z-index: 90; | ||
animation: ffFall 3s linear forwards; | animation: ffFall 3s linear forwards; | ||
} | } | ||
@keyframes ffFall { | @keyframes ffFall { | ||
0% { transform: translateY(- | 0% { transform: translateY(-50px) rotate(0); opacity: 1; } | ||
100% { transform: translateY( | 100% { transform: translateY(700px) rotate(720deg); opacity: 0; } | ||
} | } | ||
.family-feud-nursing-game .ff-progress { width: 100%; height: | .family-feud-nursing-game .ff-progress { width: 100%; height: 6px; background: rgba(255,255,255,0.1); border-radius: 3px; margin-bottom: 12px; } | ||
.family-feud-nursing-game .ff-progress-fill { height: 100%; background: linear-gradient(90deg, #00d4ff, #ffd700); border-radius: | .family-feud-nursing-game .ff-progress-fill { height: 100%; background: linear-gradient(90deg, #00d4ff, #ffd700); border-radius: 3px; transition: width 0.5s; } | ||
.family-feud-nursing-game .ff-game-content { display: none; } | |||
.family-feud-nursing-game .ff-game-content.ff-visible { display: block; } | |||
@media (max-width: 768px) { | @media (max-width: 768px) { | ||
.family-feud-nursing-game .ff-title h1 { font-size: | .family-feud-nursing-game .ff-title h1 { font-size: 2rem; } | ||
.family-feud-nursing-game .ff-answers { grid-template-columns: 1fr; } | .family-feud-nursing-game .ff-answers { grid-template-columns: 1fr; } | ||
.family-feud-nursing-game .ff-steve { flex-direction: column; text-align: center; } | .family-feud-nursing-game .ff-steve { flex-direction: column; text-align: center; } | ||
.family-feud-nursing-game .ff-input-area { flex-direction: column; align-items: center; } | .family-feud-nursing-game .ff-input-area { flex-direction: column; align-items: center; } | ||
.family-feud-nursing-game .ff-input { width: 100%; } | .family-feud-nursing-game .ff-input { width: 100%; } | ||
.family-feud-nursing-game .ff-start-title { font-size: 2. | .family-feud-nursing-game .ff-start-title { font-size: 2.5rem; } | ||
} | } | ||
</style> | </style> | ||
| Line 206: | Line 212: | ||
<link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Oswald:wght@400;600;700&display=swap" rel="stylesheet"> | <link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Oswald:wght@400;600;700&display=swap" rel="stylesheet"> | ||
<!-- Overlays --> | |||
<div class="ff-x-overlay" id="ffXOverlay"><div class="ff-big-x">✖</div></div> | <div class="ff-x-overlay" id="ffXOverlay"><div class="ff-big-x">✖</div></div> | ||
<div class="ff-ding-overlay" id="ffDingOverlay"><div class="ff-ding-text">✓</div></div> | <div class="ff-ding-overlay" id="ffDingOverlay"><div class="ff-ding-text">✓</div></div> | ||
<!-- Start Screen - inside main container --> | |||
<div class="ff-start" id="ffStart"> | <div class="ff-start" id="ffStart"> | ||
<div class="ff-start-title">FAMILY FEUD</div> | <div class="ff-start-title">FAMILY FEUD</div> | ||
| Line 221: | Line 229: | ||
</div> | </div> | ||
<!-- Game Over Screen --> | |||
<div class="ff-gameover" id="ffGameOver"> | <div class="ff-gameover" id="ffGameOver"> | ||
<div class="ff-start-emoji">🏆</div> | <div class="ff-start-emoji">🏆</div> | ||
| Line 228: | Line 237: | ||
</div> | </div> | ||
<div class="ff- | <!-- Game Content - hidden until play is clicked --> | ||
<div class="ff-game-content" id="ffGameContent"> | |||
<div class="ff-title"> | <div class="ff-title"> | ||
<h1>FAMILY FEUD</h1> | <h1>FAMILY FEUD</h1> | ||
| Line 281: | Line 291: | ||
</div> | </div> | ||
</div> | </div> | ||
</div> | </div> | ||
| Line 319: | Line 330: | ||
var questions = [ | var questions = [ | ||
{ category: "CARDIOVASCULAR PHARMACOLOGY", question: "Name a common side effect of beta-blockers that nurses should monitor.", answers: [ | { category: "CARDIOVASCULAR PHARMACOLOGY", question: "Name a common side effect of beta-blockers that nurses should monitor.", answers: [ | ||
{ text: "Bradycardia", points: 35, keywords: ["brady", "slow heart", " | { text: "Bradycardia", points: 35, keywords: ["bradycardia", "brady", "slow heart rate", "slow pulse", "low heart rate"] }, | ||
{ text: "Hypotension", points: 25, keywords: [" | { text: "Hypotension", points: 25, keywords: ["hypotension", "low blood pressure", "low bp", "decreased bp"] }, | ||
{ text: "Fatigue", points: 15, keywords: ["tired", " | { text: "Fatigue", points: 15, keywords: ["fatigue", "tired", "tiredness", "weakness", "lethargy"] }, | ||
{ text: "Bronchospasm", points: 12, keywords: [" | { text: "Bronchospasm", points: 12, keywords: ["bronchospasm", "bronchoconstriction", "wheezing", "breathing difficulty"] }, | ||
{ text: "Depression", points: 8, keywords: [" | { text: "Depression", points: 8, keywords: ["depression", "depressed", "mood changes"] }, | ||
{ text: "Cold Extremities", points: 5, keywords: ["cold", " | { text: "Cold Extremities", points: 5, keywords: ["cold extremities", "cold hands", "cold feet", "peripheral vasoconstriction"] } | ||
]}, | ]}, | ||
{ category: "PAIN MANAGEMENT", question: "Name a NON-drug intervention for pain.", answers: [ | { category: "PAIN MANAGEMENT", question: "Name a NON-drug intervention for pain.", answers: [ | ||
{ text: "Heat/Cold Therapy", points: 30, keywords: ["heat", "cold", "ice", "warm", " | { text: "Heat/Cold Therapy", points: 30, keywords: ["heat therapy", "cold therapy", "ice pack", "warm compress", "heating pad", "cryotherapy"] }, | ||
{ text: "Massage", points: 22, keywords: ["massage", " | { text: "Massage", points: 22, keywords: ["massage", "massage therapy", "therapeutic touch", "rubbing"] }, | ||
{ text: "Distraction", points: 18, keywords: [" | { text: "Distraction", points: 18, keywords: ["distraction", "music therapy", "television", "talking", "diversion"] }, | ||
{ text: "Positioning", points: 12, keywords: [" | { text: "Positioning", points: 12, keywords: ["positioning", "repositioning", "elevation", "elevate", "pillow support"] }, | ||
{ text: "Deep Breathing", points: 10, keywords: [" | { text: "Deep Breathing", points: 10, keywords: ["deep breathing", "breathing exercises", "relaxation", "relaxation techniques"] }, | ||
{ text: "Guided Imagery", points: 8, keywords: [" | { text: "Guided Imagery", points: 8, keywords: ["guided imagery", "visualization", "meditation", "imagery"] } | ||
]}, | ]}, | ||
{ category: "GERIATRIC NURSING", question: "Name an age-related change affecting drug metabolism.", answers: [ | { category: "GERIATRIC NURSING", question: "Name an age-related change affecting drug metabolism.", answers: [ | ||
{ text: "Decreased Liver Function", points: 32, keywords: ["liver", " | { text: "Decreased Liver Function", points: 32, keywords: ["decreased liver", "liver function", "hepatic function", "reduced liver"] }, | ||
{ text: "Reduced Kidney Function", points: 28, keywords: ["kidney", "renal", "gfr"] }, | { text: "Reduced Kidney Function", points: 28, keywords: ["reduced kidney", "kidney function", "renal function", "decreased gfr", "renal impairment"] }, | ||
{ text: "Decreased Body Water", points: 15, keywords: ["water", " | { text: "Decreased Body Water", points: 15, keywords: ["decreased body water", "reduced body water", "dehydration", "less body water"] }, | ||
{ text: "Increased Body Fat", points: 12, keywords: ["fat", "adipose"] }, | { text: "Increased Body Fat", points: 12, keywords: ["increased body fat", "increased fat", "more body fat", "adipose tissue"] }, | ||
{ text: "Slower GI Motility", points: 8, keywords: ["gi", " | { text: "Slower GI Motility", points: 8, keywords: ["slower gi", "decreased motility", "slow digestion", "gi motility", "gastric motility"] }, | ||
{ text: "Reduced Albumin", points: 5, keywords: ["albumin", " | { text: "Reduced Albumin", points: 5, keywords: ["reduced albumin", "decreased albumin", "low albumin", "hypoalbuminemia"] } | ||
]}, | ]}, | ||
{ category: "PATIENT TEACHING", question: "Name an essential part of discharge teaching.", answers: [ | { category: "PATIENT TEACHING", question: "Name an essential part of discharge teaching.", answers: [ | ||
{ text: "Medication Instructions", points: 28, keywords: [" | { text: "Medication Instructions", points: 28, keywords: ["medication instructions", "medication teaching", "drug instructions", "medicine instructions", "prescription instructions"] }, | ||
{ text: "Warning Signs", points: 24, keywords: ["warning", " | { text: "Warning Signs", points: 24, keywords: ["warning signs", "red flags", "when to call", "return precautions", "danger signs", "emergency signs"] }, | ||
{ text: "Follow-up Appointments", points: 18, keywords: ["follow", "appointment", "visit"] }, | { text: "Follow-up Appointments", points: 18, keywords: ["follow-up", "followup", "follow up appointment", "return visit", "next appointment"] }, | ||
{ text: "Written Instructions", points: 12, keywords: ["written", " | { text: "Written Instructions", points: 12, keywords: ["written instructions", "handout", "printed instructions", "discharge papers", "written materials"] }, | ||
{ text: "Teach-Back", points: 10, keywords: ["teach", " | { text: "Teach-Back", points: 10, keywords: ["teach-back", "teach back", "return demonstration", "patient understanding", "verify understanding"] }, | ||
{ text: "Diet Instructions", points: 8, keywords: ["diet", " | { text: "Diet Instructions", points: 8, keywords: ["diet instructions", "dietary", "nutrition", "food restrictions", "eating instructions"] } | ||
]}, | ]}, | ||
{ category: "LEFT HEART FAILURE", question: "Name a sign of LEFT-sided heart failure.", answers: [ | { category: "LEFT HEART FAILURE", question: "Name a sign of LEFT-sided heart failure.", answers: [ | ||
{ text: "Shortness of Breath", points: 30, keywords: ["breath", " | { text: "Shortness of Breath", points: 30, keywords: ["shortness of breath", "dyspnea", "difficulty breathing", "breathlessness", "hard to breathe"] }, | ||
{ text: "Lung Crackles", points: 25, keywords: [" | { text: "Lung Crackles", points: 25, keywords: ["crackles", "rales", "lung crackles", "pulmonary crackles", "lung sounds"] }, | ||
{ text: "Orthopnea", points: 18, keywords: ["orthopnea", " | { text: "Orthopnea", points: 18, keywords: ["orthopnea", "cant lay flat", "needs pillows", "difficulty lying flat"] }, | ||
{ text: "Pink Frothy Sputum", points: 12, keywords: ["pink", "frothy", "sputum", " | { text: "Pink Frothy Sputum", points: 12, keywords: ["pink frothy", "frothy sputum", "pink sputum", "pulmonary edema"] }, | ||
{ text: "Fatigue", points: 10, keywords: ["fatigue", "tired", " | { text: "Fatigue", points: 10, keywords: ["fatigue", "tired", "exhaustion", "weakness", "lethargy"] }, | ||
{ text: "Tachycardia", points: 5, keywords: [" | { text: "Tachycardia", points: 5, keywords: ["tachycardia", "fast heart", "rapid pulse", "elevated heart rate", "racing heart"] } | ||
]}, | ]}, | ||
{ category: "MEDICATION RIGHTS", question: "Name one of the 'Rights' of medication administration.", answers: [ | { category: "MEDICATION RIGHTS", question: "Name one of the 'Rights' of medication administration.", answers: [ | ||
{ text: "Right Patient", points: 20, keywords: ["patient", " | { text: "Right Patient", points: 20, keywords: ["right patient", "correct patient", "patient identification", "verify patient"] }, | ||
{ text: "Right Drug", points: 20, keywords: ["drug", "medication", " | { text: "Right Drug", points: 20, keywords: ["right drug", "right medication", "correct drug", "correct medication", "right medicine"] }, | ||
{ text: "Right Dose", points: 18, keywords: ["dose", "amount"] }, | { text: "Right Dose", points: 18, keywords: ["right dose", "correct dose", "right amount", "correct amount", "proper dose"] }, | ||
{ text: "Right Route", points: 15, keywords: ["route", " | { text: "Right Route", points: 15, keywords: ["right route", "correct route", "administration route", "proper route"] }, | ||
{ text: "Right Time", points: 14, keywords: ["time", " | { text: "Right Time", points: 14, keywords: ["right time", "correct time", "proper time", "scheduled time", "timing"] }, | ||
{ text: "Right Documentation", points: 13, keywords: [" | { text: "Right Documentation", points: 13, keywords: ["right documentation", "documentation", "charting", "recording", "right record"] } | ||
]}, | ]}, | ||
{ category: "ASTHMA DRUGS", question: "Name a medication class for asthma.", answers: [ | { category: "ASTHMA DRUGS", question: "Name a medication class for asthma.", answers: [ | ||
{ text: "Beta-2 Agonists", points: 30, keywords: ["beta", "albuterol", " | { text: "Beta-2 Agonists", points: 30, keywords: ["beta-2 agonist", "beta agonist", "albuterol", "bronchodilator", "saba", "laba"] }, | ||
{ text: "Corticosteroids", points: 25, keywords: ["steroid", " | { text: "Corticosteroids", points: 25, keywords: ["corticosteroid", "steroid", "prednisone", "inhaled steroid", "glucocorticoid"] }, | ||
{ text: "Anticholinergics", points: 18, keywords: [" | { text: "Anticholinergics", points: 18, keywords: ["anticholinergic", "ipratropium", "atrovent", "tiotropium", "muscarinic antagonist"] }, | ||
{ text: "Leukotriene Inhibitors", points: 12, keywords: [" | { text: "Leukotriene Inhibitors", points: 12, keywords: ["leukotriene", "montelukast", "singulair", "leukotriene modifier"] }, | ||
{ text: "Mast Cell Stabilizers", points: 10, keywords: ["mast", "cromolyn"] }, | { text: "Mast Cell Stabilizers", points: 10, keywords: ["mast cell", "cromolyn", "nedocromil", "mast cell stabilizer"] }, | ||
{ text: "Theophylline", points: 5, keywords: ["theophylline", "xanthine"] } | { text: "Theophylline", points: 5, keywords: ["theophylline", "aminophylline", "methylxanthine", "xanthine"] } | ||
]}, | ]}, | ||
{ category: "LIVER FAILURE", question: "Name a sign of hepatic encephalopathy.", answers: [ | { category: "LIVER FAILURE", question: "Name a sign of hepatic encephalopathy.", answers: [ | ||
{ text: "Confusion", points: 30, keywords: [" | { text: "Confusion", points: 30, keywords: ["confusion", "altered mental status", "disorientation", "altered consciousness", "mental status changes"] }, | ||
{ text: "Asterixis", points: 25, keywords: [" | { text: "Asterixis", points: 25, keywords: ["asterixis", "liver flap", "flapping tremor", "hand flapping"] }, | ||
{ text: "Ammonia Breath", points: 18, keywords: ["ammonia", "breath", " | { text: "Ammonia Breath", points: 18, keywords: ["ammonia breath", "fetor hepaticus", "musty breath", "sweet breath"] }, | ||
{ text: "Sleep Changes", points: 12, keywords: ["sleep", "insomnia", " | { text: "Sleep Changes", points: 12, keywords: ["sleep changes", "insomnia", "sleep reversal", "sleep disturbance", "day night reversal"] }, | ||
{ text: "Personality Changes", points: 10, keywords: [" | { text: "Personality Changes", points: 10, keywords: ["personality changes", "behavior changes", "mood changes", "irritability"] }, | ||
{ text: "Slurred Speech", points: 5, keywords: [" | { text: "Slurred Speech", points: 5, keywords: ["slurred speech", "speech difficulty", "dysarthria", "difficulty speaking"] } | ||
]}, | ]}, | ||
{ category: "HEARING LOSS CARE", question: "Name a nursing intervention for hearing-impaired patients.", answers: [ | { category: "HEARING LOSS CARE", question: "Name a nursing intervention for hearing-impaired patients.", answers: [ | ||
{ text: "Face the Patient", points: 28, keywords: ["face", " | { text: "Face the Patient", points: 28, keywords: ["face the patient", "face them", "eye contact", "look at patient", "face to face"] }, | ||
{ text: "Reduce Noise", points: 22, keywords: ["noise", "quiet", "background"] }, | { text: "Reduce Noise", points: 22, keywords: ["reduce noise", "quiet environment", "minimize noise", "background noise", "decrease noise"] }, | ||
{ text: "Speak Clearly", points: 18, keywords: ["clear", " | { text: "Speak Clearly", points: 18, keywords: ["speak clearly", "clear speech", "speak slowly", "enunciate", "articulate"] }, | ||
{ text: "Write Things Down", points: 14, keywords: [" | { text: "Write Things Down", points: 14, keywords: ["write things down", "written communication", "write notes", "use paper", "writing"] }, | ||
{ text: "Check Hearing Aid", points: 10, keywords: ["hearing aid", " | { text: "Check Hearing Aid", points: 10, keywords: ["check hearing aid", "hearing aid", "hearing device", "assistive device"] }, | ||
{ text: "Use Gestures", points: 8, keywords: [" | { text: "Use Gestures", points: 8, keywords: ["use gestures", "gestures", "hand signals", "pointing", "nonverbal", "body language"] } | ||
]}, | ]}, | ||
{ category: "INFECTION CONTROL", question: "Name a Standard Precaution.", answers: [ | { category: "INFECTION CONTROL", question: "Name a Standard Precaution.", answers: [ | ||
{ text: "Hand Hygiene", points: 30, keywords: ["hand", "wash", " | { text: "Hand Hygiene", points: 30, keywords: ["hand hygiene", "hand washing", "wash hands", "hand sanitizer", "hand sanitizing"] }, | ||
{ text: "Gloves", points: 22, keywords: [" | { text: "Gloves", points: 22, keywords: ["gloves", "wear gloves", "gloving", "disposable gloves"] }, | ||
{ text: "Gown", points: 16, keywords: ["gown"] }, | { text: "Gown", points: 16, keywords: ["gown", "isolation gown", "protective gown", "wear gown"] }, | ||
{ text: "Mask", points: 14, keywords: ["mask", "n95", " | { text: "Mask", points: 14, keywords: ["mask", "face mask", "n95", "surgical mask", "respirator"] }, | ||
{ text: "Sharps Disposal", points: 10, keywords: ["sharp", "needle"] }, | { text: "Sharps Disposal", points: 10, keywords: ["sharps disposal", "sharps container", "needle disposal", "sharp disposal", "needle safety"] }, | ||
{ text: "Cough Etiquette", points: 8, keywords: ["cough", "cover", " | { text: "Cough Etiquette", points: 8, keywords: ["cough etiquette", "respiratory hygiene", "cover cough", "cover mouth", "respiratory etiquette"] } | ||
]} | ]} | ||
]; | ]; | ||
| Line 531: | Line 542: | ||
function createConfetti() { | function createConfetti() { | ||
var colors = ['#ffd700', '#ff8c00', '#00d4ff', '#ff4500', '#9c27b0', '#4caf50']; | var colors = ['#ffd700', '#ff8c00', '#00d4ff', '#ff4500', '#9c27b0', '#4caf50']; | ||
for (var i = 0; i < | var container = document.querySelector('.family-feud-nursing-game'); | ||
for (var i = 0; i < 60; i++) { | |||
var c = document.createElement('div'); | var c = document.createElement('div'); | ||
c.className = 'ff-confetti'; | c.className = 'ff-confetti'; | ||
c.style.left = Math.random() * 100 + ' | c.style.left = Math.random() * 100 + '%'; | ||
c.style.background = colors[Math.floor(Math.random() * colors.length)]; | c.style.background = colors[Math.floor(Math.random() * colors.length)]; | ||
c.style.animationDelay = Math.random() * 2 + 's'; | c.style.animationDelay = Math.random() * 2 + 's'; | ||
container.appendChild(c); | |||
setTimeout(function(el) { el.remove(); }, 4000, c); | setTimeout(function(el) { el.remove(); }, 4000, c); | ||
} | } | ||
| Line 547: | Line 559: | ||
playReveal(); | playReveal(); | ||
document.getElementById('ffStart').classList.add('ff-hidden'); | document.getElementById('ffStart').classList.add('ff-hidden'); | ||
document.getElementById('ffGameContent').classList.add('ff-visible'); | |||
loadQuestion(); | loadQuestion(); | ||
}, | }, | ||
| Line 552: | Line 565: | ||
var input = document.getElementById('ffInput'); | var input = document.getElementById('ffInput'); | ||
var guess = input.value.trim().toLowerCase(); | var guess = input.value.trim().toLowerCase(); | ||
if (!guess) return; | if (!guess || guess.length < 3) return; // Minimum 3 characters | ||
var q = questions[currentQ]; | var q = questions[currentQ]; | ||
var found = false; | var found = false; | ||
var foundIndex = -1; | |||
// Find the best match (prioritize exact matches and longer keywords) | |||
q.answers.forEach(function(a, i) { | q.answers.forEach(function(a, i) { | ||
if (revealed.indexOf(i) === -1) { | if (revealed.indexOf(i) === -1 && !found) { | ||
var match = a.keywords.some(function(k) { return guess.indexOf(k) !== -1 | var match = a.keywords.some(function(k) { | ||
if (match) { | // Require keyword to be at least 3 chars | ||
if (k.length < 3) return false; | |||
// Check for word-based matching | |||
var guessWords = guess.split(/\s+/); | |||
var keyWords = k.split(/\s+/); | |||
// Exact match of full keyword | |||
if (guess === k) return true; | |||
// Guess contains the full keyword (for multi-word keywords) | |||
if (k.length >= 4 && guess.indexOf(k) !== -1) return true; | |||
// Keyword starts with guess (at least 4 chars) | |||
if (guess.length >= 4 && k.indexOf(guess) === 0) return true; | |||
// Any word in guess matches start of keyword (at least 4 chars) | |||
for (var w = 0; w < guessWords.length; w++) { | |||
if (guessWords[w].length >= 4) { | |||
if (k.indexOf(guessWords[w]) === 0) return true; | |||
for (var kw = 0; kw < keyWords.length; kw++) { | |||
if (keyWords[kw].length >= 4 && keyWords[kw].indexOf(guessWords[w]) === 0) return true; | |||
if (guessWords[w].indexOf(keyWords[kw]) === 0 && keyWords[kw].length >= 4) return true; | |||
} | |||
} | |||
} | |||
return false; | |||
}); | |||
if (match) { | |||
found = true; | |||
foundIndex = i; | |||
} | |||
} | } | ||
}); | }); | ||
if ( | |||
if (found && foundIndex >= 0) { | |||
revealAnswer(foundIndex); | |||
} else { | |||
addStrike(); | |||
} | |||
input.value = ''; | input.value = ''; | ||
input.focus(); | input.focus(); | ||
| Line 582: | Line 635: | ||
if (currentQ >= questions.length) { | if (currentQ >= questions.length) { | ||
playApplause(); | playApplause(); | ||
document.getElementById('ffGameContent').classList.remove('ff-visible'); | |||
document.getElementById('ffGameOver').classList.add('ff-show'); | document.getElementById('ffGameOver').classList.add('ff-show'); | ||
document.getElementById('ffFinalScore').textContent = score; | document.getElementById('ffFinalScore').textContent = score; | ||
| Line 593: | Line 647: | ||
document.getElementById('ffScore').textContent = '0'; | document.getElementById('ffScore').textContent = '0'; | ||
document.getElementById('ffGameOver').classList.remove('ff-show'); | document.getElementById('ffGameOver').classList.remove('ff-show'); | ||
document.getElementById('ffGameContent').classList.remove('ff-visible'); | |||
document.getElementById('ffStart').classList.remove('ff-hidden'); | document.getElementById('ffStart').classList.remove('ff-hidden'); | ||
}, | }, | ||
Latest revision as of 01:24, 11 January 2026
This widget displays the Family Feud Nursing Edition study game.
Usage
{{#widget:FamilyFeudNursing}}