Spaces:
Sleeping
Sleeping
Changes shuffling logic on seed
Browse files
script.js
CHANGED
@@ -1,3 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
async function fetchRestaurants() {
|
2 |
const response = await fetch('restaurants.json');
|
3 |
if (!response.ok) {
|
@@ -7,22 +31,11 @@ async function fetchRestaurants() {
|
|
7 |
return data;
|
8 |
}
|
9 |
|
10 |
-
function seededRandom(seed) {
|
11 |
-
var x = Math.sin(seed++) * 10000;
|
12 |
-
return x - Math.floor(x);
|
13 |
-
}
|
14 |
|
15 |
function getRandomRestaurants(restaurants, seed) {
|
16 |
// Generate three random indices based on the seed
|
17 |
-
|
18 |
-
|
19 |
-
const randomIndex = Math.floor(seededRandom(seed + i) * restaurants.length);
|
20 |
-
indices.push(randomIndex);
|
21 |
-
}
|
22 |
-
|
23 |
-
// Get the corresponding restaurants
|
24 |
-
const randomRestaurants = indices.map(index => restaurants[index]);
|
25 |
-
return randomRestaurants;
|
26 |
}
|
27 |
|
28 |
async function displayRestaurants() {
|
@@ -59,6 +72,7 @@ async function displayRestaurants() {
|
|
59 |
const restaurants = await fetchRestaurants();
|
60 |
console.log('Fetched Restaurants:', restaurants); // Debugging: Print fetched restaurants
|
61 |
const seed = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate(); // Create a seed from the date
|
|
|
62 |
const randomRestaurants = getRandomRestaurants(restaurants, seed);
|
63 |
console.log('Random Restaurants:', randomRestaurants); // Debugging: Print random restaurants
|
64 |
document.getElementById('restaurants').innerHTML = randomRestaurants.map(restaurant =>
|
|
|
1 |
+
function shuffle(array, seed) { // <-- ADDED ARGUMENT
|
2 |
+
var m = array.length, t, i;
|
3 |
+
|
4 |
+
// While there remain elements to shuffle…
|
5 |
+
while (m) {
|
6 |
+
|
7 |
+
// Pick a remaining element…
|
8 |
+
i = Math.floor(random(seed) * m--); // <-- MODIFIED LINE
|
9 |
+
|
10 |
+
// And swap it with the current element.
|
11 |
+
t = array[m];
|
12 |
+
array[m] = array[i];
|
13 |
+
array[i] = t;
|
14 |
+
++seed // <-- ADDED LINE
|
15 |
+
}
|
16 |
+
|
17 |
+
return array;
|
18 |
+
}
|
19 |
+
|
20 |
+
function random(seed) {
|
21 |
+
var x = Math.sin(seed++) * 10000;
|
22 |
+
return x - Math.floor(x);
|
23 |
+
}
|
24 |
+
|
25 |
async function fetchRestaurants() {
|
26 |
const response = await fetch('restaurants.json');
|
27 |
if (!response.ok) {
|
|
|
31 |
return data;
|
32 |
}
|
33 |
|
|
|
|
|
|
|
|
|
34 |
|
35 |
function getRandomRestaurants(restaurants, seed) {
|
36 |
// Generate three random indices based on the seed
|
37 |
+
randomRestaurants = shuffle(restaurants, seed);
|
38 |
+
return randomRestaurants.slice(0,3);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
}
|
40 |
|
41 |
async function displayRestaurants() {
|
|
|
72 |
const restaurants = await fetchRestaurants();
|
73 |
console.log('Fetched Restaurants:', restaurants); // Debugging: Print fetched restaurants
|
74 |
const seed = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate(); // Create a seed from the date
|
75 |
+
console.log('Random seed per day: ', seed);
|
76 |
const randomRestaurants = getRandomRestaurants(restaurants, seed);
|
77 |
console.log('Random Restaurants:', randomRestaurants); // Debugging: Print random restaurants
|
78 |
document.getElementById('restaurants').innerHTML = randomRestaurants.map(restaurant =>
|