-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.php
More file actions
151 lines (143 loc) · 5.96 KB
/
index.php
File metadata and controls
151 lines (143 loc) · 5.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?php
$seed = isset($_GET['seed']) ? $_GET['seed'] : '';
$difficulty = isset($_GET['difficulty']) ? $_GET['difficulty'] : 'medium';
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/>
<title>Maze Solver — 3D</title>
<meta name="description" content="Navigate an animated 3D maze and find the exit. Random generation, timer, scoring, and auto-solve."/>
<link rel="preconnect" href="https://unpkg.com"/>
<link rel="stylesheet" href="./styles.css"/>
<meta property="og:title" content="Maze Solver"/>
<meta property="og:description" content="Navigate an animated 3D maze and find the exit as quickly as possible."/>
<meta property="og:type" content="website"/>
</head>
<body data-seed="<?=htmlspecialchars($seed, ENT_QUOTES)?>" data-difficulty="<?=htmlspecialchars($difficulty, ENT_QUOTES)?>">
<header class="topbar">
<div class="brand">
<span class="logo">🧩</span>
<h1>Maze Solver</h1>
</div>
<nav class="controls">
<button id="btn-new" class="primary">New Maze</button>
<select id="select-difficulty" aria-label="Difficulty">
<option value="easy">Easy</option>
<option value="medium" selected>Medium</option>
<option value="hard">Hard</option>
<option value="extreme">Extreme</option>
</select>
<label class="seed">
Seed
<input id="input-seed" type="text" placeholder="random" />
</label>
<button id="btn-hint">Hint</button>
<button id="btn-solve">Auto-Solve</button>
<button id="btn-reset">Reset</button>
<button id="btn-cam">Cinematic</button>
<button id="btn-shot">Screenshot</button>
<button id="btn-about" title="About & Support">ℹ️</button>
<label class="toggle">
<input id="toggle-theme" type="checkbox" />
<span>Dark</span>
</label>
</nav>
</header>
<main class="layout">
<aside class="panel left">
<div class="card stats">
<div><strong>Time</strong> <span id="ui-time">00:00</span></div>
<div><strong>Moves</strong> <span id="ui-moves">0</span></div>
<div><strong>Score</strong> <span id="ui-score">0</span></div>
</div>
<div class="card leaderboard">
<h3>Top Scores</h3>
<ol id="ui-leaderboard"></ol>
</div>
<div class="card howto">
<h3>How to Play</h3>
<ul>
<li>Use WASD or Arrow keys to move.</li>
<li>Reach the glowing exit tile.</li>
<li>Hints and auto-solve reduce score.</li>
</ul>
</div>
</aside>
<section class="stage">
<div id="renderer-root" aria-label="3D Maze" role="application"></div>
<canvas id="minimap" class="minimap" width="220" height="220"></canvas>
<div id="touch-pad" class="touch-pad" aria-hidden="true">
<div data-dir="up">▲</div>
<div data-dir="left">◀</div>
<div data-dir="right">▶</div>
<div data-dir="down">▼</div>
</div>
<div id="toast" class="toast" role="status" aria-live="polite"></div>
</section>
<aside class="panel right">
<div class="card toggles">
<h3>Options</h3>
<label>
<input id="toggle-grid" type="checkbox" checked />
Show grid
</label>
<label>
<input id="toggle-path" type="checkbox" checked />
Show path preview
</label>
<label>
<input id="toggle-minimap" type="checkbox" />
Minimap
</label>
<label>
<input id="toggle-followcam" type="checkbox" checked />
Follow camera
</label>
<label>
Animation Speed
<input id="range-speed" type="range" min="0.2" max="2" value="1" step="0.1"/>
</label>
</div>
<div class="card share">
<h3>Share</h3>
<button id="btn-share">Copy Link to Maze</button>
<input id="share-url" type="text" readonly />
</div>
</aside>
</main>
<footer class="footer">
<div class="contact">
<p>For support, licensing, or custom development inquiries: <a href="mailto:help@rskworld.in">help@rskworld.in</a> • Phone/WhatsApp: <a href="https://wa.me/919330539277" target="_blank" rel="noopener">+91 9330539277</a></p>
<p>Website: <a href="https://rskworld.in" target="_blank" rel="noopener">RSK World</a> • Business Inquiries: <a href="mailto:help@rskworld.in">help@rskworld.in</a></p>
<p>🤝 Contributing: Suggestions and improvements are welcome!</p>
</div>
<div class="links">
<a href="./about.php">About</a>
<a href="./privacy.php">Privacy</a>
<a href="#" id="link-reset-scores">Reset Scores</a>
</div>
</footer>
<dialog id="modal-about">
<article>
<header>
<h2>About Maze Solver</h2>
<button id="btn-close-about" aria-label="Close">✕</button>
</header>
<p>Navigate through an animated 3D maze and find the exit as quickly as possible.</p>
<ul>
<li>Random Maze Generation with shareable seeds</li>
<li>Timer, moves, scoring and local leaderboard</li>
<li>Auto-solve with A* pathfinding and hint previews</li>
<li>Cinematic camera, dark mode and responsive UI</li>
</ul>
<hr/>
<p>For support, licensing, or custom development inquiries: <a href="mailto:help@rskworld.in">help@rskworld.in</a> • Phone/WhatsApp: <a href="https://wa.me/919330539277" target="_blank" rel="noopener">+91 9330539277</a></p>
<p>Website: <a href="https://rskworld.in" target="_blank" rel="noopener">RSK World</a> • Business Inquiries: <a href="mailto:help@rskworld.in">help@rskworld.in</a></p>
<p>🤝 Contributing: Suggestions and improvements are welcome!</p>
</article>
</dialog>
<script type="module" src="./js/main.js"></script>
</body>
</html>