Archivage de fichiers de l'exo Memory
This commit is contained in:
@@ -4,146 +4,18 @@
|
||||
============================================ */
|
||||
|
||||
:root {
|
||||
/* NextGN Base Colors */
|
||||
--teal: #0F6E56;
|
||||
--teal-mid: #1D9E75;
|
||||
--teal-light: #E1F5EE;
|
||||
--teal-dark: #085041;
|
||||
--amber: #BA7517;
|
||||
--amber-light: #FAEEDA;
|
||||
--amber-dark: #633806;
|
||||
--coral: #993C1D;
|
||||
--coral-mid: #D85A30;
|
||||
--coral-light: #FAECE7;
|
||||
--purple: #534AB7;
|
||||
--purple-light: #EEEDFE;
|
||||
--purple-dark: #3C3489;
|
||||
--blue: #185FA5;
|
||||
--blue-light: #E6F1FB;
|
||||
--bg: #F7F6F2;
|
||||
--white: #FFFFFF;
|
||||
--text: #1a1a18;
|
||||
--text-muted: #6b6a65;
|
||||
--border: rgba(0,0,0,0.1);
|
||||
|
||||
/* Gamification Colors */
|
||||
--success: #4CAF50;
|
||||
--warning: #FF9800;
|
||||
--info: #2196F3;
|
||||
--accent: #FFD700;
|
||||
|
||||
|
||||
/* Shadows */
|
||||
--shadow-sm: 0 4px 8px rgba(15, 110, 86, 0.1);
|
||||
--shadow-md: 0 8px 16px rgba(15, 110, 86, 0.15);
|
||||
--shadow-lg: 0 16px 32px rgba(15, 110, 86, 0.25);
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'DM Sans', sans-serif;
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
line-height: 1.6;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
HEADER & NAVIGATION
|
||||
============================================ */
|
||||
.nav-header {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 70px;
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
border-bottom: 1px solid var(--border);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0 40px;
|
||||
z-index: 1000;
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.header-logo {
|
||||
font-family: 'Syne', sans-serif;
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
letter-spacing: -0.5px;
|
||||
background: linear-gradient(135deg, var(--teal-mid), var(--coral-mid));
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.header-nav {
|
||||
display: flex;
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
.header-nav a {
|
||||
font-family: 'Syne', sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
color: var(--text-muted);
|
||||
text-decoration: none;
|
||||
margin-left: 40px;
|
||||
transition: color 0.3s ease;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.header-nav a:hover {
|
||||
color: var(--teal-mid);
|
||||
}
|
||||
|
||||
.header-nav a::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: -4px;
|
||||
left: 0;
|
||||
width: 0;
|
||||
height: 2px;
|
||||
background: var(--teal-mid);
|
||||
transition: width 0.3s ease;
|
||||
}
|
||||
|
||||
.header-nav a:hover::after {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
PROGRESS BAR
|
||||
============================================ */
|
||||
.progress {
|
||||
position: fixed;
|
||||
top: 70px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 4px;
|
||||
background: var(--teal-light);
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.progress-fill {
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, var(--teal-mid), var(--teal-dark));
|
||||
width: 0%;
|
||||
transition: width 0.2s ease;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
MAIN LAYOUT
|
||||
============================================ */
|
||||
@@ -442,18 +314,8 @@ footer {
|
||||
RESPONSIVE DESIGN
|
||||
============================================ */
|
||||
@media (max-width: 768px) {
|
||||
.nav-header {
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.header-nav a {
|
||||
margin-left: 20px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
main {
|
||||
padding: 20px;
|
||||
margin-top: 70px;
|
||||
}
|
||||
|
||||
.intro-section h1 {
|
||||
@@ -482,23 +344,8 @@ footer {
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.nav-header {
|
||||
height: 60px;
|
||||
padding: 0 16px;
|
||||
}
|
||||
|
||||
.header-logo {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.header-nav a {
|
||||
margin-left: 12px;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
main {
|
||||
padding: 16px;
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
.intro-section h1 {
|
||||
|
||||
@@ -1,200 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Memory Pictogrammes GHS - NextGN Formation</title>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Sans:ital,wght@0,300;0,400;0,500;1,300&display=swap" rel="stylesheet">
|
||||
|
||||
<!-- Styles -->
|
||||
<link rel="stylesheet" href="assets/css/memory-game.css">
|
||||
<link rel="stylesheet" href="assets/css/hud.css">
|
||||
<link rel="stylesheet" href="assets/css/animations.css">
|
||||
<link rel="stylesheet" href="assets/css/leaderboard.css">
|
||||
</head>
|
||||
<body>
|
||||
<!-- HEADER NextGN Formation -->
|
||||
<header class="nav-header">
|
||||
<a href="../../index.html" class="header-logo">
|
||||
<span>NextGN</span> Formation
|
||||
</a>
|
||||
<nav class="header-nav">
|
||||
<a href="../../index.html">Accueil</a>
|
||||
<a href="../../index.html#formations">Exercices interactifs</a>
|
||||
<a href="../../index.html#documentation">Documentation</a>
|
||||
<a href="../../index.html#rapports">Rapports de veille</a>
|
||||
<a href="../../index.html#about">À propos</a>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<!-- PROGRESS BAR -->
|
||||
<div class="progress">
|
||||
<div class="progress-fill" id="progress-fill"></div>
|
||||
</div>
|
||||
<!-- MAIN CONTENT -->
|
||||
<main class="game-container">
|
||||
<!-- INTRO SECTION -->
|
||||
<section class="intro-section">
|
||||
<h1>🎮 Memory Pictogrammes GHS</h1>
|
||||
<p class="subtitle">Maîtrisez les 9 symboles de danger</p>
|
||||
|
||||
<div class="intro-box">
|
||||
<p>
|
||||
<strong>Objectif :</strong> Retrouvez les paires en associant chaque pictogramme à sa signification.
|
||||
Plus rapide vous êtes, plus de points vous gagnez! 🏆
|
||||
</p>
|
||||
</div>
|
||||
<!-- DIFFICULTY SELECTOR -->
|
||||
<div class="difficulty-selector">
|
||||
<label>Choisir le niveau :</label>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-difficulty" data-difficulty="easy">
|
||||
<span class="btn-label">Facile</span>
|
||||
<span class="btn-desc">4 paires</span>
|
||||
</button>
|
||||
<button class="btn btn-difficulty active" data-difficulty="normal">
|
||||
<span class="btn-label">Normal</span>
|
||||
<span class="btn-desc">9 paires</span>
|
||||
</button>
|
||||
<button class="btn btn-difficulty" data-difficulty="hard">
|
||||
<span class="btn-label">Difficile</span>
|
||||
<span class="btn-desc">2 min chrono</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- GAME SECTION -->
|
||||
<section class="game-section">
|
||||
<!-- HUD (Stats en temps réel) -->
|
||||
<div class="game-hud">
|
||||
<div class="stat-box">
|
||||
<div class="label">Score</div>
|
||||
<div class="value" id="score-display">0</div>
|
||||
</div>
|
||||
<div class="stat-box">
|
||||
<div class="label">Mouvements</div>
|
||||
<div class="value" id="moves-display">0</div>
|
||||
</div>
|
||||
<div class="stat-box">
|
||||
<div class="label">Temps</div>
|
||||
<div class="value" id="timer-display">00:00</div>
|
||||
</div>
|
||||
<div class="stat-box">
|
||||
<div class="label">Paires</div>
|
||||
<div class="value" id="pairs-display">0/9</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- PROGRESS BAR -->
|
||||
<div class="progress-container">
|
||||
<div class="progress-bar" id="progress-bar"></div>
|
||||
</div>
|
||||
|
||||
<!-- GAME GRID -->
|
||||
<div class="game-grid" id="game-grid">
|
||||
<!-- Cartes générées par JS -->
|
||||
</div>
|
||||
<!-- CONTROLS -->
|
||||
<div class="game-controls">
|
||||
<button class="btn btn-primary" id="restart-btn">
|
||||
🔄 Recommencer
|
||||
</button>
|
||||
<button class="btn btn-secondary" id="pause-btn">
|
||||
⏸ Pause
|
||||
</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- LEADERBOARD SECTION -->
|
||||
<section class="leaderboard-section">
|
||||
<h2>🏆 Classement</h2>
|
||||
|
||||
<div class="tabs">
|
||||
<button class="tab-btn active" data-filter="all">Tous</button>
|
||||
<button class="tab-btn" data-filter="easy">Facile</button>
|
||||
<button class="tab-btn" data-filter="normal">Normal</button>
|
||||
<button class="tab-btn" data-filter="hard">Difficile</button>
|
||||
</div>
|
||||
<div class="leaderboard">
|
||||
<div class="leaderboard-list" id="leaderboard-list">
|
||||
<!-- Rempli par JS -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- PLAYER STATS -->
|
||||
<div class="player-stats">
|
||||
<h3>Vos statistiques</h3>
|
||||
<div class="stats-grid">
|
||||
<div class="stat-card">
|
||||
<div class="stat-icon">🎮</div>
|
||||
<div class="stat-label">Jeux joués</div>
|
||||
<div class="stat-value" id="total-games">0</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="stat-icon">⭐</div>
|
||||
<div class="stat-label">Meilleur score</div>
|
||||
<div class="stat-value" id="best-score">0</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="stat-icon">⚡</div>
|
||||
<div class="stat-label">Temps record</div>
|
||||
<div class="stat-value" id="best-time">--</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="stat-icon">🏅</div>
|
||||
<div class="stat-label">Taux de réussite</div>
|
||||
<div class="stat-value" id="win-rate">0%</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<!-- VICTORY MODAL -->
|
||||
<div class="victory-modal hidden" id="victory-modal">
|
||||
<div class="modal-content">
|
||||
<h2 id="victory-title">Bravo! 🎉</h2>
|
||||
<div class="score-display" id="final-score">0</div>
|
||||
|
||||
<div class="stats-summary">
|
||||
<div class="stat">
|
||||
<div class="stat-label">Mouvements</div>
|
||||
<div class="stat-value" id="modal-moves">0</div>
|
||||
</div>
|
||||
<div class="stat">
|
||||
<div class="stat-label">Temps</div>
|
||||
<div class="stat-value" id="modal-time">00:00</div>
|
||||
</div>
|
||||
<div class="stat">
|
||||
<div class="stat-label">Difficulté</div>
|
||||
<div class="stat-value" id="modal-difficulty">Normal</div>
|
||||
</div>
|
||||
<div class="stat">
|
||||
<div class="stat-label">Bonus temps</div>
|
||||
<div class="stat-value" id="modal-bonus">+0</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ACHIEVEMENTS -->
|
||||
<div class="achievements-list" id="achievements-list"></div>
|
||||
|
||||
<div class="modal-actions">
|
||||
<button class="btn btn-primary" id="play-again-btn">
|
||||
🎮 Rejouer
|
||||
</button>
|
||||
<button class="btn btn-secondary" id="view-leaderboard-btn">
|
||||
🏆 Voir Classement
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER -->
|
||||
<footer>
|
||||
<p>© 2026 NextGN Formation - Formations Certibiocide & Techniques</p>
|
||||
<p style="margin-top: 10px; opacity: 0.6;">Tous droits réservés — Gauthier Chombart & Nathan Chauwin — Formateurs indépendants</p>
|
||||
</footer>
|
||||
<!-- SCRIPTS -->
|
||||
<script src="assets/js/utils.js"></script>
|
||||
<script src="assets/js/game-state.js"></script>
|
||||
<script src="assets/js/analytics.js"></script>
|
||||
<script src="assets/js/leaderboard.js"></script>
|
||||
<script src="assets/js/memory-game.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -7,6 +7,7 @@
|
||||
<link href="https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Sans:ital,wght@0,300;0,400;0,500;1,300&display=swap" rel="stylesheet">
|
||||
|
||||
<!-- Styles -->
|
||||
<link rel="stylesheet" href="../../header-style.css"/>
|
||||
<link rel="stylesheet" href="assets/css/memory-game.css">
|
||||
<link rel="stylesheet" href="assets/css/hud.css">
|
||||
<link rel="stylesheet" href="assets/css/animations.css">
|
||||
@@ -14,19 +15,20 @@
|
||||
</head>
|
||||
<body>
|
||||
<!-- HEADER NextGN Formation -->
|
||||
<header class="nav-header">
|
||||
<a href="../../index.html" class="header-logo">
|
||||
<span>NextGN</span> Formation
|
||||
</a>
|
||||
<nav class="header-nav">
|
||||
<header>
|
||||
<div class="logo">NextGN Formation</div>
|
||||
<nav>
|
||||
<a href="../../index.html">Accueil</a>
|
||||
<a href="../../index.html#formations">Formations</a>
|
||||
<a href="../../index.html#formations">Exercices</a>
|
||||
<a href="../../index.html#documentation">Documentation</a>
|
||||
<a href="../../index.html#rapports">Rapports</a>
|
||||
<a href="../../index.html#about">À propos</a>
|
||||
<a href="../../index.html#contact">Contact</a>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<!-- PROGRESS BAR -->
|
||||
<div class="progress">
|
||||
<div class="progress-bar">
|
||||
<div class="progress-fill" id="progress-fill"></div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user