מאחורי הקלעים: איך PriceGuess עובד מבפנים
4 במרץ 2026 · 6 דק׳ קריאה
PriceGuess Israel הוא לא סתם משחק ניחושים — מאחוריו עומדת מערכת שלמה שאוספת מוצרים אמיתיים, מנהלת דירוגים, ומריצה משחקים מרובי-שחקנים בזמן אמת. במאמר הזה נצלול לעומק ונגלה איך הכל עובד.
🛒 מאיפה באים המוצרים?
כל יום, סקריפט אוטומטי (CRON Worker) פונה לאתר המחירים של שופרסל ואוסף מוצרים אקראיים עם מחירים אמיתיים ועדכניים. הסקריפט מחפש קבצי XML של מחירים, מנתח אותם, ובוחר מוצרים אקראיים עם שמות, תמונות ומחירים.
כל יום נאספים כ-10 מוצרים ייחודיים, ומתוכם נבחר אחד כאתגר היומי. הבחירה נעשית באופן דטרמיניסטי — כלומר כל מי שנכנס למשחק באותו יום, רואה בדיוק את אותו מוצר.
🧠 לוגיקת המשחק
כשאתם מנחשים מחיר, המשחק מחשב:
- אחוז הסטייה — כמה רחוק הניחוש שלכם מהמחיר האמיתי, באחוזים.
- קרבה — אם ההפרש עד 15%, הניחוש נחשב "קרוב" (צהוב). מעל 15% — "רחוק" (אדום).
- כיוון — חץ למעלה אם המחיר האמיתי גבוה יותר, חץ למטה אם נמוך יותר.
- דיוק — הפרש של פחות מחצי אגורה נחשב "מדויק" (ירוק) ומזכה בניצחון.
כל ההגיון הזה רץ בצד הלקוח (client-side), כך שאין עיכובי רשת. המחיר האמיתי כבר נמצא בדפדפן שלכם — כן, גם אם תפתחו את כלי המפתחים תוכלו למצוא אותו. אבל מה הכיף בזה?
⚔️ מערכת ה-1v1
מצב ה-1v1 הוא הפיצ'ר הטכנולוגי הכי מרשים במשחק. הוא מבוסס על Durable Objects של Cloudflare — טכנולוגיה ייחודית שמאפשרת לשמור מצב (state) על ה-edge, קרוב לשחקנים. כל חדר משחק הוא Durable Object נפרד, עם WebSocket connections לשני השחקנים.
כשאתם יוצרים חדר, Durable Object חדש נוצר על ה-edge הכי קרוב אליכם. כשהחבר שלכם מצטרף, שניכם מחוברים לאותו Object דרך WebSocket, ומקבלים עדכונים בזמן אמת — בלי polling, בלי עיכובים.
🏆 מערכת הדירוג
מערכת הדירוג מבוססת על שיטת ELO, הידועה מעולם השחמט. כל שחקן מתחיל עם 1,000 נקודות דירוג. ניצחון מוסיף נקודות והפסד מוריד, אבל הכמות תלויה בדירוג של היריב.
דרגות הדירוג:
- 🥉 ברונזה — 0-1199 נקודות
- 🥈 כסף — 1200-1399 נקודות
- 🥇 זהב — 1400-1599 נקודות
- 💎 פלטינום — 1600-1799 נקודות
- 👑 יהלום — 1800+ נקודות
☁️ הכל על ה-edge
PriceGuess רץ לגמרי על תשתית Cloudflare, ללא שרת מסורתי:
- Cloudflare Workers — מריצים את הקוד הראשי (Astro SSR) על ה-edge, קרוב לכל משתמש.
- D1 Database — מסד נתונים SQLite מבוזר שמחזיק את המוצרים, המשתמשים והדירוגים.
- Durable Objects — מנהלים את מצב משחקי ה-1v1 בזמן אמת.
- Workers Assets — מגישים את כל הקבצים הסטטיים (HTML, CSS, JS, תמונות).
היתרון הגדול? המשחק נטען מהר מכל מקום בעולם, והעלויות אפסיות — הכל רץ על ה-free tier של Cloudflare.
🔓 אימות וביטחון
ההתחברות נעשית דרך Google OAuth — פשוט ומאובטח. לא שומרים סיסמאות, רק מזהה Google ייחודי. הסשן נשמר ב-JWT cookie מוצפן עם תוקף של 30 ימים. כל הנתונים עוברים ב-HTTPS, וה-cookies מוגדרים כ-HttpOnly ו-SameSite.