במסגרת קורס הפרולוג, נתבקשתי לכתוב פרוייקט.
בחרתי במנוע שחמט, וחיברתי לו ממשק משתמש שכתוב בג'אווה (Jin).
החיבור בין פרולוג לג'אווה מתבצע באמצעות API בשם JPL.
אחרי שסיימתי לפתח, גיליתי שלמרות שכל הרכיבים של הפרוייקט (SWI-Prolog, Java) כוללים גרסאת חלונות – העסק לא עובד בחלונות, עקב בעיה בJPL שגורמת למערכת להתקע בחלונות.
במקום לנסות לפתור את הבעיה החלטתי לעקוף אותה בכך שאני אגיש את הפרוייקט על לינוקס.
מכיוון שההתקנה של הפרוייקט לא טריויאלית – צריך להתקין ג'אווה, את הגרסא המתאימה של SWI-Prolog, ואולי גם לשנות מסלולי קבצים בקובץ ההרצה בהתאם, החלטתי להשתמש בגרסא מותאמת של Live CD, שמכילה התקנה מוכנה של כל העסק.
בדקתי את DSL, אבל הוא היה בסיסי מדי ולא היו בו מספיק כלים כדי שאני ארגיש איתו בנוח.
ניסתי את KNOPPIX, שבהחלט היה עשיר מספיק, ונראה מתאים מאוד.
לKNOPPIX יש הוראות מפורטות להכנה של דיסק מותאם על בסיס הקיים (Remastering).
בגדול, התהליך הוא כזה:
מתאחלים את הCD, מעתיקים את התוכן שלו לכונן הקשיח, עושים את השינויים הדרושים, יוצרים ISO חדש, וצורבים אותו.
כמובן שזה יותר מורכב מזה, אבל ההוראות די טובות.
אפשר לקצר תהליכים על ידי שימוש במכונה וירטואלית (VMware, QEmu, Xen) שחוסכת איתחולים.
נתקלתי בבעיות מוזרות בבמהלך איתחול מהISO בהתחלה, לא ברור לי מה פתר אותן, אבל אלו השינויים שעשיתי:
1. התחלתי את התהליך כולו מחדש, הפעם על מערכת קבצים מסוג EXT3 (בהתחלה השתמשתי בReiserFS).
2. נתתי למכונה הווירטואלית ששימשה ליצירת הISO יותר זכרון.
לא ברור לי למה השינויים האלו פתרו את הבעיה, אבל עם מה שעובד לא מתווכחים.
לכתוב מנוע שחמט. תמיד נראה לי אחד הדברים המסובכים.
מרשים ביותר.
לא ראית אותו משחק ;).
האמת, זה לא כזה מסובך כמו שאתה עלול חשוב.
לכתוב מנוע שחמט _טוב_ זה כבר סיפור אחר, אבל הבעיה המרכזית היא בעיה של כוח עיבוד וקידוד פונקצית הערכה סטטית טובה ומהירה (חוזרים לכוח עיבוד).
ממה, אוקיי. לא אומר לי הרבה כי אני לא מספיק מבין בזה.