קה פרובלמה מואי צ'יקיטה?
לא ברור באיזה סוג אפליקציה מדובר - Winforms או ASP.Net. בגדול ובהמשך לתשובה של המגיב לפני, חשוב שה-GUI ידע לעשות שלושה דברים: 1. לשנות את השאלה הנשאלת 2. לשנות את התשובות המוצעות 3. להשיג את התשובה שנבחרה (לאחר שנבחרה או לאחר לחיצת כפתור) ולדעת מה השאלה הנוכחית באותו זמן. שאלה במקרה שלנו מוגדר כטקסט השאלה, התשובה הנכונה ואוסף של תשובות. תשובה היא טקסט בלבד. אמור להיות איפהשהו מנוע שידע לנהל את "בחירת השאלה" ביחס להיסטוריית השאלות והתשובות, ולשלוח את השאלה ל-GUI שכבר יטפל בהצגת השאלה וכל הקשור בכך. במהלך טעינת התוכנית בפעם הראשונה ולאחר בחירת תשובה, ה"מנוע" שלנו אמור להיקרא ולקבל את ההחלטה: איזה שאלה תוצג עכשיו ב-GUI? את השאלה הזאת צריך לשלוח ל-GUI בכל פעם מחדש. כאשר האפליקציה נטענת המנוע מבצע עבודה יחסית פשוטה, היות ואין לו שום היסטוריית שאלות. כאשר המשתמש בוחר תשובה ה-GUI שולח ל"מנוע" שלנו את השאלה הנוכחית עם התשובה שנבחרה, ויצפה לקבל בחזרה (מהמנוע) את השאלה הבאה להציג (או איזה סימן מוסכם שאין יותר שאלות). המנוע בתורו מקבל את השאלה (שחשוב להזכיר שמדובר באובייקט עם מאפיינים וכולל למשל את אוסף התשובות האפשריות) עם התשובה שנבחרה ואמור לדעת לשכלל לאור הבחירה הנוכחית והיסטוריית התשובות שנבחרו בעבר מהי השאלה הבאה. כמובן שהמנוע ישמור על State ביחס ללקוח. אם מדובר באפליקציה חלונאית, אז מערך סטטי (Static) ג'נרי (Generic) של תשובות יספיק, ואם מדובר ב-Web אז ניתן לשמור את המידע הזה ב-ViewState וכל פעם לקרוא ולכתוב מחדש את מערך התשובות שנבחרו בעבר. זה מימוש יחסית בסיסי, אבל סולידי ביחס ל-80% הראשונים.