בונים משחק ארבע בשורה: מתחילים בציור ובחוקי המשחק, מוסיפים שמירה ומחשב, ולבסוף משחקים דרך חדרי Firebase. כל פרק מתחיל במצב שעבד בסוף קודמו ומסתיים בתוצאה שאפשר להפעיל ולבדוק.
נקודת ההתחלה
הפרויקט כבר נוצר כ־Empty Views Activity, בשפת Java, עם XML ו־View Binding פעיל גם ב־Gradle וגם ב־MainActivity. הקוד משתמש בחבילה com.example.connect4. נדרשת היכרות עם מחלקות, מערכים, תנאים, לולאות ומתודות; מושגי Android החדשים נלמדים במקומם במסלול.
אין צורך ב־Python, ב־Colab או בידע באימון מודלים. המורה מספק את היריב המתקדם והנכסים שלו. אנחנו כותבים את חוקי המשחק, המחשב הפשוט והחיבור שמקבל צילום מצב ומחזיר פעולה.
| פרק | מה לומדים | מה עובד בסיום |
|---|---|---|
| 01 — לוח שמצויר ומגיב למגע | Canvas, גאומטריה ו־callback | לוח 6×7 מדווח על עמודה שנבחרה |
| 02 — דיסקיות, כוח כבידה ותורות | מערך, כוח כבידה, צילום מצב ותור | דיסקיות נופלות; עמודה מלאה נדחית; משחק חדש |
| 03 — מתי המשחק מסתיים? | ארבעה כיוונים, תיקו והגנת סיום | משחק מקומי שלם עם סימון הרביעייה |
| 04 — אותו משחק אחרי סיבוב ופתיחה מחדש | ViewModel, SharedPreferences ו־replay | המשחק חוזר לאחר סיבוב ופתיחה מחדש |
| 05 — מחשב פשוט שאפשר להסביר | ממשק שחקן, היוריסטיקה ו־Fragment | משחק נגד מחשב פשוט בכל אחד מהצבעים |
| 06 — תור מחשב ברקע בלי מהלכים ישנים | Executor, callback, ביטול וזהות בקשה | חישוב ברקע ללא החלת תוצאה ישנה |
| 07 — מחברים יריב מוכן של המורה | חבילת מורה, קטלוג ו־fallback | שלושה מודלים נבחרים פועלים offline |
| 08 — זהות משתמש לפני משחק רשת | Firebase Auth וזרימה אסינכרונית | יצירת חשבון, כניסה ויציאה באימייל |
| 09 — כניסה עם חשבון Google | Credential Manager וזהות Firebase | זרימת כניסה עם Google ותקלות הגדרה |
| 10 — לובי, חדרים ושני מושבים | לובי, push key, UID ו־transaction | אדום, צהוב וצופים בחדרים מתעדכנים |
| 11 — מהלך אחד, שלושה מסכים | היסטוריה, replay ועסקת מהלך | משחק משותף עם תוצאה זהה אצל המשתתפים |
| 12 — ניתוק, חזרה וסנכרון עם החדר | ניתוק, reconciliation ומחזור חיים | חזרה לחדר בלי מהלך כפול או צילום ישן כבסיס לקלט |
| 13 — מלטשים את האפליקציה ומאמתים את התוצר | משאבים, landscape, ניגודיות ומשוב | התצוגה הסופית ואימות המשחק בכל המצבים |
שלוש תחנות שאפשר להציג
- פרק 3: משחק מקומי שלם לשני אנשים.
- פרק 7: משחק מקומי, היריב הפשוט והיריב המסופק — ללא צורך בחשבון או ברשת.
- פרק 13: גם חשבונות, חדרים, צופים והתצוגה הסופית.
כל קובץ הוא מיני־מדריך ולא התחייבות לשיעור של 45 דקות. פרקי המחשב והרשת יכולים להתפרס על כמה מפגשים. קוראים את ההסבר, מקלידים שינוי ממוקד ובודקים את התוצאה לפני שממשיכים.
מה המורה מספק ומה התלמיד כותב?
| תחום | אחריות |
|---|---|
| חוקי המשחק, ציור, מגע, שמירה, היוריסטיקה ורשת | התלמיד מיישם ומסביר לפי הפרקים |
| חיבור יריב למנוע, עבודה ברקע וביטול | התלמיד מיישם ומאמת |
| MCTS, קידוד טנזורים, טעינה ואימות של המודל והמודלים המאומנים | חבילת מורה מוכנה בפרק 7; לומדים את החוזה ולא את המימוש הפנימי |
| Firebase/OAuth וכללים במסד המשותף | הכנה של המורה לצד הסבר ובדיקה של זרימות הלקוח |
| בדיקות אוטומטיות ותיעוד האימות | חומר מורה מלווה; אין למחוק את בדיקות התבנית |
למורה ולמי שמתחזק את המסלול: תוכנית המימוש, checkpoints ומצב האימות. הכיסוי הוא של שילוב מודל מסופק; אין כאן קורס אימון ML או מימוש MCTS.