mirror of
https://github.com/resendecode/nuitdelinfo.git
synced 2026-05-13 17:21:55 +00:00
Fix Index Problem
This commit is contained in:
+15
-6
@@ -157,7 +157,7 @@ function getImg2(categorie, indice){
|
|||||||
|
|
||||||
async function getQuestionByCategorie2(category) {
|
async function getQuestionByCategorie2(category) {
|
||||||
try {
|
try {
|
||||||
const response = await fetch(`./${category}.json`);
|
const response = await fetch(`./resources/${category}.json`);
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
throw new Error(`Erreur de chargement du fichier JSON : ${response.status}`);
|
throw new Error(`Erreur de chargement du fichier JSON : ${response.status}`);
|
||||||
@@ -201,14 +201,23 @@ async function getQuestionByCategorie2(category) {
|
|||||||
return indicesArray.shift();
|
return indicesArray.shift();
|
||||||
}
|
}
|
||||||
|
|
||||||
const votreTableau = await getQuestionByCategorie2('transport');
|
// const votreTableau = await getQuestionByCategorie2('transport');
|
||||||
const shuffledIndices = createShuffledIndicesArray(votreTableau);
|
// const shuffledIndices = createShuffledIndicesArray(votreTableau);
|
||||||
|
|
||||||
// À chaque appel, récupérez le prochain indice
|
async function main() {
|
||||||
const premierIndice = getNextIndex(shuffledIndices);
|
// Faites quelque chose avec votreTableau
|
||||||
|
const votreTableau = await getQuestionByCategorie2('Transport');
|
||||||
|
const shuffledIndices = createShuffledIndicesArray(votreTableau);
|
||||||
|
const premierIndice = getNextIndex(shuffledIndices);
|
||||||
const deuxiemeIndice = getNextIndex(shuffledIndices);
|
const deuxiemeIndice = getNextIndex(shuffledIndices);
|
||||||
|
|
||||||
console.log(premierIndice); // Indice aléatoire
|
console.log(premierIndice); // Indice aléatoire
|
||||||
console.log(deuxiemeIndice); // Indice différent
|
console.log(deuxiemeIndice);
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
|
|
||||||
|
// À chaque appel, récupérez le prochain indice
|
||||||
|
// Indice différent
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"description":"Les voitures individuelles, en particulier celles qui fonctionnent aux carburants fossiles, ont souvent une consommation élevée de carburant par kilomètre parcouru, ce qui contribue aux émissions de gaz à effet de serre."
|
"description":"Les voitures individuelles, en particulier celles qui fonctionnent aux carburants fossiles, ont souvent une consommation élevée de carburant par kilomètre parcouru, ce qui contribue aux émissions de gaz à effet de serre."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "Le réseau de trains à grande vitesse (TGV) en France est-il souvent salué pour ses faibles émissions de gaz à effet de serre, principalement grâce à l'utilisation d'énergies renouvelables pour son fonctionnement ?",
|
"question": "Le réseau de trains à grande vitesse (TGV) en France est-il souvent salué pour ses faibles émissions de gaz à effet de serre, principalement grâce à l'utilisation d'énergies renouvelables pour son fonctionnement ?",
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"text": "Vrai",
|
"text": "Vrai",
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"text": "Comment la France encourage-t-elle l'adoption de véhicules électriques?",
|
"question": "Comment la France encourage-t-elle l'adoption de véhicules électriques?",
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"text":"Par des incitations fiscales",
|
"text":"Par des incitations fiscales",
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
"description":" le gouvernement français offre des avantages fiscaux, tels que des réductions d'impôts ou des crédits d'impôt, pour inciter les citoyens à opter pour des véhicules électriques. Ces incitations fiscales visent à stimuler le marché des véhicules électriques en rendant ces alternatives plus attrayantes sur le plan financier, contribuant ainsi à réduire les émissions de gaz à effet de serre liées au secteur des transports."
|
"description":" le gouvernement français offre des avantages fiscaux, tels que des réductions d'impôts ou des crédits d'impôt, pour inciter les citoyens à opter pour des véhicules électriques. Ces incitations fiscales visent à stimuler le marché des véhicules électriques en rendant ces alternatives plus attrayantes sur le plan financier, contribuant ainsi à réduire les émissions de gaz à effet de serre liées au secteur des transports."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "Quelle ville française a mis en œuvre un système de location de vélos très populaire pour promouvoir des modes de transport plus durables?",
|
"question": "Quelle ville française a mis en œuvre un système de location de vélos très populaire pour promouvoir des modes de transport plus durables?",
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"text": "Paris",
|
"text": "Paris",
|
||||||
@@ -60,10 +60,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"reponse": 0,
|
"reponse": 0,
|
||||||
"description":"Paris a mis en place un système de location de vélos, connu sous le nom de "Vélib'", pour encourager des modes de transport durables. Cette initiative vise à réduire la dépendance aux véhicules individuels motorisés."
|
"description":"Paris a mis en place un système de location de vélos, connu sous le nom de velib, pour encourager des modes de transport durables. Cette initiative vise à réduire la dépendance aux véhicules individuels motorisés."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "Le réseau de trains à grande vitesse (TGV) en France utilise-t-il principalement des énergies renouvelables, ce qui contribue à des émissions de gaz à effet de serre plus faibles ?",
|
"question": "Le réseau de trains à grande vitesse (TGV) en France utilise-t-il principalement des énergies renouvelables, ce qui contribue à des émissions de gaz à effet de serre plus faibles ?",
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"text": "Vrai",
|
"text": "Vrai",
|
||||||
|
|||||||
@@ -25,65 +25,3 @@ function fonction_marrante() {// Charger le contenu du fichier JSON
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// retourne random index
|
|
||||||
|
|
||||||
async function getQuestionByCategorie2(category) {
|
|
||||||
try {
|
|
||||||
const response = await fetch(`./${category}.json`);
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(`Erreur de chargement du fichier JSON : ${response.status}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const objetJson = await response.json();
|
|
||||||
const questions = objetJson.questions;
|
|
||||||
|
|
||||||
console.log(questions);
|
|
||||||
return questions;
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Erreur lors du chargement du fichier JSON :', error.message);
|
|
||||||
alert('Erreur lors du chargement du fichier JSON. Consultez la console pour les détails.');
|
|
||||||
throw error; // Re-throw the error for further handling
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
console.log(getQuestionByCategorie2("transport"))
|
|
||||||
|
|
||||||
function shuffleArray(array) {
|
|
||||||
const shuffledArray = [...array];
|
|
||||||
for (let i = shuffledArray.length - 1; i > 0; i--) {
|
|
||||||
const j = Math.floor(Math.random() * (i + 1));
|
|
||||||
[shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]];
|
|
||||||
}
|
|
||||||
return shuffledArray;
|
|
||||||
}
|
|
||||||
|
|
||||||
function createShuffledIndicesArray(array) {
|
|
||||||
const indicesArray = Array.from({ length: array.length }, (_, index) => index);
|
|
||||||
return shuffleArray(indicesArray);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getNextIndex(indicesArray) {
|
|
||||||
if (indicesArray.length === 0) {
|
|
||||||
// Si tous les indices ont été utilisés, réinitialiser le tableau d'indices
|
|
||||||
return null; // ou une autre valeur pour indiquer que tous les indices ont été utilisés
|
|
||||||
}
|
|
||||||
// Retourner et retirer le premier indice du tableau
|
|
||||||
return indicesArray.shift();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Utilisez ces fonctions comme suit :
|
|
||||||
|
|
||||||
// const votreTableau = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"];
|
|
||||||
const votreTableau = await getQuestionByCategorie2('transport');
|
|
||||||
const shuffledIndices = createShuffledIndicesArray(votreTableau);
|
|
||||||
|
|
||||||
// À chaque appel, récupérez le prochain indice
|
|
||||||
const premierIndice = getNextIndex(shuffledIndices);
|
|
||||||
const deuxiemeIndice = getNextIndex(shuffledIndices);
|
|
||||||
|
|
||||||
console.log(premierIndice); // Indice aléatoire
|
|
||||||
console.log(deuxiemeIndice); // Indice différent
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@
|
|||||||
Testez-vous dès maintenant pour une expérience éducative et
|
Testez-vous dès maintenant pour une expérience éducative et
|
||||||
amusante.
|
amusante.
|
||||||
</p>
|
</p>
|
||||||
<button id="btnjouer"><a href="./jouer.html"></a>Essayer ce jeu</button>
|
<button id="btnjouer"><a href="./jouer.html">Essayer ce jeu</a></button>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+81
-82
@@ -1,120 +1,119 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Mon site ecolo | Jeu </title>
|
<title>Mon site ecolo | Jeu </title>
|
||||||
<link rel="icon" href="img/logo.svg" type="image/svg">
|
<link rel="icon" href="img/logo.svg" type="image/svg">
|
||||||
<link rel="stylesheet" href="style/init.css">
|
<link rel="stylesheet" href="style/init.css">
|
||||||
<link rel="stylesheet" href="style/navbarVertical.css">
|
<link rel="stylesheet" href="style/navbarVertical.css">
|
||||||
<link rel="stylesheet" href="style/jeu.css">
|
<link rel="stylesheet" href="style/jeu.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar" id="navbar">
|
<nav class="navbar" id="navbar">
|
||||||
<div class="nav-links">
|
<div class="nav-links">
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<img src="./img/logo.svg" alt="Logo" width="40">
|
<img src="./img/logo.svg" alt="Logo" width="40">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a href="#" class="nav-link">Commerces</a>
|
<a href="#" class="nav-link">Commerces</a>
|
||||||
<a href="#" class="nav-link">Habitats</a>
|
<a href="#" class="nav-link">Habitats</a>
|
||||||
<a href="#" class="nav-link">Phénomènes</a>
|
<a href="#" class="nav-link">Phénomènes</a>
|
||||||
<a href="#" class="nav-link">Energies</a>
|
<a href="#" class="nav-link">Energies</a>
|
||||||
<a href="#" class="nav-link">Transports</a>
|
<a href="#" class="nav-link">Transports</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="arrow">
|
<div class="arrow">
|
||||||
<label for="toggleNavbar">
|
<label for="toggleNavbar">
|
||||||
<img src="./img/arrow.svg" alt="arrow" width="10">
|
<img src="./img/arrow.svg" alt="arrow" width="10">
|
||||||
</label>
|
</label>
|
||||||
<input id="toggleNavbar" type="checkbox">
|
<input id="toggleNavbar" type="checkbox">
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div id="starContainer">
|
<div id="starContainer">
|
||||||
<div class="star" id="star5"></div>
|
<div class="star" id="star5"></div>
|
||||||
<div class="star" id="star4"></div>
|
<div class="star" id="star4"></div>
|
||||||
<div class="star" id="star3"></div>
|
<div class="star" id="star3"></div>
|
||||||
<div class="star" id="star2"></div>
|
<div class="star" id="star2"></div>
|
||||||
<div class="star" id="star1"></div>
|
<div class="star" id="star1"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="choices">
|
<div class="choices">
|
||||||
<section id="left">
|
<section id="left">
|
||||||
<img class="image" id="imgleft" src="./img/imgleft.png"
|
<img class="image" id="imgleft" src="./img/imgleft.png" alt="imgleft">
|
||||||
alt="imgleft">
|
</section>
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id="right">
|
<section id="right">
|
||||||
<img class="image" id="imgright" src="./img/imgright.webp"
|
<img class="image" id="imgright" src="./img/imgright.webp" alt="imgright">
|
||||||
alt="imgright">
|
</section>
|
||||||
</section>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="question">
|
<div class="question">
|
||||||
<h2>Question</h2>
|
<h2>Question</h2>
|
||||||
<p>Lorem ipsum</p>
|
<p>Lorem ipsum</p>
|
||||||
<button class="hide">Question suivante</button>
|
<button class="hide">Question suivante</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
const rightSection = document.getElementById('right');
|
||||||
|
const leftSection = document.getElementById('left');
|
||||||
|
const buttonElement = document.querySelector('button');
|
||||||
|
|
||||||
<script>
|
rightSection.addEventListener('click', () => {
|
||||||
const rightSection = document.getElementById('right');
|
rightSection.classList.remove('hide');
|
||||||
const leftSection = document.getElementById('left');
|
leftSection.classList.add('hide');
|
||||||
const buttonElement = document.querySelector('button');
|
buttonElement.classList.remove('hide');
|
||||||
|
});
|
||||||
|
|
||||||
rightSection.addEventListener('click', () => {
|
leftSection.addEventListener('click', () => {
|
||||||
rightSection.classList.remove('hide');
|
leftSection.classList.remove('hide');
|
||||||
leftSection.classList.add('hide');
|
rightSection.classList.add('hide');
|
||||||
buttonElement.classList.remove('hide');
|
buttonElement.classList.remove('hide');
|
||||||
});
|
});
|
||||||
|
|
||||||
leftSection.addEventListener('click', () => {
|
buttonElement.addEventListener('click', () => {
|
||||||
leftSection.classList.remove('hide');
|
augmenterCompteur();
|
||||||
rightSection.classList.add('hide');
|
buttonElement.classList.add('hide');
|
||||||
buttonElement.classList.remove('hide');
|
|
||||||
});
|
|
||||||
|
|
||||||
buttonElement.addEventListener('click', () => {
|
rightSection.classList.remove('hide');
|
||||||
augmenterCompteur();
|
leftSection.classList.remove('hide');
|
||||||
buttonElement.classList.add('hide');
|
});
|
||||||
|
|
||||||
rightSection.classList.remove('hide');
|
let score = 20;
|
||||||
leftSection.classList.remove('hide');
|
|
||||||
});
|
|
||||||
|
|
||||||
let score = 20;
|
function augmenterCompteur() {
|
||||||
|
score += 5;
|
||||||
|
|
||||||
function augmenterCompteur() {
|
if (score >= 5) {
|
||||||
score += 5;
|
document.getElementById('star1').style.visibility = 'visible';
|
||||||
|
}
|
||||||
if (score >= 5) {
|
if (score >= 10) {
|
||||||
document.getElementById('star1').style.visibility = 'visible';
|
document.getElementById('star2').style.visibility = 'visible';
|
||||||
}
|
}
|
||||||
if (score >= 10) {
|
if (score >= 15) {
|
||||||
document.getElementById('star2').style.visibility = 'visible';
|
document.getElementById('star3').style.visibility = 'visible';
|
||||||
}
|
|
||||||
if (score >= 15) {
|
|
||||||
document.getElementById('star3').style.visibility = 'visible';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (score >= 20) {
|
|
||||||
document.getElementById('star4').style.visibility = 'visible';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (score >= 25) {
|
|
||||||
document.getElementById('star5').style.visibility = 'visible';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (score === 25) {
|
|
||||||
window.location.href = './easterEggEtoile.html';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</script>
|
|
||||||
|
|
||||||
</div>
|
if (score >= 20) {
|
||||||
|
document.getElementById('star4').style.visibility = 'visible';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (score >= 25) {
|
||||||
|
document.getElementById('star5').style.visibility = 'visible';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (score === 25) {
|
||||||
|
window.location.href = './easterEggEtoile.html';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user