From 1ea58e597d860cf524bb26cafeb50e2b6705333e Mon Sep 17 00:00:00 2001
From: Moon <108756201+LifeAdventurer@users.noreply.github.com>
Date: Sat, 4 Nov 2023 11:09:16 +0800
Subject: [PATCH] Fix: event collide
---
fortune_generator/fortune.js | 33 ++++++++++++++++++++++++---------
1 file changed, 24 insertions(+), 9 deletions(-)
diff --git a/fortune_generator/fortune.js b/fortune_generator/fortune.js
index b798c89..5de1633 100644
--- a/fortune_generator/fortune.js
+++ b/fortune_generator/fortune.js
@@ -15,8 +15,8 @@ fetch("fortune.json")
const textColor = ["#e74c3c", "#e74c3c", "#e74c3c", "#70ad47", "#000000bf", "#000000bf", "#000000bf"];
const fortuneStatus = ["大吉", "中吉", "小吉", "中平", "凶", "小凶", "大凶"];
-const allGood = `萬事皆吉`;
-const allBad = `萬事皆凶`;
+const allGood = `萬事皆宜`;
+const allBad = `諸事不宜`;
function Appear() {
let p = 0;
@@ -28,23 +28,38 @@ function Appear() {
}
num[p] = num[p] * 10 + parseInt(ip[i]);
}
+
let d = new Date();
- let seed = (num[0] >> 3) * (num[1] >> 2) + (num[2] << 1) * (num[3] >> 3) + (d.getDate() << 3) * ((d.getMonth() + 1) << 5) + 2;
+ let seed = (num[0] >> 3) * (num[1] >> 2) + (num[2] << 1) * (num[3] >> 3) + (d.getDate() << 3) * ((d.getMonth() + 1) << 5) + d.getFullYear();
const len = fortunes.length;
+
let status = `§ ${fortuneStatus[seed % 7]} §`;
$('#ip-to-fortune').html(status);
+
let left_1, left_2, right_1, right_2;
- left_1 = `宜: ${fortunes[seed % len].event}`;
- left_2 = `宜: ${fortunes[(seed + d.getDate()) % len].event}`;
- right_1 = `忌: ${fortunes[seed % len + d.getMonth()].event}`;
- right_2 = `忌: ${fortunes[(seed + d.getDate() + 1) % len].event}`;
+ let l1, l2, r1, r2;
+ let set = new Set();
+ l1 = seed % len;
+ set.add(l1);
+ l2 = (seed + d.getDate()) % len;
+ while(set.has(l2)) l2 = (l2 + 1) % len;
+ set.add(l2);
+ r1 = (seed + d.getMonth() << 3) % len;
+ while(set.has(r1)) r1 = (r1 + 2) % len;
+ set.add(r1);
+ r2 = (seed + (d.getFullYear() >> 5) * (d.getDate << 2)) % len;
+ while(set.has(r2)) r2 = (r2 + 1) % len;
+ left_1 = `宜: ${fortunes[l1].event}`;
+ left_2 = `宜: ${fortunes[l2].event}`;
+ right_1 = `忌: ${fortunes[r1].event}`;
+ right_2 = `忌: ${fortunes[r2].event}`;
if(seed % 7 == 0){
- $('#right-1').html(allBad);
+ $('#right-1').html(allGood);
$('#left-1').html(left_1);
$('#left-2').html(left_2);
}
else if(seed % 7 == 6){
- $('#left-1').html(allGood);
+ $('#left-1').html(allBad);
$('#right-1').html(right_1);
$('#right-2').html(right_2);
}