בתכלס הלוגיקה פשוטה..כל עוד אין מנצח ויש עוד מקום בלוח אתה משחק.
שחקן יכול לבחור מקום לא תפוס ולשים את ה(איקס או עיגול).
בכל סוף תור אתה בודק נצחון(יש ממש קצת אפשרויות) וזהו..שומר את התוצאות בבסיס נתונים.מבחינת קלאסים:
קלאס של לוח שיחזיק מטרציה של 3X3.
קלאס של שחקן שיחזיק פרטים על השחקן, את החייל שלו ב enum וכו'.
קלאס של משחק שיחזיק לוח ו 2 שחקנים ויממש כל מיני פונקציות כמו:
playTurn, isWinner, isGameDone וכו'..
בנוגע לדאטה בייס..זה די פשוט בהנחה ואתה צריך לעשות לוח שיאים. אתה מחזיק שם ומספר נצחונות. אם אתה מתעקש להתעמק, אז תבקש מכל שחקן שיכניס ת"ז בתחילת המשחק וזה יכול להיות סוג של מפתח בשבילך(כדי שלא יהיו 2 עם אותו שם).
הנה מחיפוש בגוגל קח כמה פרויקטים(הטובים כתובים ב CSHARP אבל זה ממש דומה) שאפשר לקבל רעיון\להעתיק:
http://vbprogramming.8k.com/tutorials/tic-tac-toe.htm
http://www.codeproject.com/Articles/100390/Tic-Tac-Toe-Implemented-in-C-with-Computer-Player
http://www.codeproject.com/Articles/432297/Tic-Tac-Toe-Game-Programming-Using-Csharp
http://www.codeproject.com/Articles/2400/Tic-Tac-Toe-in-C