轻松完成上千行代码、题库中存放了数百道不同类型的数学题;这道题,你能答对吗?
要想完善,就是另外一个概念了。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>数学方块大富翁</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=ZCOOL+XiaoWei&display=swap" rel="stylesheet">
<style>
/* 基础重置 */
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
/* 基础样式设置 */
body {
font-family: 'ZCOOL XiaoWei', serif;
background: linear-gradient(135deg, #e6f7ff, #f0f5ff);
color: #333;
overflow: hidden;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
position: relative;
}
/* 背景云彩SVG动画 */
.clouds-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -10;
overflow: hidden;
}
.cloud {
position: absolute;
fill: rgba(255, 255, 255, 0.7);
animation: cloudDrift linear infinite;
}
@keyframes cloudDrift {
0% { transform: translateX(-80px); }
100% { transform: translateX(calc(100vw + 100px)); }
}
/* 飘落的花瓣动画 */
#petals-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -5;
pointer-events: none;
overflow: hidden;
}
.petal {
position: absolute;
animation: petalFall linear infinite;
opacity: 0.8;
}
@keyframes petalFall {
0% { transform: translateY(-50px) rotate(0deg); opacity: 0; }
10% { opacity: 0.8; }
100% { transform: translateY(100vh) rotate(360deg); opacity: 0; }
}
h1 {
color: #8A2BE2;
margin-bottom: 20px;
font-size: 2.2em;
text-align: center;
position: absolute;
top: 20px;
width: 100%;
z-index: 20;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}
/* 游戏区域 */
.game-area {
position: relative;
width: 90vw;
height: 90vh;
display: flex;
align-items: center;
justify-content: center;
}
/* 游戏容器 */
.game-container {
position: relative;
transform: translate(-0%, -20%);
width: 85vh;
max-width: 90vw;
height: calc(70vh * 1.1414);
max-height: 68vh;
background-color: rgba(255, 255, 255, 0.8);
border: 4px solid #9370DB;
border-radius: 15px;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
overflow: hidden;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.game-board {
position: relative;
width: 100%;
height: 100%;
display: grid;
grid-template-columns: repeat(10, 1fr);
grid-template-rows: repeat(10, 1fr);
grid-gap: 5px;
padding: 20px;
}
/* 格子样式 */
.cell {
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
font-weight: normal;
color: #333;
border: 1px solid #9370DB;
background-color: rgba(255, 255, 255, 0.8);
border-radius: 8px;
text-align: center;
overflow: hidden;
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
transition: transform 0.2s;
}
.cell:hover {
transform: scale(1.05);
}
/* 特殊格子样式 */
.cell.start {
background-color: #7FFF00;
border-color: #6BD300;
color: #006400;
}
.cell.goal {
background-color: #FFD700;
border-color: #DAA520;
font-size: 14px !important;
color: #8B4513;
}
.cell.chance {
background-color: #87CEFA;
border-color: #1E90FF;
font-size: 14px;
color: #00008B;
}
.cell.penalty {
background-color: #FF6347;
border-color: #DC143C;
font-size: 14px;
color: #800000;
}
/* SVG 图标样式 */
.dice-icon, .pencil-icon {
width: 20px;
height: 20px;
}
/* 玩家标记样式 */
.player {
position: absolute;
width: 28px;
height: 28px;
border: 2px solid #fff;
border-radius: 50%;
z-index: 5;
transition: top 0.5s ease-in-out, left 0.5s ease-in-out;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
color: white;
text-shadow: 1px 1px 1px rgba(0,0,0,0.9);
box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
touch-action: manipulation; /* 优化触摸屏体验 */
}
#player1 {
background-color: #FF0000;
}
#player2 {
background-color: #0000FF;
}
.flag {
position: absolute;
top: -14px;
left: 50%;
transform: translateX(-50%);
width: 16px;
height: 16px;
}
.flag-anim {
animation: wave 0.5s infinite;
}
@keyframes wave {
0% { transform: translateX(-50%) translateY(0); }
50% { transform: translateX(-50%) translateY(-5px); }
100% { transform: translateX(-50%) translateY(0); }
}
/* UI覆盖层 */
.ui-overlay {
position: absolute;
background-color: rgba(255, 255, 255, 0.85);
border: 2px solid;
padding: 10px 15px;
border-radius: 10px;
z-index: 10;
font-size: 14px;
line-height: 1.6;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
color: #333;
}
#player1-info {
top: 15px;
left: 15px;
border-color: #FF0000;
}
#player2-info {
top: 15px;
right: 15px;
border-color: #0000FF;
text-align: right;
}
.player-active {
border: 2px solid gold;
animation: blink 1s infinite;
}
@keyframes blink {
0% { border-color: gold; }
50% { border-color: transparent; }
100% { border-color: gold; }
}
.arrow {
position: absolute;
bottom: -30px;
left: 50%;
transform: translateX(-50%);
width: 24px;
height: 24px;
z-index: 11;
}
#player1-arrow {
left: 50%;
}
#player2-arrow {
left: 50%;
}
.info-line {
margin-bottom: 5px;
}
.info-line strong {
color: #333;
}
.info-value {
display: inline-block;
min-width: 30px;
text-align: right;
color: #333;
font-weight: bold;
margin-left: 5px;
background-color: rgba(147, 112, 219, 0.1);
padding: 2px 5px;
border: 1px solid #9370DB;
border-radius: 4px;
}
.round-progress {
margin-top: 5px;
font-size: 12px;
}
.progress-bar {
width: 100%;
height: 10px;
background-color: #ddd;
border-radius: 5px;
overflow: hidden;
margin-top: 5px;
}
.progress {
height: 100%;
transition: width 0.5s ease;
}
#p1-progress {
background-color: #FF0000;
}
#p2-progress {
background-color: #0000FF;
}
#control-panel {
bottom: 15px;
left: 50%;
transform: translateX(-50%);
display: flex;
align-items: center;
gap: 15px;
padding: 12px 20px;
background-color: rgba(255, 255, 255, 0.9);
}
.control-group {
display: flex;
flex-direction: column;
align-items: center;
}
.control-group label {
margin-bottom: 5px;
font-size: 14px;
color: #333;
}
#dice-display {
width: 60px;
height: 60px;
border: 3px solid #9370DB;
display: flex;
align-items: center;
justify-content: center;
background-color: white;
margin-bottom: 8px;
box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
border-radius: 12px;
transition: transform 0.3s;
}
/* 中国风风格按钮 */
.mc-button {
font-family: 'ZCOOL XiaoWei', serif;
background: linear-gradient(to bottom, #9370DB, #8A2BE2);
border: none;
padding: 10px 15px;
color: #ffffff;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
cursor: pointer;
font-size: 15px;
text-align: center;
transition: all 0.2s;
min-width: 100px;
min-height: 40px; /* 增大点击区域 */
margin: 2px 0;
border-radius: 20px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
touch-action: manipulation; /* 优化触摸屏体验 */
}
.mc-button:hover {
background: linear-gradient(to bottom, #8A2BE2, #7B68EE);
transform: translateY(-2px);
box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
}
.mc-button:active {
transform: translateY(1px);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.mc-button:disabled {
background: linear-gradient(to bottom, #CCCCCC, #AAAAAA);
color: #EEEEEE;
cursor: not-allowed;
text-shadow: none;
box-shadow: none;
}
/* 下拉菜单样式 */
select#category-select {
font-family: 'ZCOOL XiaoWei', serif;
background-color: white;
border: 2px solid #9370DB;
padding: 8px 10px;
color: #333;
appearance: none;
background-image: url('data:image/svg+xml;utf8,<svg fill="%239370DB" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');
background-repeat: no-repeat;
background-position: right 5px center;
background-size: 18px;
font-size: 15px;
min-width: 150px;
min-height: 40px; /* 增大点击区域 */
border-radius: 20px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
touch-action: manipulation; /* 优化触摸屏体验 */
}
select#category-select:focus {
outline: none;
border-color: #8A2BE2;
box-shadow: 0 0 0 2px rgba(138, 43, 226, 0.2);
}
/* 滑块样式 */
.slider-container {
display: flex;
flex-direction: column;
align-items: center;
min-width: 50px;
width: 100%;
}
.slider {
-webkit-appearance: none;
width: 100%;
height: 8px;
border-radius: 4px;
background: #DDD;
outline: none;
margin: 10px 0;
touch-action: pan-y; /* 优化触摸屏拖拽 */
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 20px;
height: 20px;
border-radius: 50%;
background: #9370DB;
cursor: pointer;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.slider::-moz-range-thumb {
width: 20px;
height: 20px;
border-radius: 50%;
background: #9370DB;
cursor: pointer;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
/* 问题模态框 */
.modal {
display: none;
position: fixed;
z-index: 100;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.6);
align-items: center;
justify-content: center;
font-size: 16px;
line-height: 1.8;
}
.modal-content {
background-color: #fff;
border: 3px solid #9370DB;
padding: 30px;
width: 90%;
max-width: 550px;
text-align: center;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
border-radius: 15px;
position: relative;
}
#question-text {
font-size: 1.2em;
margin-bottom: 25px;
color: #333;
}
#answer-input {
font-family: 'ZCOOL XiaoWei', serif;
width: calc(100% - 20px);
padding: 12px;
margin-bottom: 25px;
border: 2px solid #9370DB;
background-color: white;
color: #333;
font-size: 1.1em;
text-align: center;
border-radius: 8px;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
min-height: 40px; /* 增大点击区域 */
touch-action: manipulation; /* 优化触摸屏体验 */
}
#answer-input:focus {
outline: none;
border-color: #8A2BE2;
box-shadow: 0 0 0 3px rgba(138, 43, 226, 0.2);
}
#feedback {
margin-top: 20px;
font-size: 1.1em;
min-height: 30px;
}
#feedback.correct { color: #2E8B57; }
#feedback.incorrect { color: #DC143C; }
/* 倒计时显示 */
#timer-display {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 48px;
opacity: 0.5;
z-index: 9999;
pointer-events: none;
color: #333;
}
/* 动画效果 */
@keyframes feedback-pulse {
0% { transform: scale(1); opacity: 0.9; }
50% { transform: scale(1.1); opacity: 1; }
100% { transform: scale(1); opacity: 0.9; }
}
.feedback-anim { animation: feedback-pulse 0.6s ease-in-out; }
@keyframes roll {
0% { transform: rotate(0deg) scale(1); }
50% { transform: rotate(180deg) scale(1.1); }
100% { transform: rotate(360deg) scale(1); }
}
.rolling { animation: roll 0.5s linear infinite; }
@keyframes trophy-shine {
0% { filter: brightness(100%); }
50% { filter: brightness(120%); }
100% { filter: brightness(100%); }
}
.trophy-anim {
animation: trophy-shine 2s infinite;
}
/* 媒体查询适配小屏幕 */
@media (max-width: 768px) {
h1 { font-size: 1.4em; top: 8px; }
.game-container { width: 95vw; height: calc(95vw * 1.414); max-height: 88vh; }
.ui-overlay { font-size: 12px; padding: 8px; }
#player1-info { top: 8px; left: 8px; }
#player2-info { top: 8px; right: 8px; }
#control-panel {
bottom: 8px;
width: 95%;
gap: 10px;
padding: 8px;
flex-wrap: wrap;
justify-content: center;
}
#dice-display { width: 50px; height: 50px; }
.dice-icon { width: 30px; height: 30px; }
.mc-button { padding: 8px 12px; font-size: 14px; min-width: 90px; }
select#category-select { padding: 8px; font-size: 14px; min-width: 130px; }
.modal { font-size: 14px; }
.modal-content { width: 95%; padding: 20px; }
#question-text { font-size: 1.1em; margin-bottom: 15px; }
#answer-input { margin-bottom: 15px; font-size: 1em; }
#feedback { font-size: 1em; }
.cell { font-size: 9px; border-width: 1px; }
.player { width: 20px; height: 20px; font-size: 8px; border-width: 1px; }
.flag { width: 12px; height: 12px; top: -10px; }
.arrow { width: 18px; height: 18px; }
#timer-display { font-size: 36px; } /* 小屏幕减小字体 */
}
</style>
</head>
<body>
<div class="clouds-container">
<svg class="cloud" width="200" height="60" style="top: 10%; animation-duration: 80s;">
<path d="M25,50 Q40,20 75,35 Q95,0 130,20 Q155,10 175,30 Q190,50 175,55 Q180,65 155,55 Q145,70 130,60 Q105,80 80,60 Q65,65 50,55 Q35,65 30,55 Q10,55 25,50" />
</svg>
<svg class="cloud" width="140" height="40" style="top: 30%; animation-duration: 65s; animation-delay: 10s;">
<path d="M15,30 Q25,10 45,20 Q60,0 80,10 Q95,5 105,20 Q115,30 105,35 Q110,40 95,35 Q90,45 80,40 Q65,50 50,40 Q40,45 30,35 Q20,40 15,35 Q5,35 15,30" />
</svg>
<svg class="cloud" width="180" height="50" style="top: 60%; animation-duration: 75s; animation-delay: 5s;">
<path d="M20,40 Q35,15 65,30 Q85,0 115,15 Q140,5 155,25 Q170,40 155,45 Q160,55 140,45 Q130,60 115,50 Q95,70 70,50 Q55,55 40,45 Q30,55 25,45 Q5,45 20,40" />
</svg>
</div>
<div id="petals-container"></div>
<div id="timer-display"></div> <!-- 倒计时显示 -->
<div class="game-area">
<div class="game-container">
<div class="game-board" id="game-board"></div>
</div>
<div id="player1-info" class="ui-overlay">
<div class="info-line"><strong>玩家 1</strong> (<input type="text" id="p1-name-input" value="陈同学" />)</div>
<div class="info-line">位置: <span class="info-value" id="p1-pos">0</span></div>
<div class="round-progress">回合 <span id="p1-round">1</span> / <span id="total-rounds">15</span></div>
<div class="progress-bar"><div id="p1-progress" class="progress" style="width: 0%;"></div></div>
<svg id="player1-arrow" class="arrow" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path d="M12 0 L24 24 L0 24 Z" fill="gold"/>
</svg>
</div>
<div id="player2-info" class="ui-overlay">
<div class="info-line">(<input type="text" id="p2-name-input" value="陈爸爸" />) <strong>玩家 2</strong></div>
<div class="info-line"><span class="info-value" id="p2-pos">0</span> :位置</div>
<div class="round-progress">回合 <span id="p2-round">1</span> / <span id="total-rounds">15</span></div>
<div class="progress-bar"><div id="p2-progress" class="progress" style="width: 0%;"></div></div>
<svg id="player2-arrow" class="arrow" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path d="M12 0 L24 24 L0 24 Z" fill="gold"/>
</svg>
</div>
<div id="control-panel" class="ui-overlay">
<div class="control-group">
<div id="dice-display">
<svg class="dice-icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<rect x="2" y="2" width="20" height="20" rx="4" fill="none" stroke="#333" stroke-width="2"/>
<circle cx="12" cy="12" r="2" fill="#333"/>
</svg>
</div>
<button id="roll-dice" class="mc-button">掷骰子</button>
</div>
<div class="control-group">
<label for="category-select">题目类型</label>
<select id="category-select">
<option value="all">所有类型</option>
</select>
</div>
<div class="control-group">
<label for="rounds-slider">回合数</label>
<div class="slider-container">
<input type="range" id="rounds-slider" class="slider" min="5" max="50" value="15">
<span id="rounds-value">15回合</span>
</div>
</div>
<div class="control-group">
<label for="time-slider">时间</label>
<div class="slider-container">
<input type="range" id="time-slider" class="slider" min="10" max="180" value="60">
<span id="time-value">60秒</span>
</div>
</div>
<div class="control-group">
<input type="file" id="load-questions-input" accept=".json" style="display: none;">
<button id="load-questions-btn" class="mc-button">加载题目</button>
<button id="toggle-sound" class="mc-button">🔊 关声音</button>
</div>
<div class="control-group">
<button id="restart-game" class="mc-button">重新开始</button>
</div>
</div>
</div>
<div id="question-modal" class="modal">
<div class="modal-content">
<p id="question-text">问题会显示在这里...</p>
<input type="text" id="answer-input" placeholder="在这里输入答案...">
<button id="submit-answer" class="mc-button">提交答案</button>
<button id="close-question" class="mc-button">关闭</button>
<p id="feedback"></p>
</div>
</div>
<div id="result-modal" class="modal">
<div class="modal-content">
<div id="result-content"></div>
</div>
</div>
<!-- 音频文件 -->
<audio id="dice-sound" src="https://www.soundjay.com/buttons/button-3.mp3" preload="auto"></audio>
<audio id="correct-sound" src="https://www.soundjay.com/buttons/button-16.mp3" preload="auto"></audio>
<audio id="incorrect-sound" src="https://www.soundjay.com/buttons/button-10.mp3" preload="auto"></audio>
<audio id="move-sound" src="https://www.soundjay.com/buttons/button-7.mp3" preload="auto"></audio>
<audio id="win-sound" src="https://www.soundjay.com/human/applause-2.mp3" preload="auto"></audio>
<audio id="chance-sound" src="https://www.soundjay.com/buttons/button-4.mp3" preload="auto"></audio>
<audio id="timeout-sound" src="https://www.soundjay.com/interface/beep-5.mp3" preload="auto"></audio>
<audio id="victory-sound" src="https://www.soundjay.com/human/applause-2.mp3" preload="auto"></audio>
<script>
// --- 游戏配置 ---
const MAX_CELLS = 100;
const NUM_PLAYERS = 2;
const GOAL_CELL_INDEX = MAX_CELLS - 1;
// --- 初始问题数据库 ---
let questions = [
{ "q": "35 + 26 = ?", "a": "61", "type": "四则运算" },
{ "q": "98 - 45 = ?", "a": "53", "type": "四则运算" },
{ "q": "12 × 5 = ?", "a": "60", "type": "四则运算" },
{ "q": "72 ÷ 8 = ?", "a": "9", "type": "四则运算" },
{ "q": "46 + 38 - 25 = ?", "a": "59", "type": "四则运算" },
{ "q": "56 - 23 + 18 = ?", "a": "51", "type": "四则运算" },
{ "q": "3 × 9 + 12 = ?", "a": "39", "type": "四则运算" },
{ "q": "81 ÷ 9 - 5 = ?", "a": "4", "type": "四则运算" },
{ "q": "27 + 3 × 6 = ? (注意运算顺序)", "a": "45", "type": "四则运算" },
{ "q": "54 ÷ (6 + 3) = ?", "a": "6", "type": "四则运算" },
{ "q": "4 × (7 + 3) = ?", "a": "40", "type": "四则运算" },
{ "q": "76 - (32 + 18) = ?", "a": "26", "type": "四则运算" },
{ "q": "8 × 5 - 20 = ?", "a": "20", "type": "四则运算" },
{ "q": "36 ÷ 4 + 7 = ?", "a": "16", "type": "四则运算" },
{ "q": "6 × (9 - 4) = ?", "a": "30", "type": "四则运算" },
{ "q": "7*6 = ?", "a": "42", "type": "四则运算" },
{ "q": "50 - 15 = ?", "a": "35", "type": "四则运算" },
{ "q": "8*8 = ?", "a": "64", "type": "四则运算" },
{ "q": "100 / 10 = ?", "a": "10", "type": "四则运算" },
{ "q": "25 + 35 = ?", "a": "60", "type": "四则运算" },
{ "q": "9 * 3 = ?", "a": "27", "type": "四则运算" },
{ "q": "63 / 7 = ?", "a": "9", "type": "四则运算" },
{ "q": "4 * 8 + 10 = ?", "a": "42", "type": "四则运算" },
{ "q": "50 - 6 * 3 = ?", "a": "32", "type": "四则运算" },
{ "q": "(15 + 5) / 4 = ?", "a": "5", "type": "四则运算" },
{ "q": "What is 1/2 + 1/4? (fraction form)", "a": "3/4", "type": "四则运算" },
{ "q": "What is 10% of 200?", "a": "20", "type": "四则运算" },
{ "q": "小明有 15 颗糖果,小红的糖果数比小明多 8 颗,小红有几颗糖果?", "a": "23", "type": "应用题" },
{ "q": "老师买了 30 支铅笔,平均分给 6 个同学,每个同学分几支?", "a": "5", "type": "应用题" },
{ "q": "停车场原来有 28 辆车,开走了 12 辆,又开来 9 辆,现在停车场有多少辆车?", "a": "25", "type": "应用题" },
{ "q": "一本故事书 80 页,小明每天看 8 页,看了 6 天,还剩多少页没看?", "a": "32", "type": "应用题" },
{ "q": "妈妈买了 3 袋苹果,每袋 8 个,一共买了多少个苹果?吃了 10 个后,还剩几个?(只回答最后剩几个)", "a": "14", "type": "应用题" },
{ "q": "同学们去植树,每行种 9 棵,种了 5 行,一共种了多少棵树?", "a": "45", "type": "应用题" },
{ "q": "钢笔每支 6 元,买 4 支钢笔的钱可以买 8 本笔记本,一本笔记本多少钱?", "a": "3", "type": "应用题" },
{ "q": "一辆公交车上有 36 名乘客,到某站后下去 18 人,又上来 12 人,这时车上有多少人?", "a": "30", "type": "应用题" },
{ "q": "买三个苹果花掉5元, 买六个苹果要花掉几元?", "a": "10", "type": "应用题" },
{ "q": "一个正方形的边长是 5 厘米,它的周长是多少厘米?", "a": "20", "type": "几何" },
{ "q": "长方形的长是 8 厘米,宽是 3 厘米,它的面积是多少平方厘米?", "a": "24", "type": "几何" },
{ "q": "三角形有几条边,几个角? (格式:X条边Y个角)", "a": "3条边3个角", "type": "几何" },
{ "q": "直角三角形中一个锐角是 30°,另一个锐角是多少度?", "a": "60", "type": "几何" },
{ "q": "正方体有几个面,每个面是什么形状? (格式:X个面,形状)", "a": "6个面,正方形", "type": "几何" },
{ "q": "一个圆形的半径是 4 厘米,它的直径是多少厘米?", "a": "8", "type": "几何" },
{ "q": "平行四边形有几组对边平行?", "a": "2", "type": "几何" },
{ "q": "等腰三角形有几条边相等?(最少)", "a": "2", "type": "几何" },
{ "q": "六边形有几条边?", "a": "6", "type": "几何" },
{ "q": "正方形面积是36平方厘米. 它的周长是多少厘米?", "a": "24", "type": "几何" },
{ "q": "苹果有 5 个,香蕉有 3 个,梨有 4 个。哪种水果最多?", "a": "苹果", "type": "简单图表" },
{ "q": "男生有 10 人,女生有 8 人,男生比女生多几人?", "a": "2", "type": "简单图表" },
{ "q": "小明的苹果数是 5 个,小红是小明的 3 倍,小红有几个?", "a": "15", "type": "简单图表" },
{ "q": "饼状图中,红色占 1/4,蓝色占 1/2,剩下部分占多少? (分数形式)", "a": "1/4", "type": "简单图表" },
{ "q": "1 米等于多少厘米?", "a": "100", "type": "单位换算" },
{ "q": "5 千克等于多少克?", "a": "5000", "type": "单位换算" },
{ "q": "300 厘米等于多少米?", "a": "3", "type": "单位换算" },
{ "q": "2 升等于多少毫升?", "a": "2000", "type": "单位换算" },
{ "q": "8000 克等于多少千克?", "a": "8", "type": "单位换算" },
{ "q": "1 小时等于多少分钟?", "a": "60", "type": "单位换算" },
{ "q": "60 分钟等于多少小时?", "a": "1", "type": "单位换算" },
{ "q": "5000 毫升等于多少升?", "a": "5", "type": "单位换算" },
{ "q": "3 千克 500 克等于多少克?", "a": "3500", "type": "单位换算" },
{ "q": "2 米 30 厘米等于多少厘米?", "a": "230", "type": "单位换算" },
{ "q": "两小时是多少分钟(回答数字即可,单位:分钟)?", "a": "120", "type": "单位换算" },
{ "q": "用数字 2、5、8 组成的最大三位数是多少?", "a": "852", "type": "最值问题" },
{ "q": "从 1、3、6 中选两个数组成最小的两位数是多少?", "a": "13", "type": "最值问题" },
{ "q": "铅笔2元,橡皮1元,本子3元。有10元钱,怎样买能买到最多文具?(只回答最多买几件)", "a": "10", "type": "最值问题" },
{ "q": "4个小朋友分别有 5、8、3、6 颗糖,谁的糖最多?(回答数字)", "a": "8", "type": "最值问题" },
{ "q": "用18根同样长的小棒围长方形(边长是整数),怎样围面积最大?(回答面积)", "a": "20", "type": "最值问题" },
{ "q": "盒子里有 3 个红球,2 个白球,摸到红球的可能性大还是白球的可能性大?", "a": "红球", "type": "概率" },
{ "q": "抛一枚硬币,正面朝上的可能性是多少? (分数形式)", "a": "1/2", "type": "概率" },
{ "q": "袋子里有 4 个黄球,4 个蓝球,摸到黄球和蓝球的可能性一样吗? (回答 是/否)", "a": "是", "type": "概率" },
{ "q": "口袋里有 5 个黑球,3 个白球,1 个红球,摸到哪种球的可能性最小?", "a": "红球", "type": "概率" },
{ "q": "从 1 到 10 的卡片中抽一张,抽到偶数的可能性大还是奇数的可能性大?", "a": "一样大", "type": "概率" },
{ "q": "找规律填数:2,4,6,8,( ),( )(用逗号隔开)", "a": "10,12", "type": "拓展" },
{ "q": "5 只青蛙几张嘴,几只眼睛,几条腿? (格式: X嘴Y眼Z腿)", "a": "5嘴10眼20腿", "type": "拓展" },
{ "q": "时钟在 3 点时敲 3 下,用 6 秒敲完。那么 6 点时敲 6 下,需要几秒敲完?", "a": "15", "type": "拓展" },
{ "q": "把一根木头锯成 3 段要 6 分钟,锯成 6 段要多少分钟?", "a": "15", "type": "拓展" },
{ "q": "同学们排队,从前面数小明排第 5,从后面数小明排第 8,这一排一共有多少人?", "a": "12", "type": "拓展" },
{ "q": "10 以内所有质数的和是多少? (2, 3, 5, 7)", "a": "17", "type": "拓展" },
{ "q": "小明今年 8 岁,爸爸的年龄是他的 4 倍,爸爸比小明大多少岁?", "a": "24", "type": "拓展" },
{ "q": "用 0、2、5 这三个数字能组成多少个不同的三位数?", "a": "4", "type": "拓展" },
{ "q": "把一根绳子对折 3 次后,每段长 5 米,这根绳子原来长多少米?", "a": "40", "type": "拓展" },
{ "q": "3 只猫 3 天吃了 3 只老鼠,照这样计算,9 只猫 9 天能吃几只老鼠?", "a": "27", "type": "拓展" },
{ "q": "一桶油连桶重 10 千克,用去一半油后,连桶重 6 千克,桶重多少千克?", "a": "2", "type": "拓展" },
{ "q": "从 1 楼走到 3 楼需要 2 分钟,那么从 1 楼走到 6 楼需要几分钟?", "a": "5", "type": "拓展" },
{ "q": "在一个正方形的花坛四周摆花盆,每边摆 5 盆,四个角都要摆,一共需要摆多少盆花?", "a": "16", "type": "拓展" },
{ "q": "一只蜗牛从井底往上爬,白天向上爬 3 米,晚上下滑 1 米,井深 7 米,蜗牛几天能爬出井口?", "a": "3", "type": "拓展" },
{ "q": "15 个小朋友玩捉迷藏游戏,藏起来了14个。已经找到了 5 个小朋友,还有几个小朋友没被找到?", "a": "9", "type": "拓展" },
{ "q": "有一些糖果,比 20 块多,比 30 块少,平均分给 6 个小朋友,正好分完。这些糖果有多少块?", "a": "24", "type": "拓展" },
{ "q": "一辆自行车有 2 个轮子,一辆三轮车有 3 个轮子。车棚里放着自行车和三轮车共 8 辆,共 20 个轮子。自行车和三轮车各有多少辆?(格式: 自行车X辆三轮车Y辆)", "a": "自行车4辆三轮车4辆", "type": "拓展" },
{ "q": "3 个人 3 天喝 3 桶水,9 个人 9 天喝几桶水?", "a": "27", "type": "拓展" },
{ "q": "停车场有小轿车(4轮)和摩托车(2轮)共 9 辆,数一数轮子共有 26 个,小轿车和摩托车各有几辆?(格式: 小轿车X辆摩托车Y辆)", "a": "小轿车4辆摩托车5辆", "type": "拓展" },
{ "q": "有一条长 18 米的小路,在路的一边从头到尾每隔 3 米种一棵树,一共要种多少棵树?", "a": "7", "type": "拓展" },
{ "q": "10 个同学围成一圈做游戏,每两个同学之间相隔 2 米,这个圈的周长是多少米?", "a": "20", "type": "拓展" },
{ "q": "把一根粗细均匀的木头锯成 5 段,每锯一次需要 3 分钟,一共需要多少分钟?", "a": "12", "type": "拓展" },
{ "q": "一个数加上 3,减去 5,乘以 4,除以 6 得 16,这个数是多少?", "a": "26", "type": "拓展" },
{ "q": "学校门前的一条路长 42 米,从头到尾栽树,每 7 米栽一棵,一共能栽几棵树?", "a": "7", "type": "拓展" },
{ "q": "甲乙两数的和是 16,甲数比乙数多 2,甲乙两数各是多少?(格式: 甲X乙Y)", "a": "甲9乙7", "type": "拓展" },
{ "q": "哥哥和弟弟共有 20 张卡片,哥哥给弟弟 4 张后,两人的卡片数同样多,原来哥哥和弟弟各有多少张卡片?(格式: 哥X弟Y)", "a": "哥14弟6", "type": "拓展" },
{ "q": "15是不是一个质数或素数? (Yes/No)", "a": "不是", "type": "拓展" },
{ "q": "如果你一天睡8小时, 那么你睡眠时间占一天时间的几分之几?", "a": "1/3", "type": "拓展" },
{ "q": "下面数字序列下一个数是多少: 5, 10, 15, 20, ...?", "a": "25", "type": "拓展" },
{ "q": "下面的小数和分数谁大: 0.5 还是 1/3 ?", "a": "0.5", "type": "拓展" },
{ "q": "口算:56 + 23 = ?", "a": "79", "type": "四则运算" },
{ "q": "口算:98 - 34 = ?", "a": "64", "type": "四则运算" },
{ "q": "口算:45 × 2 = ?", "a": "90", "type": "四则运算" },
{ "q": "口算:84 ÷ 4 = ?", "a": "21", "type": "四则运算" },
{ "q": "列竖式计算:37 × 12 = ?", "a": "444", "type": "四则运算" },
{ "q": "列竖式计算:435 ÷ 5 = ?", "a": "87", "type": "四则运算" },
{ "q": "脱式计算:23 + 45 × 3 - 15 = ?", "a": "143", "type": "四则运算" },
{ "q": "填运算符号使等式成立:5 _ 3 _ 2 = 13 (用逗号隔开符号)", "a": "*,-", "type": "四则运算" },
{ "q": "小明有 20 颗糖果,给了小红 5 颗,小明还剩几颗糖果?", "a": "15", "type": "应用题" },
{ "q": "每支铅笔 3 元,买 5 支铅笔需要多少钱?(单位:元)", "a": "15", "type": "应用题" },
{ "q": "同学们去植树,分成 4 组,每组 8 人,一共有多少人去植树?(单位:人)", "a": "32", "type": "应用题" },
{ "q": "学校买来故事书 120 本,科技书比故事书少 20 本,科技书有多少本?(单位:本)", "a": "100", "type": "应用题" },
{ "q": "一辆汽车 3 小时行驶了 180 千米,平均每小时行驶多少千米?(单位:千米/小时)", "a": "60", "type": "应用题" },
{ "q": "商店运来苹果 25 箱,梨比苹果多 10 箱,每箱水果重 20 千克,梨有多少千克?(单位:千克)", "a": "700", "type": "应用题" },
{ "q": "三年级同学去划船,每条船限坐 6 人,一共去了 48 人,需要租多少条船?如果每条船租金是 8 元,一共要花多少钱?(格式:X条船,Y元)", "a": "8条船,64元", "type": "应用题" },
{ "q": "长方形有几条边,几个角?(格式:X条边,Y个角)", "a": "4条边,4个角", "type": "几何" },
{ "q": "正方形的四条边有什么特点?", "a": "四条边都相等", "type": "几何" },
{ "q": "三角形有几条边,几个角?(格式:X条边,Y个角)", "a": "3条边,3个角", "type": "几何" },
{ "q": "一个长方形长 8 厘米,宽 5 厘米,它的周长是多少厘米?(单位:厘米)", "a": "26", "type": "几何" },
{ "q": "边长为 6 厘米的正方形,它的面积是多少平方厘米?(单位:平方厘米)", "a": "36", "type": "几何" },
{ "q": "把一个边长为 10 厘米的正方形,剪成两个完全一样的长方形,每个长方形的周长是多少厘米?(单位:厘米)", "a": "30", "type": "几何" },
{ "q": "1 米 =( )厘米", "a": "100", "type": "单位换算" },
{ "q": "1 千克 =( )克", "a": "1000", "type": "单位换算" },
{ "q": "300 厘米 =( )米", "a": "3", "type": "单位换算" },
{ "q": "5 千克 50 克 =( )克", "a": "5050", "type": "单位换算" },
{ "q": "一辆卡车的载重量是 5( ),填合适的单位(吨/千克/克)。", "a": "吨", "type": "单位换算" },
{ "q": "一个西瓜重 4 千克,40 个这样的西瓜重多少千克,合多少吨?(格式:X千克,合Y吨)", "a": "160千克,合0.16吨", "type": "单位换算" },
{ "q": "用 1、3、5 组成一个三位数,最大的数是多少,最小的数是多少?(格式:最大X,最小Y)", "a": "最大531,最小135", "type": "最值问题" },
{ "q": "要把 24 个苹果装在篮子里,每个篮子装得同样多,有几种装法?哪种装法用的篮子最少?(格式:X种装法,装Y个/篮时最少)", "a": "8种装法,装24个/篮时最少", "type": "最值问题" },
{ "q": "有30米长的绳子, 要围成一个长方形, 长和宽取整米数,怎样围面积最大?(回答长和宽,如:长?米宽?米)", "a": "长8米宽7米", "type": "最值问题" },
{ "q": "盒子里有 5 个红球,3 个白球,任意摸一个球,摸到哪种球的可能性大?", "a": "红球", "type": "概率" },
{ "q": "抛一枚硬币,正面朝上的可能性是多少?(分数格式)", "a": "1/2", "type": "概率" },
{ "q": "下面是某小组同学的身高数据(单位:厘米):130、135、140、138、142,求出这组数据的平均数。(单位:厘米)", "a": "137", "type": "概率" },
{ "q": "计算723+456?523+144,请利用加法交换律与结合律简化运算。", "a": "800", "type": "四则运算", "sub_category": "简便计算", "difficulty": 3 },
{ "q": "计算(36+48)÷6+25×3的结果。", "a": "89", "type": "四则运算", "sub_category": "混合运算", "difficulty": 3 },
{ "q": "完成小数运算8.56?(3.56+2.49),思考如何简便计算。", "a": "2.51", "type": "四则运算", "sub_category": "小数运算, 简便计算", "difficulty": 3 },
{ "q": "计算0.25×32×1.25,通过合理拆分数字简化计算。", "a": "10", "type": "四则运算", "sub_category": "小数运算, 简便计算", "difficulty": 4 },
{ "q": "甲、乙两车同时从 A、B 两地相对开出,甲车每小时行 55 千米,乙车每小时行 45 千米,经过 3 小时两车还相距 100 千米,A、B 两地相距多少千米?", "a": "400 千米", "type": "应用题", "sub_category": "行程进阶", "difficulty": 3 },
{ "q": "一列火车长 180 米,每秒行 20 米,这列火车通过 320 米长的大桥,需要多长时间?", "a": "25 秒", "type": "应用题", "sub_category": "行程进阶", "difficulty": 3 },
{ "q": "幼儿园老师给小朋友分苹果,如果每人分 3 个,则多 9 个;如果每人分 5 个,则少 7 个。有多少个小朋友?一共有多少个苹果?", "a": "小朋友人数: 8 人,苹果数量: 33 个", "type": "应用题", "sub_category": "盈亏问题", "difficulty": 4 },
{ "q": "学校给一批新入学的学生分配宿舍。如果每个房间住 12 人,则 34 人没有位置;如果每个房间住 14 人,则空出 4 个房间。求学生宿舍有多少间?住宿学生有多少人?", "a": "学生宿舍有 45 间,住宿学生有 574 人", "type": "应用题", "sub_category": "盈亏问题", "difficulty": 4 },
{ "q": "一种药水是用药粉和水按 1:100 配成的,要配制这种药水 8080 克,需要药粉多少克?", "a": "80 克", "type": "应用题", "sub_category": "比例问题", "difficulty": 3 },
{ "q": "小明读一本书,已读的页数和未读的页数之比是 5:4。如果再读 27 页,已读的页数和未读的页数之比是 2:1。这本书共有多少页?", "a": "243 页", "type": "应用题", "sub_category": "比例问题", "difficulty": 4 },
{ "q": "把两个边长为 8 厘米的正方形拼成一个长方形,这个长方形的周长和面积分别是多少?", "a": "周长: 48 厘米,面积: 128 平方厘米", "type": "几何图形", "sub_category": "拼接与分割", "difficulty": 2 },
{ "q": "将一个长 16 厘米、宽 12 厘米的长方形分成若干个边长为整数的小正方形,最少可以分成多少个小正方形?", "a": "4 个", "type": "几何图形", "sub_category": "拼接与分割", "difficulty": 3 },
{ "q": "一个正方体的棱长扩大到原来的 3 倍,它的表面积扩大到原来的多少倍?体积扩大到原来的多少倍?", "a": "表面积扩大到原来的 9 倍,体积扩大到原来的 27 倍", "type": "几何图形", "sub_category": "立体图形表面积与体积变化", "difficulty": 3 },
{ "q": "把一个长、宽、高分别为 9 厘米、7 厘米、3 厘米的长方体铁块和一个棱长为 5 厘米的正方体铁块,熔铸成一个底面直径为 10 厘米的圆锥形铁块。求圆锥形铁块的高是多少厘米?", "a": "12 厘米 (近似值,π取3.14)", "type": "几何图形", "sub_category": "立体图形表面积与体积变化", "difficulty": 4 },
{ "q": "3 只猫 3 天能捉 3 只老鼠,照这样计算,要在 100 天里捉 100 只老鼠需要多少只猫?", "a": "3 只猫", "type": "数学趣题", "difficulty": 3 },
{ "q": "5 个空瓶可以换 1 瓶汽水,某班同学喝了 161 瓶汽水,其中有一些是用喝剩下来的空瓶换的,那么他们至少要买汽水多少瓶?", "a": "129 瓶", "type": "数学趣题", "difficulty": 4 },
{ "q": "计算 987 - (234 + 389) + 156", "a": "520", "type": "四则运算", "sub_category": "混合运算", "difficulty": 2 },
{ "q": "算出 [24×(36 - 12)]÷ 8 的结果", "a": "72", "type": "四则运算", "sub_category": "混合运算", "difficulty": 3 },
{ "q": "简便计算 45×98", "a": "4410", "type": "四则运算", "sub_category": "简便计算", "difficulty": 3 },
{ "q": "小数运算 7.89 +(5.6 - 3.21)", "a": "10.28", "type": "四则运算", "sub_category": "小数运算", "difficulty": 3 },
{ "q": "计算 1.25×8.8", "a": "11", "type": "四则运算", "sub_category": "小数运算, 简便计算", "difficulty": 4 },
{ "q": "笼子里有鸡和兔共 30 只,脚共有 90 只,鸡和兔各有多少只?", "a": "鸡 15 只,兔 15 只", "type": "应用题", "sub_category": "鸡兔同笼", "difficulty": 3 },
{ "q": "停车场有三轮车和小轿车共 25 辆,车轮共 80 个,三轮车和小轿车各有多少辆?", "a": "三轮车 20 辆,小轿车 5 辆", "type": "应用题", "sub_category": "鸡兔同笼", "difficulty": 3 },
{ "q": "爸爸今年 40 岁,儿子今年 12 岁,几年后爸爸的年龄是儿子的 3 倍?", "a": "2 年后", "type": "应用题", "sub_category": "年龄问题", "difficulty": 3 },
{ "q": "姐姐今年 18 岁,弟弟今年 12 岁,当姐弟俩年龄和是 50 岁时,两人各多少岁?", "a": "姐姐 28 岁,弟弟 22 岁", "type": "应用题", "sub_category": "年龄问题", "difficulty": 3 },
{ "q": "一本书共 200 页,小明第一天看了全书的 1/5,第二天看了剩下的 1/4,第二天看了多少页?", "a": "40 页", "type": "应用题", "sub_category": "分数问题", "difficulty": 3 },
{ "q": "修一条路,第一天修了全长的 2/7,第二天修了全长的 3/7,还剩下全长的几分之几没修?", "a": "2/7", "type": "应用题", "sub_category": "分数问题", "difficulty": 2 },
{ "q": "在一个边长为 10 厘米的正方形中,有一个最大的圆,求圆与正方形之间的阴影部分面积。", "a": "100 - 25π 平方厘米 (约 21.5 平方厘米)", "type": "几何图形", "sub_category": "阴影面积", "difficulty": 3 },
{ "q": "已知三角形的底是 8 厘米,高是 6 厘米,在三角形内画一个最大的正方形,求正方形的面积。", "a": "576/49 平方厘米 (约 11.76 平方厘米)", "type": "几何图形", "sub_category": "阴影面积", "difficulty": 4 },
{ "q": "把一个棱长为 6 分米的正方体木块,削成一个最大的圆锥体,这个圆锥体的体积是多少立方分米?", "a": "18π 立方分米 (约 56.52 立方分米)", "type": "几何图形", "sub_category": "立体拓展", "difficulty": 3 },
{ "q": "一个长方体水箱,从里面量长 40 厘米,宽 30 厘米,深 35 厘米,原来水深 10 厘米,放进一个棱长 20 厘米的正方体铁块后,铁块的顶面仍高于水面。这时水面高多少厘米?", "a": "50/3 厘米 (约 16.67 厘米)", "type": "几何图形", "sub_category": "立体拓展", "difficulty": 4 },
{ "q": "找规律填数:1,4,9,16,( ),36", "a": "25", "type": "规律探索", "difficulty": 2 },
{ "q": "观察数列 2,5,10,17,26,……,第 10 个数是多少?", "a": "101", "type": "规律探索", "difficulty": 3 },
{ "q": "小明要做完以下几件事:烧开水 10 分钟,洗茶杯 2 分钟,拿茶叶 1 分钟,沏茶 1 分钟。怎样安排才能让所用时间最短,最短需要几分钟?", "a": "最短时间是 10 分钟。在烧开水的过程中,可以洗茶杯、拿茶叶、沏茶。", "type": "统筹规划", "difficulty": 3 },
{ "q": "用一只平底锅烙饼,每次最多能烙 2 张饼,两面都要烙,每面 2 分钟。烙 5 张饼至少需要几分钟?", "a": "10 分钟", "type": "统筹规划", "difficulty": 4 },
{ "q": "计算:465+378?199", "a": "644", "type": "四则运算", "sub_category": "混合运算", "difficulty": 2 },
{ "q": "运算:24×(18+32)÷5", "a": "240", "type": "四则运算", "sub_category": "混合运算", "difficulty": 3 },
{ "q": "简便运算:125×32×25", "a": "100000", "type": "四则运算", "sub_category": "简便运算", "difficulty": 3 },
{ "q": "小数运算:3.45+2.6?1.83", "a": "4.22", "type": "四则运算", "sub_category": "小数运算", "difficulty": 3 },
{ "q": "一辆汽车以每小时 60 千米的速度从 A 地开往 B 地,3 小时后,距离 B 地还有 150 千米。A、B 两地相距多少千米?", "a": "330 千米", "type": "应用题", "sub_category": "行程问题", "difficulty": 2 },
{ "q": "一项工程,甲队单独做需要 8 天完成,乙队单独做需要 12 天完成。两队合作,几天可以完成这项工程的一半?", "a": "2.4 天", "type": "应用题", "sub_category": "工程问题", "difficulty": 3 },
{ "q": "商场促销,一件衣服原价 360 元,现在打八折出售,妈妈带了 300 元,够买这件衣服吗?如果够,还剩多少钱?", "a": "够买,还剩 12 元", "type": "应用题", "sub_category": "购物问题", "difficulty": 2 },
{ "q": "果园里苹果树的棵数是梨树的 3 倍,苹果树比梨树多 120 棵。苹果树和梨树各有多少棵?", "a": "苹果树180棵梨树60棵", "type": "应用题", "sub_category": "倍数问题", "difficulty": 3 },
{ "q": "一个等腰梯形,上底长 5 厘米,下底长 9 厘米,腰长 6 厘米,它的周长是多少厘米?", "a": "26 厘米", "type": "几何图形", "sub_category": "图形周长", "difficulty": 2 },
{ "q": "一个长方形,如果长增加 3 厘米,面积就增加 15 平方厘米;如果宽减少 2 厘米,面积就减少 18 平方厘米。原来长方形的面积是多少平方厘米?", "a": "45 平方厘米", "type": "几何图形", "sub_category": "图形面积", "difficulty": 3 },
{ "q": "用 4 个边长为 3 厘米的正方形拼成一个大长方形或大正方形,它们的周长和面积分别是多少?", "a": "拼成大正方形: 周长 24 厘米,面积 36 平方厘米;拼成长方形: 周长 30 厘米,面积 36 平方厘米", "type": "几何图形", "sub_category": "图形拼接", "difficulty": 3 },
{ "q": "5 千米 60 米 = ( )米", "a": "5060 米", "type": "单位换算", "sub_category": "长度单位", "difficulty": 2 },
{ "q": "3 吨 50 千克 = ( )千克", "a": "3050 千克", "type": "单位换算", "sub_category": "重量单位", "difficulty": 2 },
{ "q": "4 平方米 5 平方分米 = ( )平方分米", "a": "405 平方分米", "type": "单位换算", "sub_category": "面积单位", "difficulty": 2 },
{ "q": "小明参加了 5 次数学测验,成绩分别是 92 分、88 分、95 分、90 分、93 分。他这 5 次测验的平均成绩是多少分?", "a": "91.6 分", "type": "统计与概率", "sub_category": "数据统计", "difficulty": 2 },
{ "q": "一个盒子里有 5 个红球、3 个黄球和 2 个白球,从中任意摸出一个球,摸到红球的可能性是几分之几?摸到黄球的可能性比白球大多少?", "a": "摸到红球的可能性是 1/2,摸到黄球的可能性比白球大 1/10", "type": "统计与概率", "sub_category": "可能性问题", "difficulty": 3 },
{ "q": "用 0、3、5、7 这四个数字组成一个四位数,使它既是 2 的倍数,又是 5 的倍数,这个四位数最大是多少?最小是多少?", "a": "最大是 7530,最小是 3570", "type": "最值问题", "sub_category": "数字组合", "difficulty": 2 },
{ "q": "将 12 拆分成两个自然数的和,要使这两个自然数的乘积最大,应该怎么拆分?乘积最大是多少?", "a": "拆分成 6 和 6,乘积最大是 36", "type": "最值问题", "sub_category": "最值求解", "difficulty": 3 },
{ "q": "有一列数:3、5、8、3、5、8、3、5、8…… 第 20 个数是多少?这 20 个数的和是多少?", "a": "第 20 个数是 5,这 20 个数的和是 104", "type": "综合类", "sub_category": "周期问题", "difficulty": 3 },
{ "q": "A、B、C 三人进行跑步比赛,甲、乙、丙三人对比赛结果进行预测。甲说:“A 肯定是第一名。” 乙说:“A 不是最后一名。” 丙说:“A 肯定不是第一名。” 其中只有一人对比赛结果的预测是正确的。预测正确的是谁?A 得了第几名?", "a": "预测正确的是丙,A 得了第三名", "type": "综合类", "sub_category": "推理问题", "difficulty": 4 },
{ "q": "56 + 32 = ?", "a": "88", "type": "四则运算", "sub_category": "加法", "difficulty": 1 },
{ "q": "98 - 23 = ?", "a": "75", "type": "四则运算", "sub_category": "减法", "difficulty": 1 },
{ "q": "3 × 12 = ?", "a": "36", "type": "四则运算", "sub_category": "乘法", "difficulty": 1 },
{ "q": "72 ÷ 8 = ?", "a": "9", "type": "四则运算", "sub_category": "除法", "difficulty": 1 },
{ "q": "23 + 5 × 4,先算乘法再算加法,结果是多少?", "a": "43", "type": "四则运算", "sub_category": "混合运算", "difficulty": 2 },
{ "q": "(45 - 15) ÷ 6,先算括号里再算除法,结果是多少?", "a": "5", "type": "四则运算", "sub_category": "混合运算", "difficulty": 2 },
{ "q": "小明有 12 个苹果,小红的苹果数比小明多 5 个,小红有几个苹果?", "a": "17 个", "type": "应用题", "sub_category": "简单加减", "difficulty": 1 },
{ "q": "老师买了 3 盒铅笔,每盒 10 支,分给同学们 25 支,还剩多少支?", "a": "5 支", "type": "应用题", "sub_category": "简单混合运算", "difficulty": 2 },
{ "q": "一辆公交车上原来有 20 人,第一站上来 8 人,下去 5 人,第二站上来 6 人,现在车上有多少人?", "a": "29 人", "type": "应用题", "sub_category": "简单混合运算", "difficulty": 2 },
{ "q": "学校组织跳绳比赛,小力 3 分钟跳了 210 下,平均每分钟跳多少下?", "a": "70 下", "type": "应用题", "sub_category": "平均数", "difficulty": 2 },
{ "q": "商店里有 50 个气球,卖出了 20 个,剩下的要平均分给 6 个小朋友,每个小朋友能分到几个?", "a": "5 个", "type": "应用题", "sub_category": "混合运算", "difficulty": 3 },
{ "q": "长方形有几条边,几个角?", "a": "4 条边,4 个角", "type": "几何图形", "sub_category": "平面图形概念", "difficulty": 1 },
{ "q": "正方形的四条边有什么特点?", "a": "四条边都相等", "type": "几何图形", "sub_category": "平面图形概念", "difficulty": 1 },
{ "q": "三角形有几条高?", "a": "3 条高", "type": "几何图形", "sub_category": "平面图形概念", "difficulty": 1 },
{ "q": "一个边长为 5 厘米的正方形,它的周长是多少厘米?", "a": "20 厘米", "type": "几何图形", "sub_category": "平面图形周长", "difficulty": 2 },
{ "q": "一个长方形,长 8 厘米,宽 3 厘米,它的面积是多少平方厘米?", "a": "24 平方厘米", "type": "几何图形", "sub_category": "平面图形面积", "difficulty": 2 },
{ "q": "根据下面的表格,回答苹果有几个?| 水果 | 数量 | | ---- | ---- | | 苹果 | 15| | 香蕉 | 10|", "a": "15 个", "type": "简单图表", "sub_category": "数据提取", "difficulty": 1 },
{ "q": "1 米 = ( )厘米", "a": "100 厘米", "type": "单位换算", "sub_category": "长度单位", "difficulty": 1 },
{ "q": "1 千克 = ( )克", "a": "1000 克", "type": "单位换算", "sub_category": "质量单位", "difficulty": 1 },
{ "q": "300 厘米 = ( )米", "a": "3 米", "type": "单位换算", "sub_category": "长度单位", "difficulty": 1 },
{ "q": "5 千克 50 克 = ( )克", "a": "5050 克", "type": "单位换算", "sub_category": "质量单位", "difficulty": 2 },
{ "q": "2 米 3 分米 = ( )分米", "a": "23 分米", "type": "单位换算", "sub_category": "长度单位", "difficulty": 2 },
{ "q": "用 1、2、3 组成的三位数中,最大的数是多少?最小的数是多少?", "a": "最大: 321,最小: 123", "type": "最值问题", "sub_category": "数字排列", "difficulty": 2 },
{ "q": "有 20 米长的绳子,要围成一个长方形,长和宽取整米数,怎样围面积最大?", "a": "长 5 米,宽 5 米时面积最大", "type": "最值问题", "sub_category": "最值求解", "difficulty": 3 },
{ "q": "盒子里有 5 个红球,3 个白球,任意摸一个球,摸到哪种球的可能性大?", "a": "红球", "type": "统计与概率", "sub_category": "可能性", "difficulty": 1 },
{ "q": "在一个袋子里有 8 张卡片,其中 5 张是动物卡片,3 张是植物卡片,抽到动物卡片的概率是多少?", "a": "5/8", "type": "统计与概率", "sub_category": "可能性", "difficulty": 2 }
];
// --- 游戏状态变量 ---
let players = [];
let currentPlayerIndex = 0;
let currentQuestion = null;
let diceRoll = 0;
let soundEnabled = true;
let cellData = [];
let availableQuestions = [];
let selectedCategory = 'all';
let maxRounds = 15;
let answerTimeLimit = 60;
let timeLeft = 0;
let timerInterval = null;
let currentRound = 1;
let highestAnsweredIndex = -1;
// --- DOM 元素 ---
const gameBoard = document.getElementById('game-board');
const diceDisplay = document.getElementById('dice-display');
const rollDiceBtn = document.getElementById('roll-dice');
const p1NameInput = document.getElementById('p1-name-input');
const p1PosDisplay = document.getElementById('p1-pos');
const p1RoundDisplay = document.getElementById('p1-round');
const p1Progress = document.getElementById('p1-progress');
const p1Arrow = document.getElementById('player1-arrow');
const p2NameInput = document.getElementById('p2-name-input');
const p2PosDisplay = document.getElementById('p2-pos');
const p2RoundDisplay = document.getElementById('p2-round');
const p2Progress = document.getElementById('p2-progress');
const p2Arrow = document.getElementById('player2-arrow');
const totalRoundsDisplay = document.querySelectorAll('#total-rounds');
const questionModal = document.getElementById('question-modal');
const questionText = document.getElementById('question-text');
const answerInput = document.getElementById('answer-input');
const submitAnswerBtn = document.getElementById('submit-answer');
const closeQuestionBtn = document.getElementById('close-question');
const feedback = document.getElementById('feedback');
const timerDisplay = document.getElementById('timer-display');
const resultModal = document.getElementById('result-modal');
const resultContent = document.getElementById('result-content');
const restartBtn = document.getElementById('restart-game');
const soundBtn = document.getElementById('toggle-sound');
const categorySelect = document.getElementById('category-select');
const loadQuestionsBtn = document.getElementById('load-questions-btn');
const loadQuestionsInput = document.getElementById('load-questions-input');
const roundsSlider = document.getElementById('rounds-slider');
const roundsValue = document.getElementById('rounds-value');
const timeSlider = document.getElementById('time-slider');
const timeValue = document.getElementById('time-value');
const sounds = {
dice: document.getElementById('dice-sound'),
correct: document.getElementById('correct-sound'),
incorrect: document.getElementById('incorrect-sound'),
move: document.getElementById('move-sound'),
win: document.getElementById('win-sound'),
chance: document.getElementById('chance-sound'),
timeout: document.getElementById('timeout-sound'),
victory: document.getElementById('victory-sound')
};
// --- 函数 ---
function playSound(soundName) {
if (soundEnabled && sounds[soundName]) {
sounds[soundName].currentTime = 0;
sounds[soundName].play().catch(e => console.log("音频播放失败:", e));
}
}
function toggleSound() {
soundEnabled = !soundEnabled;
soundBtn.textContent = soundEnabled ? '🔊 关声音' : '🔇 开声音';
}
function updateCategoryDropdown() {
const uniqueTypes = ['all', ...new Set(questions.map(q => q.type))];
const currentSelection = categorySelect.value;
while (categorySelect.options.length > 1) {
categorySelect.remove(1);
}
uniqueTypes.forEach(type => {
if (type === 'all') return;
const option = document.createElement('option');
option.value = type;
option.textContent = type;
categorySelect.appendChild(option);
});
categorySelect.value = uniqueTypes.includes(currentSelection) ? currentSelection : 'all';
selectedCategory = categorySelect.value;
}
function createPetals() {
const petalsContainer = document.getElementById('petals-container');
const petalColors = ['#ffcce6', '#ffb6c1', '#ffc0cb', '#ffe4e1', '#fff0f5'];
const petalCount = 30;
petalsContainer.innerHTML = '';
for (let i = 0; i < petalCount; i++) {
const petal = document.createElement('div');
petal.classList.add('petal');
const colorIndex = Math.floor(Math.random() * petalColors.length);
petal.innerHTML = `
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path d="M10,0 Q15,5 10,10 Q5,5 10,0 Z" fill="${petalColors[colorIndex]}" />
</svg>`;
petal.style.left = `${Math.random() * 100}%`;
petal.style.animationDuration = `${Math.random() * 10 + 10}s`;
petal.style.animationDelay = `${Math.random() * 5}s`;
petalsContainer.appendChild(petal);
}
}
function createBoard() {
gameBoard.innerHTML = '';
cellData = [];
for (let i = 0; i < MAX_CELLS; i++) {
const cell = document.createElement('div');
cell.id = `cell-${i}`;
cell.classList.add('cell');
const row = Math.floor(i / 10) + 1;
const col = (i % 10) + 1;
cell.style.gridRow = `${row}`;
cell.style.gridColumn = `${col}`;
let cellType = 'normal';
let cellContent = '';
if (i === 0) {
cellType = 'start';
cell.classList.add('start');
cellContent = '起点';
} else if (i === GOAL_CELL_INDEX) {
cellType = 'goal';
cell.classList.add('goal');
cellContent = '🏁';
} else if (i % 15 === 0 && i !== 0) {
cellType = 'chance';
cell.classList.add('chance');
cellContent = '❓';
} else if (i % 20 === 5) {
cellType = 'penalty';
cell.classList.add('penalty');
cellContent = '❗';
} else {
cellType = 'normal';
if (i <= highestAnsweredIndex) {
cellContent = `<span style="color: gold;">${i}</span>`;
} else {
cellContent = `<svg class="pencil-icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z" fill="#333"/>
</svg>`;
}
}
cell.innerHTML = cellContent;
gameBoard.appendChild(cell);
cellData.push({ id: i, type: cellType, element: cell });
}
for (let i = 0; i < NUM_PLAYERS; i++) {
const playerToken = document.createElement('div');
playerToken.classList.add('player');
playerToken.id = `player${i + 1}`;
playerToken.innerHTML = `<svg class="flag" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M0 0 L24 0 L12 12 Z" fill="${i === 0 ? '#FF0000' : '#0000FF'}"/>
</svg>`;
const startCell = cellData[0].element;
const rect = startCell.getBoundingClientRect();
const boardRect = gameBoard.getBoundingClientRect();
const left = rect.left - boardRect.left + (rect.width / 2) - 14 + (i * 12);
const top = rect.top - boardRect.top + (rect.height / 2) - 14 + (i * 6);
playerToken.style.left = `${left}px`;
playerToken.style.top = `${top}px`;
gameBoard.appendChild(playerToken);
}
}
function initGame() {
createPetals();
availableQuestions = [...questions];
createBoard();
players = [];
for (let i = 0; i < NUM_PLAYERS; i++) {
players.push({
id: i + 1,
name: i === 0 ? p1NameInput.value : p2NameInput.value,
position: 0,
tokenElement: document.getElementById(`player${i + 1}`),
color: window.getComputedStyle(document.getElementById(`player${i + 1}`)).backgroundColor
});
if (players[i].tokenElement) {
players[i].tokenElement.style.display = 'flex';
}
}
currentPlayerIndex = 0;
currentRound = 1;
diceRoll = 0;
currentQuestion = null;
highestAnsweredIndex = -1;
rollDiceBtn.disabled = false;
updateCategoryDropdown();
updateUI();
questionModal.style.display = 'none';
resultModal.style.display = 'none';
feedback.textContent = '';
soundBtn.textContent = soundEnabled ? '🔊 关声音' : '🔇 开声音';
totalRoundsDisplay.forEach(display => display.textContent = maxRounds);
p1RoundDisplay.textContent = currentRound;
p2RoundDisplay.textContent = currentRound;
p1Progress.style.width = `${(currentRound / maxRounds) * 100}%`;
p2Progress.style.width = `${(currentRound / maxRounds) * 100}%`;
timerDisplay.textContent = '';
}
function updateUI() {
players[0].name = p1NameInput.value;
p1PosDisplay.textContent = players[0].position;
players[1].name = p2NameInput.value;
p2PosDisplay.textContent = players[1].position;
const p1Info = document.getElementById('player1-info');
const p2Info = document.getElementById('player2-info');
p1Info.classList.toggle('player-active', currentPlayerIndex === 0);
p2Info.classList.toggle('player-active', currentPlayerIndex === 1);
p1Arrow.style.display = currentPlayerIndex === 0 ? 'block' : 'none';
p2Arrow.style.display = currentPlayerIndex === 1 ? 'block' : 'none';
rollDiceBtn.disabled = false;
document.querySelectorAll('.player').forEach(p => p.style.borderColor = '#fff');
players[currentPlayerIndex].tokenElement.style.borderColor = '#FFD700';
p1RoundDisplay.textContent = currentRound;
p2RoundDisplay.textContent = currentRound;
p1Progress.style.width = `${(currentRound / maxRounds) * 100}%`;
p2Progress.style.width = `${(currentRound / maxRounds) * 100}%`;
}
function rollDice() {
rollDiceBtn.disabled = true;
diceRoll = Math.floor(Math.random() * 6) + 1;
diceDisplay.classList.add('rolling');
playSound('dice');
let rollCount = 0;
const intervalId = setInterval(() => {
const faces = [
'<svg class="dice-icon" viewBox="0 0 24 24"><rect x="2" y="2" width="20" height="20" rx="4" fill="none" stroke="#333" stroke-width="2"/><circle cx="12" cy="12" r="2" fill="#333"/></svg>',
'<svg class="dice-icon" viewBox="0 0 24 24"><rect x="2" y="2" width="20" height="20" rx="4" fill="none" stroke="#333" stroke-width="2"/><circle cx="7" cy="7" r="2" fill="#333"/><circle cx="17" cy="17" r="2" fill="#333"/></svg>',
'<svg class="dice-icon" viewBox="0 0 24 24"><rect x="2" y="2" width="20" height="20" rx="4" fill="none" stroke="#333" stroke-width="2"/><circle cx="7" cy="7" r="2" fill="#333"/><circle cx="12" cy="12" r="2" fill="#333"/><circle cx="17" cy="17" r="2" fill="#333"/></svg>',
'<svg class="dice-icon" viewBox="0 0 24 24"><rect x="2" y="2" width="20" height="20" rx="4" fill="none" stroke="#333" stroke-width="2"/><circle cx="7" cy="7" r="2" fill="#333"/><circle cx="7" cy="17" r="2" fill="#333"/><circle cx="17" cy="7" r="2" fill="#333"/><circle cx="17" cy="17" r="2" fill="#333"/></svg>',
'<svg class="dice-icon" viewBox="0 0 24 24"><rect x="2" y="2" width="20" height="20" rx="4" fill="none" stroke="#333" stroke-width="2"/><circle cx="7" cy="7" r="2" fill="#333"/><circle cx="7" cy="17" r="2" fill="#333"/><circle cx="17" cy="7" r="2" fill="#333"/><circle cx="17" cy="17" r="2" fill="#333"/><circle cx="12" cy="12" r="2" fill="#333"/></svg>',
'<svg class="dice-icon" viewBox="0 0 24 24"><rect x="2" y="2" width="20" height="20" rx="4" fill="none" stroke="#333" stroke-width="2"/><circle cx="7" cy="7" r="2" fill="#333"/><circle cx="7" cy="12" r="2" fill="#333"/><circle cx="7" cy="17" r="2" fill="#333"/><circle cx="17" cy="7" r="2" fill="#333"/><circle cx="17" cy="12" r="2" fill="#333"/><circle cx="17" cy="17" r="2" fill="#333"/></svg>'
];
diceDisplay.innerHTML = faces[Math.floor(Math.random() * 6)];
rollCount++;
if (rollCount > 8) {
clearInterval(intervalId);
diceDisplay.innerHTML = faces[diceRoll - 1];
diceDisplay.classList.remove('rolling');
movePlayer();
}
}, 100);
}
function movePlayer() {
const player = players[currentPlayerIndex];
const currentPos = player.position;
let newPos = currentPos + diceRoll;
if (newPos >= GOAL_CELL_INDEX) {
newPos = GOAL_CELL_INDEX;
player.position = newPos;
updatePlayerTokenPosition(player, () => {
playSound('win');
showResult('win', player);
});
return;
}
player.position = newPos;
updateUI();
updatePlayerTokenPosition(player, () => {
handleCellAction(player, newPos);
});
}
function updatePlayerTokenPosition(player, callback) {
const targetCell = cellData[player.position].element;
const rect = targetCell.getBoundingClientRect();
const boardRect = gameBoard.getBoundingClientRect();
const left = rect.left - boardRect.left + (rect.width / 2) - 14 + ((player.id - 1) * 12);
const top = rect.top - boardRect.top + (rect.height / 2) - 14 + ((player.id - 1) * 6);
player.tokenElement.style.left = `${left}px`;
player.tokenElement.style.top = `${top}px`;
const onTransitionEnd = (event) => {
if (event.propertyName === 'left' || event.propertyName === 'top') {
player.tokenElement.removeEventListener('transitionend', onTransitionEnd);
if (callback) callback();
}
};
player.tokenElement.addEventListener('transitionend', onTransitionEnd);
setTimeout(() => {
player.tokenElement.removeEventListener('transitionend', onTransitionEnd);
if (callback) callback();
}, 600);
}
function handleCellAction(player, cellIndex) {
const cell = cellData[cellIndex];
if (!cell) return;
switch (cell.type) {
case 'start':
case 'goal':
setTimeout(nextTurn, 300);
break;
case 'normal':
askRandomQuestion();
break;
case 'chance':
playSound('chance');
handleChance(player);
break;
case 'penalty':
playSound('incorrect');
handlePenalty(player);
break;
default:
nextTurn();
}
}
function askRandomQuestion() {
let questionPool = availableQuestions;
if (selectedCategory !== 'all') {
const filteredPool = availableQuestions.filter(q => q.type === selectedCategory);
if (filteredPool.length > 0) {
questionPool = filteredPool;
} else {
console.log(`没有${selectedCategory}类型的问题。使用所有问题。`);
}
}
if (questionPool.length === 0) {
alert("题库中没有可用题目了!");
nextTurn();
return;
}
const randomIndex = Math.floor(Math.random() * questionPool.length);
currentQuestion = questionPool[randomIndex];
displayQuestion(currentQuestion);
}
function displayQuestion(question) {
questionText.textContent = question.q;
answerInput.value = '';
feedback.textContent = '';
feedback.className = '';
timeLeft = answerTimeLimit;
timerDisplay.textContent = timeLeft;
questionModal.style.display = 'flex';
answerInput.focus();
clearInterval(timerInterval);
timerInterval = setInterval(() => {
timeLeft--;
timerDisplay.textContent = timeLeft;
timerDisplay.style.color = timeLeft <= 10 ? (timeLeft <= 5 ? '#ff0000' : '#ff9800') : '#333';
if (timeLeft <= 0) {
clearInterval(timerInterval);
playSound('timeout');
feedback.textContent = `时间到!正确答案是: ${currentQuestion.a}`;
feedback.className = 'incorrect';
setTimeout(() => {
const moveBackSteps = 1;
feedback.textContent += ` 后退 ${moveBackSteps} 步!`;
setTimeout(() => {
movePlayerBack(players[currentPlayerIndex], moveBackSteps);
closeModalAndProceed();
}, 1500);
}, 500);
}
}, 1000);
players[currentPlayerIndex].tokenElement.querySelector('.flag').classList.add('flag-anim');
}
function submitAnswer() {
clearInterval(timerInterval);
const userAnswer = answerInput.value.trim();
if (!currentQuestion) return;
const correctAnswer = String(currentQuestion.a).trim();
let isCorrect = userAnswer.toLowerCase() === correctAnswer.toLowerCase();
if (!isNaN(parseFloat(correctAnswer)) && !isNaN(parseFloat(userAnswer))) {
isCorrect = parseFloat(userAnswer) === parseFloat(correctAnswer);
}
feedback.textContent = isCorrect ? '回答正确!' : `回答错误!正确答案是: ${currentQuestion.a}`;
feedback.className = isCorrect ? 'correct' : 'incorrect';
feedback.classList.add('feedback-anim');
feedback.addEventListener('animationend', () => feedback.classList.remove('feedback-anim'), { once: true });
if (isCorrect) {
playSound('correct');
const questionIndex = questions.indexOf(currentQuestion);
if (questionIndex > highestAnsweredIndex) {
highestAnsweredIndex = questionIndex;
updateCellIcons();
}
closeModalAndProceed();
} else {
playSound('incorrect');
const moveBackSteps = 1;
feedback.textContent += ` 后退 ${moveBackSteps} 步!`;
setTimeout(() => {
movePlayerBack(players[currentPlayerIndex], moveBackSteps);
closeModalAndProceed();
}, 1500);
}
}
function updateCellIcons() {
for (let i = 0; i <= highestAnsweredIndex; i++) {
const cell = cellData[i];
if (cell && cell.type === 'normal') {
cell.element.innerHTML = `<span style="color: gold;">${i}</span>`;
}
}
}
function closeQuestion() {
clearInterval(timerInterval);
questionModal.style.display = 'none';
timerDisplay.textContent = '';
currentQuestion = null;
nextTurn();
players[currentPlayerIndex].tokenElement.querySelector('.flag').classList.remove('flag-anim');
}
function movePlayerBack(player, steps) {
player.position = Math.max(0, player.position - steps);
updateUI();
updatePlayerTokenPosition(player, () => setTimeout(nextTurn, 100));
}
function closeModalAndProceed() {
setTimeout(() => {
questionModal.style.display = 'none';
timerDisplay.textContent = '';
const wasCorrect = feedback.classList.contains('correct');
currentQuestion = null;
if (wasCorrect) nextTurn();
players[currentPlayerIndex].tokenElement.querySelector('.flag').classList.remove('flag-anim');
}, feedback.classList.contains('correct') ? 1000 : 2000);
}
function handleChance(player) {
const chanceEffects = [
{ text: "运气不错!前进 3 格!", action: () => movePlayerForward(player, 3) },
{ text: "好运加持!前进 2 格!", action: () => movePlayerForward(player, 2) },
{ text: "免费通行!直接进入下一回合。", action: () => nextTurn() },
{ text: "原地休息,思考人生。", action: () => nextTurn() },
{ text: "小小的加速!前进 1 格。", action: () => movePlayerForward(player, 1) },
{ text: "获得一次额外的掷骰子机会!", action: () => { rollDiceBtn.disabled = false; } }
];
const randomEffect = chanceEffects[Math.floor(Math.random() * chanceEffects.length)];
playSound('chance');
alert(`机会卡: ${randomEffect.text}`);
setTimeout(() => {
randomEffect.action();
if (!randomEffect.text.includes("额外的掷骰子机会") && !randomEffect.text.includes("前进") && !randomEffect.text.includes("直接进入下一回合")) {
setTimeout(nextTurn, 300);
}
}, 500);
}
function handlePenalty(player) {
const penaltyEffects = [
{ text: "运气不佳!后退 2 格。", action: () => movePlayerBack(player, 2) },
{ text: "小挫折!后退 1 格。", action: () => movePlayerBack(player, 1) }
];
const randomEffect = penaltyEffects[Math.floor(Math.random() * penaltyEffects.length)];
playSound('incorrect');
alert(`处罚格: ${randomEffect.text}`);
setTimeout(() => randomEffect.action(), 500);
}
function movePlayerForward(player, steps) {
player.position = Math.min(GOAL_CELL_INDEX, player.position + steps);
updateUI();
updatePlayerTokenPosition(player, () => setTimeout(nextTurn, 300));
}
function nextTurn() {
currentPlayerIndex = (currentPlayerIndex + 1) % NUM_PLAYERS;
if (currentPlayerIndex === 0) {
currentRound++;
if (currentRound > maxRounds) {
const player1Pos = players[0].position;
const player2Pos = players[1].position;
let result, winner;
if (player1Pos > player2Pos) {
result = 'win';
winner = players[0];
} else if (player2Pos > player1Pos) {
result = 'win';
winner = players[1];
} else {
result = 'draw';
}
showResult(result, winner);
return;
}
}
rollDiceBtn.disabled = false;
updateUI();
}
function showResult(result, winner) {
resultModal.style.display = 'flex';
resultContent.innerHTML = '';
if (result === 'win') {
playSound('victory');
const loser = winner.id === 1 ? players[1] : players[0];
resultContent.innerHTML = `
<h2>${winner.name} 获胜!</h2>
<svg class="trophy-anim" width="100" height="100" xmlns="http://www.w3.org/2000/svg"> xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 70.24 98.61" style="enable-background:new 0 0 70.24 98.61;" xml:space="preserve">
<style type="text/css">
.st0{display:none;}
.st1{fill:url(#SVGID_1_);}
.st2{fill:#8A8989;}
.st3{fill:url(#SVGID_00000017491822530601940570000001064767440743049620_);}
.st4{fill:url(#SVGID_00000038393207096121394630000014283726525791631495_);}
.st5{fill:url(#SVGID_00000059988450824921701870000004491280075693659825_);}
.st6{fill:url(#SVGID_00000132774571745771261220000000962690752661143937_);}
.st7{fill:url(#SVGID_00000095323178147371126860000014016386018763478186_);}
.st8{fill:url(#SVGID_00000130631459813984329320000016311859656348568763_);}
.st9{fill:url(#SVGID_00000171693036243446635880000001716096273801661611_);}
.st10{fill:url(#SVGID_00000105412867844047719790000008742213979202513060_);}
.st11{fill:url(#SVGID_00000144306762388749287240000004111281517692682899_);}
.st12{fill:url(#SVGID_00000026150894286092574640000008251623081434444705_);}
.st13{fill:url(#SVGID_00000117641442499976419490000018437132092440000653_);}
.st14{fill:url(#SVGID_00000065790275428343486690000005126735199354871474_);}
.st15{fill:url(#SVGID_00000073709901295105857640000011075167942649141679_);}
.st16{fill:url(#SVGID_00000082336347049407510720000001647111332431977394_);}
.st17{fill:url(#SVGID_00000017477676713763025540000012755690553768476566_);}
.st18{fill:url(#SVGID_00000041997161353114953850000013445368347699634847_);}
.st19{fill:url(#SVGID_00000051352688868022440230000011141468556465904259_);}
.st20{fill:url(#SVGID_00000101813900360856236970000015628399799906229945_);}
.st21{fill:url(#SVGID_00000062161643478901116540000016420805879056899713_);}
.st22{fill:url(#SVGID_00000137109537070805384280000003938797817613778325_);}
.st23{fill:url(#SVGID_00000038407892136068432030000001909781992549910704_);}
.st24{fill:url(#SVGID_00000173127153047465972720000014286072638753754547_);}
.st25{fill:url(#SVGID_00000152234628032977936800000005865989742193875886_);}
.st26{fill:url(#SVGID_00000037654709986674394190000014737996378696877721_);}
.st27{fill:url(#SVGID_00000116951986668115063370000003901129152443380867_);}
.st28{fill:url(#SVGID_00000078728993872962127110000009783588784170384297_);}
.st29{fill:url(#SVGID_00000062190073432050822220000002389092817714733231_);}
.st30{fill:url(#SVGID_00000145050816450658747140000014991252968639752881_);}
.st31{fill:url(#SVGID_00000031205847646518247620000002169059862217638029_);}
.st32{fill:url(#SVGID_00000100361540289655051160000009932649736817417609_);}
.st33{fill:url(#SVGID_00000026155357624335901230000002191566360189987005_);}
.st34{fill:url(#SVGID_00000177469052918494160070000014929391258892671673_);}
.st35{fill:url(#SVGID_00000092456142825398058650000000910512388824656771_);}
.st36{fill:url(#SVGID_00000109721805982913705570000011657198114216052877_);}
.st37{fill:url(#SVGID_00000095338179954159351550000011887948511270947461_);}
.st38{fill:url(#SVGID_00000085218549898123020420000017281055456940241083_);}
.st39{fill:url(#SVGID_00000149343643740837780740000009459667793188626834_);}
.st40{fill:url(#SVGID_00000026145755568486715950000008827604233264692156_);}
.st41{fill:url(#SVGID_00000029011093423835139190000002005357439559161771_);}
.st42{fill:url(#SVGID_00000079448097893488343270000000638010765924850339_);}
.st43{fill:url(#SVGID_00000142156519141403482140000004191180646463536029_);}
.st44{fill:url(#SVGID_00000061430541942967640510000017742445818439344815_);}
.st45{fill:url(#SVGID_00000181786769799917154130000006742508847274026665_);}
.st46{fill:url(#SVGID_00000137115098662458330700000015477356651810954903_);}
.st47{fill:url(#SVGID_00000112627635454480817680000015731059807260401586_);}
.st48{fill:url(#SVGID_00000049189050725207031880000001974548544610792888_);}
.st49{fill:url(#SVGID_00000011728634242147675110000011471917744457182080_);}
.st50{fill:url(#SVGID_00000116924910821459955560000006634510232739283082_);}
.st51{fill:url(#SVGID_00000132777388217084943200000011934694654394372027_);}
.st52{fill:url(#SVGID_00000072977119144082633620000015062863420685141414_);}
.st53{fill:url(#SVGID_00000116194968759118531290000008453255946110747054_);}
.st54{fill:url(#SVGID_00000170279399560004193520000008288243065838643131_);}
.st55{fill:url(#SVGID_00000030470971553058495120000014758326822947237515_);}
.st56{fill:url(#SVGID_00000081605943347513152050000015437028073720069561_);}
.st57{fill:url(#SVGID_00000062193905684429710440000016377728835245809330_);}
.st58{fill:url(#SVGID_00000148650910337278291790000017833707701118592386_);}
.st59{fill:url(#SVGID_00000085933403887212896110000016948952053672744073_);}
.st60{fill:url(#SVGID_00000062194655069055385850000003396665747788448696_);}
.st61{fill:url(#SVGID_00000151522415860493829620000013716094079550670736_);}
.st62{fill:url(#SVGID_00000161617942359468276590000014832449145286884485_);}
.st63{fill:url(#SVGID_00000052106599880018338430000009263004941403096217_);}
.st64{fill:url(#SVGID_00000130634497662617763910000006006133643790722493_);}
.st65{fill:url(#SVGID_00000093871817595578324450000005694536866564427149_);}
.st66{fill:url(#SVGID_00000054232186618009631050000001215367219811344062_);}
.st67{fill:url(#SVGID_00000142144862081218846820000016711044816990709128_);}
.st68{fill:url(#SVGID_00000037673028651482975150000006447138956621004456_);}
.st69{fill:url(#SVGID_00000140008003874946466380000005352239842161360811_);}
.st70{fill:url(#SVGID_00000150096467554938347460000016237935607414425526_);}
.st71{fill:url(#SVGID_00000085250136663694485340000009957684094308603543_);}
.st72{fill:url(#SVGID_00000160890731175872136980000006426201614207540147_);}
.st73{fill:url(#SVGID_00000155145814398578209610000004343419604198842043_);}
.st74{fill:url(#SVGID_00000077283466574764348490000015155049569318384001_);}
.st75{fill:url(#SVGID_00000018947326104758920020000003480955275123631771_);}
.st76{fill:url(#SVGID_00000119075910624357818300000014395271577081032846_);}
.st77{fill:url(#SVGID_00000106826451724328050860000016062702829274108844_);}
</style>
<g id="Layer_1" class="st0">
</g>
<g id="Layer_2">
</g>
<g id="Layer_3">
</g>
<g id="Layer_4">
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="14.1117" y1="79.2335" x2="56.2918" y2="79.2335">
<stop offset="0" style="stop-color:#9D9D9C"/>
<stop offset="1" style="stop-color:#DCDCDC"/>
</linearGradient>
<path class="st1" d="M55.12,72.87c-1.44-2.39-4.06-4-7.06-4H22.35c-3,0-5.62,1.6-7.06,4c-0.75,1.24-1.18,2.69-1.18,4.24V87.4
c6.39,1.4,13.72,2.19,21.51,2.19c7.45,0,14.48-0.73,20.67-2.01V77.11C56.29,75.56,55.86,74.11,55.12,72.87z"/>
<path class="st2" d="M49.76,73.33c-1.44-2.67-4.06-4.45-7.06-4.45h-1.72c0.79,0.7,1.45,1.68,1.92,2.86
c0.5,1.24,0.78,2.69,0.78,4.24v10.46c-4.12,1.28-8.8,2.01-13.76,2.01c-5.19,0-10.07-0.79-14.32-2.19V75.97c0-1.55,0.29-3,0.78-4.24
c0.08-0.19,0.16-0.37,0.24-0.54c-0.52,0.5-0.97,1.06-1.35,1.69c-0.75,1.24-1.18,2.69-1.18,4.24V87.4
c6.39,1.4,13.72,2.19,21.51,2.19c5.38,0,10.53-0.38,15.31-1.07V78.05C50.93,76.32,50.5,74.71,49.76,73.33z"/>
<linearGradient id="SVGID_00000074432300669234824910000009994063693038076828_" gradientUnits="userSpaceOnUse" x1="21.6363" y1="70.0742" x2="19.8806" y2="85.2321">
<stop offset="0" style="stop-color:#FFFFFF"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.14"/>
</linearGradient>
<path style="fill:url(#SVGID_00000074432300669234824910000009994063693038076828_);" d="M22.49,70.06c-2.63,0-4.93,1.4-6.19,3.5
c-0.65,1.09-1.03,2.36-1.03,3.72v9.01c0.96,0.21,1.95,0.4,2.95,0.58v-8.46c0-1.46,0.4-2.82,1.1-3.99c1.29-2.15,4.3-4.05,6.96-4.17
c0.23,0.01,0.23,0.01,0.93-0.19H22.49z"/>
<linearGradient id="SVGID_00000084498622112026128730000018105989879674608570_" gradientUnits="userSpaceOnUse" x1="8.4805" y1="92.1823" x2="61.484" y2="92.1823">
<stop offset="0" style="stop-color:#9D9D9C"/>
<stop offset="1" style="stop-color:#DCDCDC"/>
</linearGradient>
<path style="fill:url(#SVGID_00000084498622112026128730000018105989879674608570_);" d="M56.37,87.56
c-0.03,0.01-0.05,0.01-0.07,0.02c-6.19,1.28-13.22,2.01-20.67,2.01c-7.79,0-15.12-0.79-21.51-2.19c-0.09-0.02-0.17-0.04-0.26-0.06
c-3.39,0-4.58,4.51-5.38,7.19c1.78,0.37,3.66,0.71,5.63,1.01c6.29,0.95,13.47,1.48,21.09,1.48c7.62,0,14.8-0.54,21.09-1.48
c1.81-0.27,3.54-0.58,5.19-0.91C60.73,92,59.8,88.09,56.37,87.56z"/>
<path class="st2" d="M57.84,94.74c-6.24,0.94-13.36,1.47-20.93,1.47c-7.56,0-14.68-0.53-20.93-1.47c-1.95-0.29-3.82-0.63-5.59-1
c0.58-1.97,1.38-4.92,3.11-6.33c-2.96,0.44-4.06,4.58-4.81,7.1c1.77,0.37,3.63,0.71,5.59,1c6.24,0.94,13.36,1.47,20.93,1.47
c7.56,0,14.68-0.53,20.93-1.47c1.79-0.27,3.51-0.57,5.15-0.91c-0.04-0.14-0.08-0.28-0.12-0.42C60.09,94.38,58.98,94.57,57.84,94.74
z"/>
<linearGradient id="SVGID_00000127754801669616370840000010867154228478575000_" gradientUnits="userSpaceOnUse" x1="9.7333" y1="91.1393" x2="18.4907" y2="91.1393">
<stop offset="0" style="stop-color:#FFFFFF"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.14"/>
</linearGradient>
<path style="fill:url(#SVGID_00000127754801669616370840000010867154228478575000_);" d="M14.9,87.88
c-0.08-0.02-0.16-0.03-0.23-0.05c-3.11,0-4.2,3.96-4.93,6.32c0.5,0.1,1.01,0.2,1.53,0.29c0.74-2.34,1.91-5.38,4.64-5.38
c0.01,0,0.03,0.01,0.04,0.01c0.84-0.29,1.69-0.46,2.55-0.52C17.26,88.35,16.06,88.13,14.9,87.88z"/>
<path class="st2" d="M50.99,88.63c0,0,4.25-0.66,5.3,6.91c-5.54,0.7-6.47,0.79-6.47,0.79s1.59-4.01-3.11-7.16
C49.89,88.87,50.99,88.63,50.99,88.63z"/>
<g>
<linearGradient id="SVGID_00000181063295999392218160000007788934088264374718_" gradientUnits="userSpaceOnUse" x1="22.1641" y1="61.1421" x2="49.4911" y2="61.1421">
<stop offset="0" style="stop-color:#ED7500"/>
<stop offset="1" style="stop-color:#CC4F00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000181063295999392218160000007788934088264374718_);" d="M31.68,54.96
c0.69,1.3,0.19,3.67-1.43,5.96c-1.61,2.3-4.34,4.53-8.09,5.55c0,0,0.84,0.21,2.98,0.42c2.13,0.21,5.55,0.42,10.7,0.42
c5.15,0,8.56-0.21,10.69-0.42c2.13-0.21,2.97-0.42,2.97-0.42c-3.75-1.03-6.47-3.25-8.09-5.55c-1.61-2.3-2.12-4.66-1.43-5.96h-4.15
H31.68z"/>
<linearGradient id="SVGID_00000008120796968701131110000004312617486987850386_" gradientUnits="userSpaceOnUse" x1="22.5926" y1="61.1421" x2="49.0627" y2="61.1421">
<stop offset="0" style="stop-color:#EF7D07"/>
<stop offset="1" style="stop-color:#D15400"/>
</linearGradient>
<path style="fill:url(#SVGID_00000008120796968701131110000004312617486987850386_);" d="M31.8,54.96c0.67,1.31,0.18,3.69-1.39,6
c-1.56,2.3-4.19,4.52-7.81,5.56c0.05,0,0.88,0.2,2.88,0.4c2.11,0.2,5.42,0.4,10.36,0.4c4.94,0,8.25-0.2,10.35-0.4
c2-0.2,2.82-0.39,2.87-0.4c-3.62-1.04-6.25-3.27-7.81-5.56c-1.54-2.26-2.04-4.58-1.41-5.89c0-0.04-1.29-0.08-1.28-0.11h-2.68H31.8
z"/>
<linearGradient id="SVGID_00000002366362093564560010000011910926189802451613_" gradientUnits="userSpaceOnUse" x1="23.0212" y1="61.1421" x2="48.6343" y2="61.1421">
<stop offset="0" style="stop-color:#F0850E"/>
<stop offset="1" style="stop-color:#D55800"/>
</linearGradient>
<path style="fill:url(#SVGID_00000002366362093564560010000011910926189802451613_);" d="M31.91,54.96
c0.65,1.32,0.18,3.71-1.35,6.04c-1.51,2.3-4.05,4.52-7.54,5.58c0.11,0.01,0.91,0.19,2.79,0.37c2.08,0.19,5.3,0.38,10.03,0.38
c4.73,0,7.94-0.19,10.02-0.38c1.87-0.18,2.67-0.36,2.78-0.37c-3.49-1.05-6.03-3.28-7.54-5.58c-1.48-2.22-1.96-4.5-1.39-5.83
c0-0.08-1.15-0.15-1.13-0.21h-2.64H31.91z"/>
<linearGradient id="SVGID_00000091015131071071762790000004290743477516576176_" gradientUnits="userSpaceOnUse" x1="23.4497" y1="61.1421" x2="48.2059" y2="61.1421">
<stop offset="0" style="stop-color:#F28D16"/>
<stop offset="1" style="stop-color:#DA5D00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000091015131071071762790000004290743477516576176_);" d="M32.03,54.96
c0.63,1.32,0.17,3.74-1.31,6.08c-1.46,2.3-3.91,4.52-7.27,5.59c0.16,0.01,0.95,0.18,2.69,0.34c2.06,0.18,5.17,0.35,9.69,0.35
c4.52,0,7.63-0.17,9.68-0.35c1.74-0.16,2.53-0.33,2.69-0.34c-3.36-1.07-5.81-3.3-7.27-5.59c-1.41-2.18-1.88-4.42-1.36-5.76
c0.01-0.12-1.02-0.23-0.98-0.32h-2.6H32.03z"/>
<linearGradient id="SVGID_00000137109643260720231950000012617232065261948833_" gradientUnits="userSpaceOnUse" x1="23.8782" y1="61.1421" x2="47.7776" y2="61.1421">
<stop offset="0" style="stop-color:#F4951D"/>
<stop offset="1" style="stop-color:#DF6200"/>
</linearGradient>
<path style="fill:url(#SVGID_00000137109643260720231950000012617232065261948833_);" d="M32.14,54.96
c0.61,1.33,0.17,3.76-1.27,6.12c-1.41,2.29-3.76,4.52-6.99,5.6c0.21,0.02,0.99,0.17,2.6,0.31c2.03,0.17,5.05,0.33,9.36,0.33
c4.31,0,7.32-0.16,9.35-0.33c1.61-0.15,2.38-0.3,2.59-0.31c-3.23-1.08-5.59-3.31-6.99-5.61c-1.34-2.14-1.81-4.34-1.34-5.69
c0.01-0.16-0.88-0.31-0.84-0.43h-2.56H32.14z"/>
<linearGradient id="SVGID_00000163039791403756138730000015702341797395527564_" gradientUnits="userSpaceOnUse" x1="24.3068" y1="61.1421" x2="47.3492" y2="61.1421">
<stop offset="0" style="stop-color:#F59D24"/>
<stop offset="1" style="stop-color:#E36600"/>
</linearGradient>
<path style="fill:url(#SVGID_00000163039791403756138730000015702341797395527564_);" d="M32.26,54.96
c0.59,1.34,0.16,3.78-1.23,6.16c-1.35,2.29-3.62,4.52-6.72,5.62c0.27,0.02,1.02,0.15,2.51,0.29c2.01,0.16,4.92,0.3,9.02,0.3
c4.1,0,7.01-0.15,9.01-0.3c1.48-0.13,2.23-0.27,2.5-0.29c-3.1-1.1-5.37-3.32-6.72-5.62c-1.27-2.1-1.73-4.26-1.32-5.62
c0.01-0.2-0.74-0.38-0.69-0.54H36.1H32.26z"/>
<linearGradient id="SVGID_00000101080031571403712250000014168285463862889607_" gradientUnits="userSpaceOnUse" x1="24.7353" y1="61.1421" x2="46.9208" y2="61.1421">
<stop offset="0" style="stop-color:#F7A42B"/>
<stop offset="1" style="stop-color:#E86B00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000101080031571403712250000014168285463862889607_);" d="M32.37,54.96
c0.57,1.35,0.15,3.81-1.19,6.19c-1.3,2.29-3.47,4.52-6.45,5.63c0.32,0.02,1.06,0.14,2.41,0.26c1.98,0.15,4.8,0.28,8.69,0.28
c3.89,0,6.7-0.13,8.68-0.28c1.35-0.12,2.09-0.23,2.4-0.26c-2.97-1.11-5.15-3.34-6.45-5.63c-1.2-2.07-1.65-4.19-1.3-5.55
c0.01-0.24-0.6-0.46-0.54-0.64h-2.48H32.37z"/>
<linearGradient id="SVGID_00000077322412723987347830000014572427326762094508_" gradientUnits="userSpaceOnUse" x1="25.1638" y1="61.1421" x2="46.4924" y2="61.1421">
<stop offset="0" style="stop-color:#F8AC32"/>
<stop offset="1" style="stop-color:#EC6F00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000077322412723987347830000014572427326762094508_);" d="M32.49,54.96
c0.56,1.36,0.15,3.83-1.15,6.23c-1.25,2.29-3.33,4.52-6.17,5.64c0.37,0.03,1.09,0.13,2.32,0.23c1.96,0.14,4.67,0.26,8.35,0.26
c3.68,0,6.39-0.12,8.34-0.26c1.23-0.1,1.94-0.2,2.31-0.23c-2.85-1.13-4.92-3.35-6.17-5.65c-1.13-2.03-1.57-4.11-1.28-5.48
c0.01-0.28-0.46-0.54-0.39-0.75h-2.44H32.49z"/>
<linearGradient id="SVGID_00000122678638939072532680000003129708452409832628_" gradientUnits="userSpaceOnUse" x1="25.5924" y1="61.1421" x2="46.0641" y2="61.1421">
<stop offset="0" style="stop-color:#FAB439"/>
<stop offset="1" style="stop-color:#F17400"/>
</linearGradient>
<path style="fill:url(#SVGID_00000122678638939072532680000003129708452409832628_);" d="M32.6,54.96
c0.54,1.37,0.14,3.86-1.11,6.27c-1.2,2.29-3.18,4.52-5.9,5.66c0.43,0.03,1.13,0.12,2.23,0.2c1.93,0.13,4.55,0.23,8.02,0.23
c3.47,0,6.08-0.11,8.01-0.23c1.1-0.08,1.79-0.17,2.22-0.2c-2.72-1.14-4.7-3.37-5.9-5.66c-1.06-1.99-1.49-4.03-1.26-5.41
c0.01-0.33-0.33-0.62-0.24-0.86h-2.4H32.6z"/>
<linearGradient id="SVGID_00000178903087516865922640000003286967107968021654_" gradientUnits="userSpaceOnUse" x1="26.0209" y1="61.1421" x2="45.6357" y2="61.1421">
<stop offset="0" style="stop-color:#FCBC41"/>
<stop offset="1" style="stop-color:#F67900"/>
</linearGradient>
<path style="fill:url(#SVGID_00000178903087516865922640000003286967107968021654_);" d="M32.72,54.96
c0.52,1.38,0.14,3.88-1.07,6.31c-1.15,2.29-3.04,4.52-5.63,5.67c0.48,0.03,1.16,0.11,2.13,0.17c1.91,0.12,4.42,0.21,7.68,0.21
c3.26,0,5.77-0.09,7.67-0.21c0.97-0.07,1.65-0.14,2.12-0.17c-2.59-1.16-4.48-3.38-5.63-5.67c-0.99-1.95-1.41-3.95-1.24-5.35
c0.02-0.37-0.19-0.69-0.09-0.96h-2.36H32.72z"/>
<linearGradient id="SVGID_00000178190174585502043420000014600969109032523140_" gradientUnits="userSpaceOnUse" x1="26.4494" y1="61.1421" x2="45.2073" y2="61.1421">
<stop offset="0" style="stop-color:#FDC448"/>
<stop offset="1" style="stop-color:#FA7D00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000178190174585502043420000014600969109032523140_);" d="M32.83,54.96
c0.5,1.38,0.13,3.9-1.03,6.35c-1.09,2.29-2.9,4.52-5.35,5.68c0.53,0.04,1.2,0.09,2.04,0.15c1.89,0.1,4.3,0.18,7.35,0.18
c3.05,0,5.46-0.08,7.34-0.18c0.84-0.05,1.5-0.11,2.03-0.15c-2.46-1.17-4.26-3.39-5.35-5.69c-0.92-1.91-1.34-3.87-1.21-5.28
c0.02-0.41-0.05-0.77,0.05-1.07h-2.32H32.83z"/>
<linearGradient id="SVGID_00000006678629298623866930000000135736283242562197_" gradientUnits="userSpaceOnUse" x1="26.878" y1="61.1421" x2="44.7789" y2="61.1421">
<stop offset="0" style="stop-color:#FFCC4F"/>
<stop offset="1" style="stop-color:#FF8200"/>
</linearGradient>
<path style="fill:url(#SVGID_00000006678629298623866930000000135736283242562197_);" d="M31.96,61.35
c-1.04,2.29-2.75,4.51-5.08,5.7c2.11,0.15,5.03,0.28,8.96,0.28c3.92,0,6.84-0.12,8.94-0.28c-2.33-1.18-4.04-3.41-5.08-5.7
c-1.12-2.46-1.47-5-0.99-6.39h-5.76C33.43,56.35,33.08,58.89,31.96,61.35z"/>
</g>
<linearGradient id="SVGID_00000036225893231842756090000010454877884005275782_" gradientUnits="userSpaceOnUse" x1="26.2154" y1="65.7286" x2="43.9264" y2="59.113">
<stop offset="0" style="stop-color:#FFFFAB"/>
<stop offset="0.5281" style="stop-color:#FF9500"/>
<stop offset="0.8596" style="stop-color:#D64700"/>
</linearGradient>
<path style="fill:url(#SVGID_00000036225893231842756090000010454877884005275782_);" d="M31.96,61.35
c-1.04,2.29-2.75,4.51-5.08,5.7c2.11,0.15,5.03,0.28,8.96,0.28c3.92,0,6.84-0.12,8.94-0.28c-2.33-1.18-4.04-3.41-5.08-5.7
c-1.12-2.46-1.47-5-0.99-6.39h-5.76C33.43,56.35,33.08,58.89,31.96,61.35z"/>
<linearGradient id="SVGID_00000121976230930003436020000006623373471004863649_" gradientUnits="userSpaceOnUse" x1="-133.5681" y1="-230.0476" x2="-121.2232" y2="-230.0476" gradientTransform="matrix(0 1 -1 0 -199.0357 188.5287)">
<stop offset="0" style="stop-color:#FFA800"/>
<stop offset="1" style="stop-color:#FFFFAB"/>
</linearGradient>
<path style="fill:url(#SVGID_00000121976230930003436020000006623373471004863649_);" d="M26.7,67.03
c1.65,0.12,3.83,0.23,6.62,0.27c1.86-3.24,2.4-9.52,1.73-12.34h-2.13C33.48,58.01,31.29,64.44,26.7,67.03z"/>
<linearGradient id="SVGID_00000000211588207233668150000011075210524986196901_" gradientUnits="userSpaceOnUse" x1="22.1641" y1="66.7692" x2="49.4911" y2="66.7692">
<stop offset="0" style="stop-color:#F77D00"/>
<stop offset="0.1629" style="stop-color:#FFED2A"/>
<stop offset="0.2753" style="stop-color:#FFFFE3"/>
<stop offset="0.3989" style="stop-color:#FFED2A"/>
<stop offset="0.5618" style="stop-color:#FFB300"/>
<stop offset="0.7978" style="stop-color:#EB5200"/>
<stop offset="0.8708" style="stop-color:#F26B00"/>
<stop offset="1" style="stop-color:#F26B00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000000211588207233668150000011075210524986196901_);" d="M35.84,66.91
c-7.46,0-11.28-0.45-12.83-0.69c-0.28,0.09-0.56,0.18-0.85,0.26c0,0,0.84,0.21,2.98,0.42c2.13,0.21,5.55,0.42,10.7,0.42
c5.15,0,8.56-0.21,10.69-0.42c2.13-0.21,2.97-0.42,2.97-0.42c-0.29-0.08-0.57-0.17-0.84-0.26C47.11,66.46,43.29,66.91,35.84,66.91z
"/>
<linearGradient id="SVGID_00000144312871233035138850000016602583414581382805_" gradientUnits="userSpaceOnUse" x1="22.1641" y1="68.146" x2="49.4911" y2="68.146">
<stop offset="0" style="stop-color:#E85900"/>
<stop offset="0.1629" style="stop-color:#FFCF2A"/>
<stop offset="0.2753" style="stop-color:#FFFF42"/>
<stop offset="0.3989" style="stop-color:#FFCF2A"/>
<stop offset="0.5618" style="stop-color:#FF9500"/>
<stop offset="0.7978" style="stop-color:#D44000"/>
<stop offset="0.8708" style="stop-color:#EB5700"/>
<stop offset="1" style="stop-color:#EB5700"/>
</linearGradient>
<path style="fill:url(#SVGID_00000144312871233035138850000016602583414581382805_);" d="M22.16,68.86c0,0,3.38,0.96,13.67,0.96
c10.29,0,13.65-0.96,13.65-0.96v-2.39c0,0-3.36,0.85-13.65,0.85c-10.29,0-13.67-0.85-13.67-0.85V68.86z"/>
<g>
<linearGradient id="SVGID_00000098204873763579413070000016572615846317922219_" gradientUnits="userSpaceOnUse" x1="31.6581" y1="49.9458" x2="39.9977" y2="49.9458">
<stop offset="0" style="stop-color:#ED7500"/>
<stop offset="1" style="stop-color:#CC4F00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000098204873763579413070000016572615846317922219_);" d="M35.89,54.11
c-1.63,0-2.69-0.17-3.34-0.34c-0.65-0.17-0.89-0.34-0.89-0.34c1.62-2.48,1.89-4.39,1.74-5.68c-0.14-1.29-0.69-1.96-0.69-1.96h3.12
h3.12c0,0-0.55,0.67-0.69,1.96c-0.14,1.29,0.12,3.2,1.74,5.68c0,0-0.21,0.17-0.83,0.34C38.55,53.94,37.52,54.11,35.89,54.11z"/>
<linearGradient id="SVGID_00000160158368277288635140000005950858593940766108_" gradientUnits="userSpaceOnUse" x1="31.7772" y1="49.9458" x2="39.8791" y2="49.9458">
<stop offset="0" style="stop-color:#EF7D07"/>
<stop offset="1" style="stop-color:#D15400"/>
</linearGradient>
<path style="fill:url(#SVGID_00000160158368277288635140000005950858593940766108_);" d="M38.19,47.76
c-0.14,1.3,0.12,3.22,1.69,5.71c-0.02,0-0.22,0.16-0.81,0.32c-0.61,0.16-1.62,0.33-3.19,0.33c-1.57,0-2.6-0.16-3.25-0.33
c-0.61-0.16-0.85-0.32-0.86-0.32c1.58-2.49,1.83-4.41,1.69-5.71c-0.14-1.3-0.67-1.98-0.67-1.98h3.03h3.03
C38.86,45.78,38.33,46.46,38.19,47.76z"/>
<linearGradient id="SVGID_00000070099228997641935220000017931935686388380327_" gradientUnits="userSpaceOnUse" x1="31.8964" y1="49.9458" x2="39.7604" y2="49.9458">
<stop offset="0" style="stop-color:#F0850E"/>
<stop offset="1" style="stop-color:#D55800"/>
</linearGradient>
<path style="fill:url(#SVGID_00000070099228997641935220000017931935686388380327_);" d="M38.12,47.77
c-0.14,1.3,0.11,3.24,1.64,5.74c-0.03,0.01-0.24,0.15-0.78,0.3c-0.61,0.16-1.59,0.31-3.09,0.31c-1.51,0-2.51-0.15-3.15-0.31
c-0.57-0.15-0.81-0.29-0.84-0.3c1.53-2.5,1.78-4.43,1.64-5.73c-0.14-1.31-0.65-1.99-0.65-1.99h2.95h2.95
C38.77,45.78,38.25,46.46,38.12,47.77z"/>
<linearGradient id="SVGID_00000128471639160065635680000010157220321299998345_" gradientUnits="userSpaceOnUse" x1="32.0156" y1="49.9458" x2="39.6418" y2="49.9458">
<stop offset="0" style="stop-color:#F28D16"/>
<stop offset="1" style="stop-color:#DA5D00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000128471639160065635680000010157220321299998345_);" d="M38.05,47.78
c-0.13,1.31,0.11,3.25,1.59,5.77c-0.05,0.01-0.25,0.14-0.76,0.28c-0.61,0.15-1.55,0.29-3,0.29c-1.45,0-2.43-0.14-3.06-0.29
c-0.53-0.13-0.76-0.27-0.81-0.28c1.48-2.51,1.72-4.45,1.59-5.76c-0.13-1.31-0.63-2-0.63-2h2.86h2.86
C38.68,45.78,38.18,46.46,38.05,47.78z"/>
<linearGradient id="SVGID_00000047742216760864266600000005070156177789700009_" gradientUnits="userSpaceOnUse" x1="32.1348" y1="49.9458" x2="39.5231" y2="49.9458">
<stop offset="0" style="stop-color:#F4951D"/>
<stop offset="1" style="stop-color:#DF6200"/>
</linearGradient>
<path style="fill:url(#SVGID_00000047742216760864266600000005070156177789700009_);" d="M37.98,47.79
c-0.13,1.32,0.11,3.27,1.54,5.8c-0.06,0.01-0.26,0.13-0.73,0.25c-0.6,0.14-1.52,0.27-2.9,0.27c-1.39,0-2.34-0.13-2.97-0.27
c-0.49-0.12-0.72-0.24-0.79-0.26c1.43-2.53,1.66-4.47,1.54-5.79c-0.13-1.32-0.61-2.01-0.61-2.01h2.77h2.77
C38.6,45.78,38.11,46.47,37.98,47.79z"/>
<linearGradient id="SVGID_00000124849449177418477420000010062023907073794717_" gradientUnits="userSpaceOnUse" x1="32.2539" y1="49.9458" x2="39.4045" y2="49.9458">
<stop offset="0" style="stop-color:#F59D24"/>
<stop offset="1" style="stop-color:#E36600"/>
</linearGradient>
<path style="fill:url(#SVGID_00000124849449177418477420000010062023907073794717_);" d="M37.91,47.8
c-0.12,1.33,0.1,3.29,1.49,5.83c-0.08,0.02-0.28,0.12-0.71,0.23c-0.6,0.13-1.49,0.25-2.81,0.25c-1.33,0-2.25-0.12-2.87-0.25
c-0.46-0.11-0.68-0.22-0.76-0.24c1.39-2.54,1.61-4.5,1.49-5.82c-0.12-1.33-0.6-2.02-0.6-2.02h2.68h2.68
C38.51,45.78,38.04,46.47,37.91,47.8z"/>
<linearGradient id="SVGID_00000173129838225489977290000005923459864454834620_" gradientUnits="userSpaceOnUse" x1="32.3731" y1="49.9458" x2="39.2858" y2="49.9458">
<stop offset="0" style="stop-color:#F7A42B"/>
<stop offset="1" style="stop-color:#E86B00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000173129838225489977290000005923459864454834620_);" d="M37.85,47.81
c-0.12,1.33,0.1,3.3,1.44,5.86c-0.09,0.02-0.29,0.11-0.69,0.21c-0.59,0.12-1.46,0.23-2.71,0.23c-1.27,0-2.16-0.11-2.78-0.24
c-0.42-0.1-0.64-0.19-0.73-0.21c1.34-2.55,1.55-4.52,1.44-5.85c-0.12-1.34-0.58-2.03-0.58-2.03h2.59h2.59
C38.42,45.78,37.97,46.48,37.85,47.81z"/>
<linearGradient id="SVGID_00000027591637666313102680000012962244703194219679_" gradientUnits="userSpaceOnUse" x1="32.4923" y1="49.9458" x2="39.1672" y2="49.9458">
<stop offset="0" style="stop-color:#F8AC32"/>
<stop offset="1" style="stop-color:#EC6F00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000027591637666313102680000012962244703194219679_);" d="M37.78,47.82
c-0.11,1.34,0.09,3.32,1.39,5.89c-0.11,0.02-0.3,0.11-0.66,0.19c-0.59,0.11-1.43,0.21-2.62,0.21c-1.2,0-2.07-0.1-2.69-0.22
c-0.38-0.08-0.59-0.17-0.71-0.19c1.29-2.56,1.5-4.54,1.39-5.88c-0.12-1.34-0.56-2.04-0.56-2.04h2.51h2.51
C38.33,45.78,37.89,46.48,37.78,47.82z"/>
<linearGradient id="SVGID_00000114061941307629173430000013127208701825653648_" gradientUnits="userSpaceOnUse" x1="32.6115" y1="49.9458" x2="39.0486" y2="49.9458">
<stop offset="0" style="stop-color:#FAB439"/>
<stop offset="1" style="stop-color:#F17400"/>
</linearGradient>
<path style="fill:url(#SVGID_00000114061941307629173430000013127208701825653648_);" d="M37.71,47.84
c-0.11,1.35,0.09,3.34,1.34,5.92c-0.12,0.02-0.32,0.1-0.64,0.16c-0.59,0.11-1.4,0.19-2.53,0.19c-1.14,0-1.98-0.09-2.59-0.2
c-0.34-0.07-0.55-0.14-0.68-0.17c1.24-2.57,1.44-4.56,1.33-5.91c-0.11-1.35-0.54-2.06-0.54-2.06h2.42h2.42
C38.25,45.78,37.82,46.48,37.71,47.84z"/>
<linearGradient id="SVGID_00000040550518552225794840000014737566964659752322_" gradientUnits="userSpaceOnUse" x1="32.7306" y1="49.9458" x2="38.9299" y2="49.9458">
<stop offset="0" style="stop-color:#FCBC41"/>
<stop offset="1" style="stop-color:#F67900"/>
</linearGradient>
<path style="fill:url(#SVGID_00000040550518552225794840000014737566964659752322_);" d="M37.64,47.85
c-0.11,1.35,0.09,3.36,1.29,5.95c-0.14,0.03-0.33,0.09-0.61,0.14c-0.58,0.1-1.37,0.17-2.43,0.17c-1.08,0-1.89-0.08-2.5-0.18
c-0.3-0.06-0.51-0.12-0.66-0.15c1.2-2.59,1.39-4.58,1.28-5.93c-0.11-1.36-0.52-2.07-0.52-2.07h2.33h2.33
C38.16,45.78,37.75,46.49,37.64,47.85z"/>
<linearGradient id="SVGID_00000080893536996010050220000017592812337589151884_" gradientUnits="userSpaceOnUse" x1="32.8498" y1="49.9458" x2="38.8113" y2="49.9458">
<stop offset="0" style="stop-color:#FDC448"/>
<stop offset="1" style="stop-color:#FA7D00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000080893536996010050220000017592812337589151884_);" d="M37.57,47.86
c-0.1,1.36,0.08,3.37,1.24,5.98c-0.15,0.03-0.34,0.08-0.59,0.12c-0.58,0.09-1.34,0.16-2.34,0.16c-1.02,0-1.81-0.07-2.41-0.16
c-0.26-0.04-0.47-0.09-0.63-0.13c1.15-2.6,1.33-4.6,1.23-5.96c-0.1-1.37-0.5-2.08-0.5-2.08h2.24h2.24
C38.07,45.78,37.68,46.49,37.57,47.86z"/>
<linearGradient id="SVGID_00000005984543583348810830000013243747602953946753_" gradientUnits="userSpaceOnUse" x1="32.969" y1="49.9458" x2="38.6926" y2="49.9458">
<stop offset="0" style="stop-color:#FFCC4F"/>
<stop offset="1" style="stop-color:#FF8200"/>
</linearGradient>
<path style="fill:url(#SVGID_00000005984543583348810830000013243747602953946753_);" d="M32.97,53.86
c0.66,0.13,1.6,0.25,2.92,0.25c1.27,0,2.17-0.11,2.81-0.23c-1.11-2.62-1.29-4.64-1.19-6.01c0.1-1.38,0.48-2.09,0.48-2.09h-4.31
c0,0,0.38,0.72,0.48,2.09C34.25,49.24,34.07,51.25,32.97,53.86z"/>
</g>
<linearGradient id="SVGID_00000083804886110153056480000009115097169134864554_" gradientUnits="userSpaceOnUse" x1="32.8596" y1="49.9458" x2="38.8012" y2="49.9458">
<stop offset="0" style="stop-color:#FFFFAB"/>
<stop offset="0.4775" style="stop-color:#FF9500"/>
<stop offset="0.9045" style="stop-color:#D64700"/>
</linearGradient>
<path style="fill:url(#SVGID_00000083804886110153056480000009115097169134864554_);" d="M32.86,53.84
c0.66,0.14,1.63,0.27,3.03,0.27c1.35,0,2.28-0.12,2.91-0.26c-1.84-4.4-1.17-7.17-0.85-8.07H33.7
C34.03,46.68,34.69,49.45,32.86,53.84z"/>
<linearGradient id="SVGID_00000124154845253305876720000012922350823727878303_" gradientUnits="userSpaceOnUse" x1="-91.1017" y1="-261.9883" x2="-82.8052" y2="-261.9883" gradientTransform="matrix(0 1 -1 0 -227.7857 136.8822)">
<stop offset="0" style="stop-color:#FFA800"/>
<stop offset="1" style="stop-color:#FFFFAB"/>
</linearGradient>
<path style="fill:url(#SVGID_00000124154845253305876720000012922350823727878303_);" d="M32.79,53.83
c0.46,0.11,1.09,0.2,1.91,0.25c1-3.76,1.01-6.55,0.81-8.3h-1.87C33.97,46.63,34.71,49.39,32.79,53.83z"/>
<linearGradient id="SVGID_00000005242110550455074670000010739286260172184218_" gradientUnits="userSpaceOnUse" x1="30.8547" y1="54.5345" x2="40.8008" y2="54.5345">
<stop offset="0" style="stop-color:#E85900"/>
<stop offset="0.1629" style="stop-color:#FFCF2A"/>
<stop offset="0.2753" style="stop-color:#FFFF42"/>
<stop offset="0.3989" style="stop-color:#FFCF2A"/>
<stop offset="0.5618" style="stop-color:#FF9500"/>
<stop offset="0.7978" style="stop-color:#D44000"/>
<stop offset="0.8708" style="stop-color:#EB5700"/>
<stop offset="1" style="stop-color:#EB5700"/>
</linearGradient>
<path style="fill:url(#SVGID_00000005242110550455074670000010739286260172184218_);" d="M35.83,55.65c3.02,0,4.97-0.33,4.97-1.27
c0-0.83-0.81-0.96-0.81-0.96c-0.92,0.45-3.2,0.45-4.17,0.45c-0.97,0-3.25-0.01-4.17-0.45c0,0-0.81,0.13-0.81,0.96
C30.85,55.32,32.8,55.65,35.83,55.65z"/>
<linearGradient id="SVGID_00000033343789702081874210000015610178592025903016_" gradientUnits="userSpaceOnUse" x1="31.1776" y1="53.8725" x2="40.4774" y2="53.8725">
<stop offset="0" style="stop-color:#F77D00"/>
<stop offset="0.1629" style="stop-color:#FFED2A"/>
<stop offset="0.2753" style="stop-color:#FFFFE3"/>
<stop offset="0.3989" style="stop-color:#FFED2A"/>
<stop offset="0.5618" style="stop-color:#FFB300"/>
<stop offset="0.7978" style="stop-color:#EB5200"/>
<stop offset="0.8708" style="stop-color:#F26B00"/>
<stop offset="1" style="stop-color:#F26B00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000033343789702081874210000015610178592025903016_);" d="M35.83,54.33c2.29,0,3.96-0.19,4.65-0.68
C40.25,53.46,40,53.42,40,53.42c-0.92,0.45-3.2,0.45-4.17,0.45c-0.97,0-3.25-0.01-4.17-0.45c0,0-0.26,0.04-0.48,0.23
C31.87,54.14,33.54,54.33,35.83,54.33z"/>
<g>
<linearGradient id="SVGID_00000063602806503991438220000007175826465842087835_" gradientUnits="userSpaceOnUse" x1="17.1523" y1="24.891" x2="54.5029" y2="24.891">
<stop offset="0" style="stop-color:#E8A800"/>
<stop offset="1" style="stop-color:#FFE91E"/>
</linearGradient>
<path style="fill:url(#SVGID_00000063602806503991438220000007175826465842087835_);" d="M54.45,5H17.2c0,0-0.16,2.27,0.1,6.15
c0.26,3.88,0.95,9.38,2.64,15.84c1.32,5.05,3.87,9.49,6.79,12.68c2.93,3.18,6.24,5.1,9.09,5.1c2.85,0,6.16-1.92,9.09-5.1
c2.93-3.18,5.47-7.63,6.79-12.68c1.69-6.46,2.38-11.96,2.64-15.84C54.61,7.27,54.45,5,54.45,5z"/>
<linearGradient id="SVGID_00000124129376167709040630000000151791003539898763_" gradientUnits="userSpaceOnUse" x1="17.5767" y1="24.891" x2="54.0785" y2="24.891">
<stop offset="0" style="stop-color:#EAAB07"/>
<stop offset="1" style="stop-color:#FFE61B"/>
</linearGradient>
<path style="fill:url(#SVGID_00000124129376167709040630000000151791003539898763_);" d="M53.93,11.16C54.19,7.27,54.03,5,54.03,5
H17.62c0,0-0.16,2.27,0.1,6.15c0.26,3.88,0.93,9.38,2.58,15.84c1.29,5.05,3.78,9.49,6.64,12.68c2.86,3.18,6.09,5.1,8.88,5.1
c2.79,0,6.02-1.92,8.88-5.1c2.86-3.18,5.35-7.63,6.64-12.68C53,20.54,53.67,15.04,53.93,11.16z"/>
<linearGradient id="SVGID_00000060717942509739588190000011623524684304205470_" gradientUnits="userSpaceOnUse" x1="18.0012" y1="24.891" x2="53.6541" y2="24.891">
<stop offset="0" style="stop-color:#ECAF0E"/>
<stop offset="1" style="stop-color:#FFE419"/>
</linearGradient>
<path style="fill:url(#SVGID_00000060717942509739588190000011623524684304205470_);" d="M53.51,11.16C53.76,7.27,53.61,5,53.61,5
H18.05c0,0-0.15,2.27,0.1,6.15c0.25,3.88,0.91,9.38,2.52,15.84c1.26,5.05,3.69,9.49,6.48,12.68c2.79,3.18,5.95,5.1,8.68,5.1
c2.72,0,5.88-1.92,8.68-5.1c2.79-3.18,5.22-7.63,6.49-12.68C52.61,20.54,53.26,15.04,53.51,11.16z"/>
<linearGradient id="SVGID_00000038405664791957748560000005757400104506502811_" gradientUnits="userSpaceOnUse" x1="18.4256" y1="24.891" x2="53.2297" y2="24.891">
<stop offset="0" style="stop-color:#EEB216"/>
<stop offset="1" style="stop-color:#FFE116"/>
</linearGradient>
<path style="fill:url(#SVGID_00000038405664791957748560000005757400104506502811_);" d="M53.09,11.16C53.33,7.27,53.18,5,53.18,5
H18.47c0,0-0.15,2.27,0.1,6.15c0.24,3.88,0.88,9.38,2.46,15.84c1.23,5.05,3.6,9.49,6.33,12.68c2.73,3.18,5.81,5.1,8.47,5.1
c2.66,0,5.74-1.92,8.47-5.1c2.73-3.18,5.1-7.63,6.33-12.68C52.21,20.54,52.84,15.04,53.09,11.16z"/>
<linearGradient id="SVGID_00000183208547504485256720000002449631078252313252_" gradientUnits="userSpaceOnUse" x1="18.85" y1="24.891" x2="52.8053" y2="24.891">
<stop offset="0" style="stop-color:#F0B51D"/>
<stop offset="1" style="stop-color:#FFDE13"/>
</linearGradient>
<path style="fill:url(#SVGID_00000183208547504485256720000002449631078252313252_);" d="M52.67,11.16C52.91,7.27,52.76,5,52.76,5
H18.89c0,0-0.15,2.27,0.09,6.15c0.24,3.88,0.86,9.38,2.4,15.84c1.2,5.05,3.51,9.49,6.18,12.68c2.66,3.18,5.67,5.1,8.26,5.1
c2.59,0,5.6-1.92,8.26-5.1c2.66-3.18,4.97-7.63,6.18-12.68C51.81,20.54,52.43,15.04,52.67,11.16z"/>
<linearGradient id="SVGID_00000163771464606847939930000004076548965157964428_" gradientUnits="userSpaceOnUse" x1="19.2744" y1="24.891" x2="52.3809" y2="24.891">
<stop offset="0" style="stop-color:#F2B824"/>
<stop offset="1" style="stop-color:#FFDB10"/>
</linearGradient>
<path style="fill:url(#SVGID_00000163771464606847939930000004076548965157964428_);" d="M52.25,11.16C52.48,7.27,52.34,5,52.34,5
H19.32c0,0-0.14,2.27,0.09,6.15c0.23,3.88,0.84,9.38,2.34,15.84c1.17,5.05,3.43,9.49,6.02,12.68c2.59,3.18,5.53,5.1,8.06,5.1
c2.53,0,5.46-1.92,8.06-5.1c2.59-3.18,4.85-7.63,6.02-12.68C51.41,20.54,52.01,15.04,52.25,11.16z"/>
<linearGradient id="SVGID_00000066498612754768613600000015574458546549524913_" gradientUnits="userSpaceOnUse" x1="19.6988" y1="24.891" x2="51.9565" y2="24.891">
<stop offset="0" style="stop-color:#F5BC2B"/>
<stop offset="1" style="stop-color:#FFD90E"/>
</linearGradient>
<path style="fill:url(#SVGID_00000066498612754768613600000015574458546549524913_);" d="M51.83,11.16C52.05,7.27,51.91,5,51.91,5
H19.74c0,0-0.14,2.27,0.09,6.15c0.23,3.88,0.82,9.38,2.28,15.84c1.14,5.05,3.34,9.49,5.87,12.68c2.53,3.18,5.39,5.1,7.85,5.1
c2.46,0,5.32-1.92,7.85-5.1c2.53-3.18,4.73-7.63,5.87-12.68C51.01,20.54,51.6,15.04,51.83,11.16z"/>
<linearGradient id="SVGID_00000070831639230614398330000000802497047650819465_" gradientUnits="userSpaceOnUse" x1="20.1232" y1="24.891" x2="51.5321" y2="24.891">
<stop offset="0" style="stop-color:#F7BF32"/>
<stop offset="1" style="stop-color:#FFD60B"/>
</linearGradient>
<path style="fill:url(#SVGID_00000070831639230614398330000000802497047650819465_);" d="M51.41,11.16C51.63,7.27,51.49,5,51.49,5
H20.16c0,0-0.13,2.27,0.09,6.15c0.22,3.88,0.8,9.38,2.22,15.84c1.11,5.05,3.25,9.49,5.71,12.68c2.46,3.18,5.24,5.1,7.64,5.1
c2.4,0,5.18-1.92,7.65-5.1c2.46-3.18,4.6-7.63,5.71-12.68C50.61,20.54,51.18,15.04,51.41,11.16z"/>
<linearGradient id="SVGID_00000181783744567604096870000008825500748727152770_" gradientUnits="userSpaceOnUse" x1="20.5476" y1="24.891" x2="51.1077" y2="24.891">
<stop offset="0" style="stop-color:#F9C239"/>
<stop offset="1" style="stop-color:#FFD308"/>
</linearGradient>
<path style="fill:url(#SVGID_00000181783744567604096870000008825500748727152770_);" d="M50.98,11.16C51.2,7.27,51.07,5,51.07,5
H20.59c0,0-0.13,2.27,0.08,6.15c0.21,3.88,0.78,9.38,2.16,15.84c1.08,5.05,3.16,9.49,5.56,12.68c2.39,3.18,5.1,5.1,7.44,5.1
c2.34,0,5.04-1.92,7.44-5.1c2.39-3.18,4.48-7.63,5.56-12.68C50.21,20.54,50.77,15.04,50.98,11.16z"/>
<linearGradient id="SVGID_00000145045760014527290180000012369874175573940391_" gradientUnits="userSpaceOnUse" x1="20.972" y1="24.891" x2="50.6833" y2="24.891">
<stop offset="0" style="stop-color:#FBC541"/>
<stop offset="1" style="stop-color:#FFD005"/>
</linearGradient>
<path style="fill:url(#SVGID_00000145045760014527290180000012369874175573940391_);" d="M50.56,11.16C50.77,7.27,50.64,5,50.64,5
H21.01c0,0-0.13,2.27,0.08,6.15c0.21,3.88,0.75,9.38,2.1,15.84c1.05,5.05,3.08,9.49,5.4,12.68c2.33,3.18,4.96,5.1,7.23,5.1
c2.27,0,4.9-1.92,7.23-5.1c2.33-3.18,4.35-7.63,5.4-12.68C49.81,20.54,50.35,15.04,50.56,11.16z"/>
<linearGradient id="SVGID_00000162327534560281055590000017847054866423048089_" gradientUnits="userSpaceOnUse" x1="21.3964" y1="24.891" x2="50.2589" y2="24.891">
<stop offset="0" style="stop-color:#FDC948"/>
<stop offset="1" style="stop-color:#FFCE03"/>
</linearGradient>
<path style="fill:url(#SVGID_00000162327534560281055590000017847054866423048089_);" d="M50.14,11.16C50.35,7.27,50.22,5,50.22,5
H21.43c0,0-0.12,2.27,0.08,6.15c0.2,3.88,0.73,9.38,2.04,15.84c1.02,5.05,2.99,9.49,5.25,12.68c2.26,3.18,4.82,5.1,7.02,5.1
c2.21,0,4.76-1.92,7.03-5.1c2.26-3.18,4.23-7.63,5.25-12.68C49.41,20.54,49.94,15.04,50.14,11.16z"/>
<linearGradient id="SVGID_00000150083105347558576650000018443367014069233799_" gradientUnits="userSpaceOnUse" x1="21.8208" y1="24.891" x2="49.8345" y2="24.891">
<stop offset="0" style="stop-color:#FFCC4F"/>
<stop offset="1" style="stop-color:#FFCB00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000150083105347558576650000018443367014069233799_);" d="M49.8,5H21.86c0,0-0.12,2.27,0.08,6.15
c0.2,3.88,0.71,9.38,1.98,15.84c0.99,5.05,2.9,9.49,5.09,12.68c2.19,3.18,4.68,5.1,6.82,5.1c2.14,0,4.62-1.92,6.82-5.1
c2.2-3.18,4.1-7.63,5.1-12.68c1.27-6.46,1.78-11.96,1.98-15.84C49.92,7.27,49.8,5,49.8,5z"/>
</g>
<linearGradient id="SVGID_00000085964180921132758710000004219404947533100979_" gradientUnits="userSpaceOnUse" x1="22.3553" y1="24.891" x2="49.3002" y2="24.891">
<stop offset="0" style="stop-color:#FFFFAB"/>
<stop offset="0.5225" style="stop-color:#FF9500"/>
<stop offset="1" style="stop-color:#FEEC32"/>
</linearGradient>
<path style="fill:url(#SVGID_00000085964180921132758710000004219404947533100979_);" d="M49.27,5H22.39c0,0-0.12,2.27,0.07,6.15
c0.19,3.88,0.68,9.38,1.91,15.84c0.95,5.05,2.79,9.49,4.9,12.68c2.11,3.18,4.5,5.1,6.56,5.1c2.06,0,4.45-1.92,6.56-5.1
c2.11-3.18,3.95-7.63,4.9-12.68c1.22-6.46,1.72-11.96,1.91-15.84C49.38,7.27,49.27,5,49.27,5z"/>
<linearGradient id="SVGID_00000082352492282461091380000005161547684103633840_" gradientUnits="userSpaceOnUse" x1="28.9515" y1="5.0046" x2="28.9515" y2="44.9015">
<stop offset="0" style="stop-color:#FFFFAB"/>
<stop offset="1" style="stop-color:#FFBD00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000082352492282461091380000005161547684103633840_);" d="M30.53,27C29.4,14.08,29.62,5,29.62,5
h-7.51c0,0-0.47,9.07,2.02,21.99c1.95,10.1,7.49,17.78,11.69,17.78h0C33.92,44.78,31.41,37.09,30.53,27z"/>
<linearGradient id="SVGID_00000064319685371186896550000008565574644812146581_" gradientUnits="userSpaceOnUse" x1="17.2043" y1="5.0044" x2="54.4504" y2="5.0044">
<stop offset="0" style="stop-color:#FFFFAB"/>
<stop offset="1" style="stop-color:#FF9500"/>
</linearGradient>
<path style="fill:url(#SVGID_00000064319685371186896550000008565574644812146581_);" d="M54.45,5c0,0.57-8.34,1.03-18.62,1.03
C25.54,6.04,17.2,5.57,17.2,5s8.34-1.03,18.62-1.03C46.11,3.97,54.45,4.43,54.45,5z"/>
<linearGradient id="SVGID_00000011015805729693272620000018325790350207691408_" gradientUnits="userSpaceOnUse" x1="18.7096" y1="4.853" x2="52.9453" y2="4.853">
<stop offset="5.617980e-03" style="stop-color:#CF3800"/>
<stop offset="0.573" style="stop-color:#FF9500"/>
<stop offset="1" style="stop-color:#FFFFAB"/>
</linearGradient>
<path style="fill:url(#SVGID_00000011015805729693272620000018325790350207691408_);" d="M18.71,4.9
c2.47,0.31,8.46,0.53,17.12,0.53S50.48,5.22,52.95,4.9c-2.47-0.31-8.46-0.63-17.12-0.63S21.18,4.59,18.71,4.9z"/>
<linearGradient id="SVGID_00000125565681220656987410000005679657766870032784_" gradientUnits="userSpaceOnUse" x1="31.0871" y1="44.9013" x2="40.568" y2="44.9013">
<stop offset="0" style="stop-color:#E85900"/>
<stop offset="0.1629" style="stop-color:#FFCF2A"/>
<stop offset="0.2753" style="stop-color:#FFFF42"/>
<stop offset="0.3989" style="stop-color:#FFCF2A"/>
<stop offset="0.5618" style="stop-color:#FF9500"/>
<stop offset="0.7978" style="stop-color:#D44000"/>
<stop offset="0.8708" style="stop-color:#EB5700"/>
<stop offset="1" style="stop-color:#EB5700"/>
</linearGradient>
<path style="fill:url(#SVGID_00000125565681220656987410000005679657766870032784_);" d="M35.83,46.09c2.88,0,4.74-0.47,4.74-1.41
c0-0.83-0.77-0.96-0.77-0.96c-0.88,0.45-3.05,0.59-3.97,0.59c-0.92,0-3.09-0.15-3.97-0.59c0,0-0.77,0.13-0.77,0.96
C31.09,45.62,32.94,46.09,35.83,46.09z"/>
<linearGradient id="SVGID_00000133529709858567158820000012410588675797053060_" gradientUnits="userSpaceOnUse" x1="31.3909" y1="44.2161" x2="40.2641" y2="44.2161">
<stop offset="0" style="stop-color:#F77D00"/>
<stop offset="0.1629" style="stop-color:#FFED2A"/>
<stop offset="0.2753" style="stop-color:#FFFFE3"/>
<stop offset="0.3989" style="stop-color:#FFED2A"/>
<stop offset="0.5618" style="stop-color:#FFB300"/>
<stop offset="0.7978" style="stop-color:#EB5200"/>
<stop offset="0.8708" style="stop-color:#F26B00"/>
<stop offset="1" style="stop-color:#F26B00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000133529709858567158820000012410588675797053060_);" d="M39.81,43.71
c-0.88,0.45-3.05,0.59-3.97,0.59c-0.92,0-3.09-0.15-3.97-0.59c0,0-0.26,0.04-0.47,0.24c0.69,0.51,2.27,0.76,4.42,0.76
c2.17,0,3.77-0.26,4.45-0.78C40.05,43.75,39.81,43.71,39.81,43.71z"/>
<linearGradient id="SVGID_00000053537029215023836370000000864520011586292868_" gradientUnits="userSpaceOnUse" x1="-106.2407" y1="-412.3786" x2="-65.129" y2="-412.3786" gradientTransform="matrix(0 1 -1 0 -397.8736 107.8656)">
<stop offset="0" style="stop-color:#FFCF2A"/>
<stop offset="0.4045" style="stop-color:#FF9500"/>
<stop offset="1" style="stop-color:#EB5700"/>
</linearGradient>
<path style="fill:url(#SVGID_00000053537029215023836370000000864520011586292868_);" d="M13.84,1.63C10.4,1.7,7.02,3.69,5.24,6.72
C3.69,9.35,2.6,13.91,6.2,20.73c2.59,4.9,6.85,8.23,10.61,11.17c3.58,2.79,6.67,5.21,6.82,7.99c0.02,0.32-0.09,0.62-0.3,0.86
c-0.21,0.24-0.5,0.38-0.82,0.4c-0.32,0.02-0.62-0.09-0.86-0.3c-0.24-0.21-0.38-0.5-0.4-0.82l-1.59,0.09
c0.04,0.74,0.37,1.42,0.92,1.92c0.55,0.49,1.27,0.75,2.01,0.7c0.74-0.04,1.42-0.37,1.92-0.92c0.5-0.55,0.75-1.27,0.7-2.01
c-0.2-3.51-3.55-6.13-7.43-9.16c-3.63-2.84-7.75-6.06-10.18-10.66c-3.26-6.17-2.34-10.18-1-12.46c1.83-3.11,5.06-4.26,7.27-4.31
c1.04-0.02,1.89,0.77,1.91,1.77c0.02,1-0.81,1.82-1.84,1.85c-0.66,0.01-1.38-0.44-1.6-1.02l-1.48,0.57
c0.46,1.21,1.77,2.06,3.12,2.04c1.91-0.04,3.44-1.59,3.4-3.47C17.34,3.08,15.76,1.59,13.84,1.63z"/>
<linearGradient id="SVGID_00000083069551763023159170000010790211254596558505_" gradientUnits="userSpaceOnUse" x1="12.2245" y1="5.7642" x2="15.7912" y2="5.7642">
<stop offset="0.1404" style="stop-color:#FF7A00"/>
<stop offset="0.5" style="stop-color:#FFC95E"/>
<stop offset="0.8596" style="stop-color:#FF7A00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000083069551763023159170000010790211254596558505_);" d="M12.35,5.82c0.22,0.57,0.94,1.03,1.6,1.02
c1.04-0.02,1.86-0.85,1.84-1.85c0-0.1-0.02-0.2-0.03-0.29c-0.16,0.82-0.91,1.45-1.81,1.47c-0.66,0.01-1.5-0.39-1.72-0.97
L12.35,5.82z"/>
<linearGradient id="SVGID_00000155828532519075590140000014672734536863485616_" gradientUnits="userSpaceOnUse" x1="32.2877" y1="-207.8408" x2="66.0199" y2="-207.8408" gradientTransform="matrix(0.7071 0.7071 -0.7071 0.7071 -166.4176 138.0708)">
<stop offset="0.3" style="stop-color:#F05E00"/>
<stop offset="0.5" style="stop-color:#FFAB5E"/>
<stop offset="0.7" style="stop-color:#F05E00"/>
<stop offset="1" style="stop-color:#AB2600"/>
</linearGradient>
<path style="fill:url(#SVGID_00000155828532519075590140000014672734536863485616_);" d="M25.22,39.14
c-0.2-3.51-3.55-6.13-7.43-9.16c-3.63-2.84-7.75-6.06-10.18-10.66c-1.55-2.94-2.16-5.39-2.22-7.4c-0.06,2.12,0.49,4.79,2.22,8.06
c2.43,4.6,6.55,7.82,10.18,10.66c3.88,3.03,7.24,5.65,7.43,9.16c0-0.06-0.01-0.13-0.02-0.19C25.22,39.46,25.23,39.3,25.22,39.14z"
/>
<linearGradient id="SVGID_00000091726481712809328040000010171546713628245930_" gradientUnits="userSpaceOnUse" x1="21.1668" y1="40.2555" x2="23.6337" y2="40.2555">
<stop offset="0.1404" style="stop-color:#C23300"/>
<stop offset="0.5" style="stop-color:#FF9C00"/>
<stop offset="0.8596" style="stop-color:#C23300"/>
</linearGradient>
<path style="fill:url(#SVGID_00000091726481712809328040000010171546713628245930_);" d="M21.25,40.02
c0.02,0.32,0.16,0.61,0.4,0.82c0.24,0.21,0.54,0.32,0.86,0.3c0.32-0.02,0.61-0.16,0.82-0.4c0.21-0.24,0.32-0.54,0.3-0.86
c-0.01-0.11-0.02-0.21-0.04-0.32c-0.05,0.19-0.13,0.37-0.26,0.52c-0.21,0.24-0.5,0.38-0.82,0.4c-0.32,0.02-0.62-0.09-0.86-0.3
c-0.24-0.21-0.43-0.5-0.48-0.82L21.25,40.02z"/>
<linearGradient id="SVGID_00000000934741671537695630000009050334512749047711_" gradientUnits="userSpaceOnUse" x1="3.132" y1="7.0801" x2="17.521" y2="5.4426">
<stop offset="0" style="stop-color:#D64700"/>
<stop offset="0.5393" style="stop-color:#F05E00"/>
<stop offset="0.7921" style="stop-color:#FFAB5E"/>
<stop offset="1" style="stop-color:#F05E00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000000934741671537695630000009050334512749047711_);" d="M13.84,1.63c1.91-0.04,3.5,1.45,3.54,3.33
c0-0.09-0.01-0.17-0.02-0.26c0.01-0.13,0.02-0.27,0.02-0.4c-0.04-1.87-1.62-3.37-3.54-3.33C10.4,1.03,7.02,3.03,5.24,6.05
c-0.82,1.4-1.52,3.35-1.45,5.89c0.05-2.22,0.7-3.95,1.45-5.23C7.02,3.69,10.4,1.7,13.84,1.63z"/>
<linearGradient id="SVGID_00000084527588106242564870000007451590067506775981_" gradientUnits="userSpaceOnUse" x1="10.8614" y1="5.7929" x2="12.3461" y2="5.7929">
<stop offset="0.1404" style="stop-color:#FF7A00"/>
<stop offset="0.9045" style="stop-color:#FFC95E"/>
</linearGradient>
<polygon style="fill:url(#SVGID_00000084527588106242564870000007451590067506775981_);" points="12.22,5.2 10.86,5.72 10.86,6.38
12.35,5.82 "/>
<linearGradient id="SVGID_00000085954544492249194600000010528736191074439859_" gradientUnits="userSpaceOnUse" x1="19.6639" y1="39.7368" x2="21.251" y2="39.7368">
<stop offset="0.1404" style="stop-color:#C23300"/>
<stop offset="0.9045" style="stop-color:#FF9C00"/>
</linearGradient>
<polygon style="fill:url(#SVGID_00000085954544492249194600000010528736191074439859_);" points="21.17,39.36 19.68,39.46
19.66,40.11 21.25,40.02 "/>
<linearGradient id="SVGID_00000162331683648490507580000016551900506159494578_" gradientUnits="userSpaceOnUse" x1="31.6422" y1="-207.1643" x2="65.2544" y2="-207.1643" gradientTransform="matrix(0.7071 0.7071 -0.7071 0.7071 -165.4425 138.4758)">
<stop offset="0.3" style="stop-color:#FFBD00"/>
<stop offset="0.5" style="stop-color:#FFFF5E"/>
<stop offset="0.7" style="stop-color:#FFBD00"/>
<stop offset="1" style="stop-color:#FF6A00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000162331683648490507580000016551900506159494578_);" d="M25.22,39.8
c-0.2-3.51-3.55-6.13-7.43-9.16c-3.63-2.84-7.75-6.06-10.18-10.66C6,16.95,5.41,14.44,5.38,12.4c-0.02,2.09,0.55,4.69,2.22,7.87
c2.43,4.6,6.55,7.82,10.18,10.66c3.88,3.03,7.24,5.65,7.43,9.16c0,0.01,0,0.01,0,0.02C25.22,40,25.22,39.9,25.22,39.8z"/>
<linearGradient id="SVGID_00000049912539231515865360000012754913114707665585_" gradientUnits="userSpaceOnUse" x1="19.6641" y1="40.7238" x2="23.6339" y2="40.7238">
<stop offset="0.3371" style="stop-color:#FF8A00"/>
<stop offset="0.6742" style="stop-color:#FFB000"/>
<stop offset="1" style="stop-color:#FF8A00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000049912539231515865360000012754913114707665585_);" d="M23.33,40.75
c-0.21,0.24-0.5,0.38-0.82,0.4c-0.32,0.02-0.62-0.09-0.86-0.3c-0.24-0.21-0.38-0.5-0.4-0.82l-1.59,0.09
c0.01,0.09,0.02,0.19,0.03,0.28l1.56-0.09c0.02,0.32,0.16,0.61,0.4,0.82c0.24,0.21,0.54,0.32,0.86,0.3
c0.32-0.02,0.61-0.16,0.82-0.4c0.21-0.24,0.32-0.54,0.3-0.86c0-0.03-0.01-0.06-0.01-0.09C23.6,40.33,23.5,40.56,23.33,40.75z"/>
<linearGradient id="SVGID_00000056398267572316264330000014232754190489038224_" gradientUnits="userSpaceOnUse" x1="11.1195" y1="7.121" x2="16.0527" y2="5.614">
<stop offset="0.3371" style="stop-color:#FFE600"/>
<stop offset="0.6742" style="stop-color:#FFFF5E"/>
<stop offset="1" style="stop-color:#FFE600"/>
</linearGradient>
<path style="fill:url(#SVGID_00000056398267572316264330000014232754190489038224_);" d="M13.95,6.83
c-0.66,0.01-1.38-0.44-1.6-1.02l-1.48,0.57c0.03,0.08,0.07,0.16,0.11,0.24l1.38-0.53c0.22,0.57,0.94,1.03,1.6,1.02
c1.04-0.02,1.86-0.85,1.84-1.85c0-0.03,0-0.06-0.01-0.09C15.7,6.09,14.92,6.81,13.95,6.83z"/>
<linearGradient id="SVGID_00000158738107775227668410000014594924670710220191_" gradientUnits="userSpaceOnUse" x1="2.9022" y1="7.8647" x2="17.5351" y2="5.5885">
<stop offset="0.5393" style="stop-color:#FFD500"/>
<stop offset="0.7921" style="stop-color:#FFFF5E"/>
<stop offset="1" style="stop-color:#FFD500"/>
</linearGradient>
<path style="fill:url(#SVGID_00000158738107775227668410000014594924670710220191_);" d="M13.84,1.9c1.88-0.04,3.45,1.41,3.53,3.24
c0-0.06,0.01-0.13,0.01-0.19c-0.04-1.87-1.62-3.37-3.54-3.33C10.4,1.7,7.02,3.69,5.24,6.72c-0.8,1.35-1.47,3.22-1.45,5.63
C3.82,10.07,4.47,8.29,5.24,7C7.02,3.97,10.4,1.97,13.84,1.9z"/>
<linearGradient id="SVGID_00000102504272519539588120000004577468029109663373_" gradientUnits="userSpaceOnUse" x1="-106.2403" y1="-18.9847" x2="-65.1286" y2="-18.9847" gradientTransform="matrix(0 1 1 0 76.1347 107.8656)">
<stop offset="0" style="stop-color:#FFCF2A"/>
<stop offset="0.4045" style="stop-color:#FF9500"/>
<stop offset="1" style="stop-color:#EB5700"/>
</linearGradient>
<path style="fill:url(#SVGID_00000102504272519539588120000004577468029109663373_);" d="M57.81,1.63
c3.45,0.07,6.83,2.07,8.61,5.09c1.55,2.63,2.64,7.2-0.96,14.01c-2.59,4.9-6.85,8.23-10.61,11.17c-3.58,2.79-6.67,5.21-6.82,7.99
c-0.02,0.32,0.09,0.62,0.3,0.86c0.21,0.24,0.5,0.38,0.82,0.4c0.32,0.02,0.62-0.09,0.86-0.3c0.24-0.21,0.38-0.5,0.4-0.82l1.59,0.09
c-0.04,0.74-0.37,1.42-0.92,1.92c-0.55,0.49-1.27,0.75-2.01,0.7c-0.74-0.04-1.42-0.37-1.92-0.92c-0.49-0.55-0.74-1.27-0.7-2.01
c0.2-3.51,3.55-6.13,7.43-9.16c3.63-2.84,7.75-6.06,10.18-10.66c3.26-6.17,2.34-10.18,1-12.46c-1.83-3.11-5.06-4.26-7.27-4.31
c-1.04-0.02-1.89,0.77-1.91,1.77c-0.02,1,0.81,1.82,1.84,1.85c0.66,0.01,1.38-0.44,1.6-1.02l1.48,0.57
c-0.46,1.21-1.77,2.06-3.12,2.04c-1.91-0.04-3.44-1.59-3.4-3.47C54.31,3.08,55.9,1.59,57.81,1.63z"/>
<linearGradient id="SVGID_00000066494377237295636530000012311180918825290388_" gradientUnits="userSpaceOnUse" x1="-381.1692" y1="5.7635" x2="-377.6028" y2="5.7635" gradientTransform="matrix(-1 0 0 1 -321.739 0)">
<stop offset="0.1404" style="stop-color:#FF7A00"/>
<stop offset="0.5" style="stop-color:#FFC95E"/>
<stop offset="0.8596" style="stop-color:#FF7A00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000066494377237295636530000012311180918825290388_);" d="M59.31,5.82
c-0.22,0.57-0.94,1.03-1.6,1.02c-1.04-0.02-1.86-0.85-1.84-1.85c0-0.1,0.01-0.2,0.03-0.29c0.16,0.82,0.91,1.45,1.81,1.47
c0.66,0.01,1.5-0.39,1.72-0.97L59.31,5.82z"/>
<linearGradient id="SVGID_00000010285723343893193180000006863935980336486797_" gradientUnits="userSpaceOnUse" x1="-245.8867" y1="70.3338" x2="-212.1548" y2="70.3338" gradientTransform="matrix(-0.7071 0.7071 0.7071 0.7071 -155.3214 138.0708)">
<stop offset="0.3" style="stop-color:#F05E00"/>
<stop offset="0.5" style="stop-color:#FFAB5E"/>
<stop offset="0.7" style="stop-color:#F05E00"/>
<stop offset="1" style="stop-color:#AB2600"/>
</linearGradient>
<path style="fill:url(#SVGID_00000010285723343893193180000006863935980336486797_);" d="M46.44,39.14
c0.2-3.51,3.55-6.13,7.43-9.16c3.63-2.84,7.75-6.06,10.18-10.66c1.55-2.94,2.16-5.39,2.22-7.4c0.06,2.12-0.49,4.79-2.22,8.06
c-2.43,4.6-6.55,7.82-10.18,10.66c-3.88,3.03-7.24,5.65-7.43,9.16c0-0.06,0.01-0.13,0.02-0.19C46.43,39.46,46.43,39.3,46.44,39.14z
"/>
<linearGradient id="SVGID_00000013191356585496979310000002153316429412074381_" gradientUnits="userSpaceOnUse" x1="-372.226" y1="40.2543" x2="-369.7592" y2="40.2543" gradientTransform="matrix(-1 0 0 1 -321.739 0)">
<stop offset="0.1404" style="stop-color:#C23300"/>
<stop offset="0.5" style="stop-color:#FF9C00"/>
<stop offset="0.8596" style="stop-color:#C23300"/>
</linearGradient>
<path style="fill:url(#SVGID_00000013191356585496979310000002153316429412074381_);" d="M50.4,40.02
c-0.02,0.32-0.16,0.61-0.4,0.82c-0.24,0.21-0.54,0.32-0.86,0.3c-0.32-0.02-0.61-0.16-0.82-0.4c-0.21-0.24-0.32-0.54-0.3-0.86
c0.01-0.11,0.02-0.21,0.04-0.32c0.04,0.19,0.13,0.37,0.26,0.52c0.21,0.24,0.5,0.38,0.82,0.4c0.32,0.02,0.62-0.09,0.86-0.3
c0.24-0.21,0.43-0.5,0.48-0.82L50.4,40.02z"/>
<linearGradient id="SVGID_00000046316121480313610600000008557177892497524636_" gradientUnits="userSpaceOnUse" x1="-390.2623" y1="7.0801" x2="-375.873" y2="5.4426" gradientTransform="matrix(-1 0 0 1 -321.739 0)">
<stop offset="0" style="stop-color:#D64700"/>
<stop offset="0.5393" style="stop-color:#F05E00"/>
<stop offset="0.7921" style="stop-color:#FFAB5E"/>
<stop offset="1" style="stop-color:#F05E00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000046316121480313610600000008557177892497524636_);" d="M57.81,1.63
c-1.91-0.04-3.5,1.45-3.54,3.33c0-0.09,0.01-0.17,0.02-0.26c-0.01-0.13-0.02-0.27-0.02-0.4c0.04-1.87,1.62-3.37,3.54-3.33
c3.45,0.07,6.83,2.07,8.61,5.09c0.83,1.4,1.52,3.35,1.45,5.89c-0.05-2.22-0.69-3.95-1.45-5.23C64.64,3.69,61.26,1.7,57.81,1.63z"/>
<linearGradient id="SVGID_00000178180525225534895690000012729497958850000546_" gradientUnits="userSpaceOnUse" x1="-382.5327" y1="5.7929" x2="-381.048" y2="5.7929" gradientTransform="matrix(-1 0 0 1 -321.739 0)">
<stop offset="0.1404" style="stop-color:#FF7A00"/>
<stop offset="0.9045" style="stop-color:#FFC95E"/>
</linearGradient>
<polygon style="fill:url(#SVGID_00000178180525225534895690000012729497958850000546_);" points="59.43,5.2 60.79,5.72 60.79,6.38
59.31,5.82 "/>
<linearGradient id="SVGID_00000007389286191455779310000002364878894567043512_" gradientUnits="userSpaceOnUse" x1="-373.7304" y1="39.7368" x2="-372.1433" y2="39.7368" gradientTransform="matrix(-1 0 0 1 -321.739 0)">
<stop offset="0.1404" style="stop-color:#C23300"/>
<stop offset="0.9045" style="stop-color:#FF9C00"/>
</linearGradient>
<polygon style="fill:url(#SVGID_00000007389286191455779310000002364878894567043512_);" points="50.49,39.36 51.98,39.46
51.99,40.11 50.4,40.02 "/>
<linearGradient id="SVGID_00000086669852274801779260000010661821405264458624_" gradientUnits="userSpaceOnUse" x1="-246.5324" y1="71.0103" x2="-212.9202" y2="71.0103" gradientTransform="matrix(-0.7071 0.7071 0.7071 0.7071 -156.2965 138.4758)">
<stop offset="0.3" style="stop-color:#FFBD00"/>
<stop offset="0.5" style="stop-color:#FFFF5E"/>
<stop offset="0.7" style="stop-color:#FFBD00"/>
<stop offset="1" style="stop-color:#FF6A00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000086669852274801779260000010661821405264458624_);" d="M46.44,39.8c0.2-3.51,3.55-6.13,7.43-9.16
c3.63-2.84,7.75-6.06,10.18-10.66c1.6-3.03,2.19-5.54,2.22-7.59c0.02,2.09-0.55,4.69-2.22,7.87c-2.43,4.6-6.55,7.82-10.18,10.66
c-3.88,3.03-7.24,5.65-7.43,9.16c0,0.01,0,0.01,0,0.02C46.43,40,46.43,39.9,46.44,39.8z"/>
<linearGradient id="SVGID_00000024714997111843904480000004528017080092598166_" gradientUnits="userSpaceOnUse" x1="-373.7304" y1="40.7238" x2="-369.7605" y2="40.7238" gradientTransform="matrix(-1 0 0 1 -321.739 0)">
<stop offset="0.3371" style="stop-color:#FF8A00"/>
<stop offset="0.6742" style="stop-color:#FFB000"/>
<stop offset="1" style="stop-color:#FF8A00"/>
</linearGradient>
<path style="fill:url(#SVGID_00000024714997111843904480000004528017080092598166_);" d="M48.33,40.75c0.21,0.24,0.5,0.38,0.82,0.4
c0.32,0.02,0.62-0.09,0.86-0.3c0.24-0.21,0.38-0.5,0.4-0.82l1.59,0.09c-0.01,0.09-0.02,0.19-0.03,0.28L50.4,40.3
c-0.02,0.32-0.16,0.61-0.4,0.82c-0.24,0.21-0.54,0.32-0.86,0.3c-0.32-0.02-0.61-0.16-0.82-0.4c-0.21-0.24-0.32-0.54-0.3-0.86
c0-0.03,0.01-0.06,0.01-0.09C48.06,40.33,48.16,40.56,48.33,40.75z"/>
<linearGradient id="SVGID_00000109731824046513821620000009777337267800078512_" gradientUnits="userSpaceOnUse" x1="-382.2746" y1="7.1209" x2="-377.342" y2="5.6142" gradientTransform="matrix(-1 0 0 1 -321.739 0)">
<stop offset="0.3371" style="stop-color:#FFE600"/>
<stop offset="0.6742" style="stop-color:#FFFF5E"/>
<stop offset="1" style="stop-color:#FFE600"/>
</linearGradient>
<path style="fill:url(#SVGID_00000109731824046513821620000009777337267800078512_);" d="M57.71,6.83c0.66,0.01,1.38-0.44,1.6-1.02
l1.48,0.57c-0.03,0.08-0.07,0.16-0.11,0.24l-1.38-0.53c-0.22,0.57-0.94,1.03-1.6,1.02c-1.04-0.02-1.86-0.85-1.84-1.85
c0-0.03,0-0.06,0.01-0.09C55.95,6.09,56.74,6.81,57.71,6.83z"/>
<linearGradient id="SVGID_00000090977469055012603210000000700445766843233697_" gradientUnits="userSpaceOnUse" x1="-390.4919" y1="7.8646" x2="-375.8589" y2="5.5884" gradientTransform="matrix(-1 0 0 1 -321.739 0)">
<stop offset="0.5393" style="stop-color:#FFD500"/>
<stop offset="0.7921" style="stop-color:#FFFF5E"/>
<stop offset="1" style="stop-color:#FFD500"/>
</linearGradient>
<path style="fill:url(#SVGID_00000090977469055012603210000000700445766843233697_);" d="M57.81,1.9
c-1.88-0.04-3.45,1.41-3.53,3.24c0-0.06-0.01-0.13-0.01-0.19c0.04-1.87,1.62-3.37,3.54-3.33c3.45,0.07,6.83,2.07,8.61,5.09
c0.8,1.35,1.47,3.22,1.45,5.63c-0.03-2.28-0.68-4.05-1.45-5.35C64.64,3.97,61.26,1.97,57.81,1.9z"/>
</g>
</svg>
<p>${loser.name}:再接再厉,不要气馁</p>
`;
} else {
playSound('timeout');
resultContent.innerHTML = `
<h2>平局!势均力敌</h2>
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="40" fill="none" stroke="#FFD700" stroke-width="10"/>
<path d="M30,50 h40 M50,30 v40" stroke="#FFD700" stroke-width="10"/>
</svg>
`;
}
setTimeout(() => {
resultModal.style.display = 'none';
rollDiceBtn.disabled = true;
}, 5000);
}
function handleFileLoad(event) {
const file = event.target.files[0];
if (!file) return;
const reader = new FileReader();
reader.onload = function(e) {
try {
const loadedData = JSON.parse(e.target.result);
if (!Array.isArray(loadedData)) throw new Error("文件内容必须是一个JSON数组!");
const validNewQuestions = loadedData.filter(item => item && item.q && item.a && item.type);
if (validNewQuestions.length === 0) throw new Error("文件中没有找到有效的题目格式 {q, a, type}!");
questions = questions.concat(validNewQuestions);
availableQuestions = [...questions];
updateCategoryDropdown();
alert(`成功加载 ${validNewQuestions.length} 个新题目!现在题库共有 ${questions.length} 个题目。`);
} catch (error) {
alert(`加载题目失败: ${error.message}`);
console.error("题目加载错误:", error);
}
};
reader.onerror = function() {
alert("文件读取错误!");
};
reader.readAsText(file);
}
// --- 事件监听 ---
submitAnswerBtn.addEventListener('click', submitAnswer);
answerInput.addEventListener('keypress', event => { if (event.key === 'Enter') submitAnswer(); });
closeQuestionBtn.addEventListener('click', closeQuestion);
rollDiceBtn.addEventListener('click', rollDice);
restartBtn.addEventListener('click', initGame);
soundBtn.addEventListener('click', toggleSound);
categorySelect.addEventListener('change', function() { selectedCategory = this.value; });
loadQuestionsBtn.addEventListener('click', () => loadQuestionsInput.click());
loadQuestionsInput.addEventListener('change', handleFileLoad);
roundsSlider.addEventListener('input', function() {
maxRounds = parseInt(this.value);
roundsValue.textContent = `${maxRounds}回合`;
totalRoundsDisplay.forEach(display => display.textContent = maxRounds);
updateUI();
});
timeSlider.addEventListener('input', function() {
answerTimeLimit = parseInt(this.value);
timeValue.textContent = `${answerTimeLimit}秒`;
});
p1NameInput.addEventListener('change', updateUI);
p2NameInput.addEventListener('change', updateUI);
window.addEventListener('DOMContentLoaded', initGame);
// 监听空格键掷骰子
document.addEventListener('keydown', function(event) {
if (event.code === 'Space' && !rollDiceBtn.disabled) {
event.preventDefault(); // 防止默认行为,如页面滚动
rollDice();
}
});
</script>
</body>
</html>