<< קורס אונליין חינם
Menu
עברית Русский
מכללת פרקטיקיו
- מתחילים ללמוד חינם -
קורסי תכנות / סייבר / ניהול רשת
קורסים למנהלי רשת מסלול מנהלי רשת
עם התמחות בשרתי מיקרוסופט
מסלול סייבר והאקינג - Hacking מסלול תקשורת ואבטחת מידע
Cisco CCNA & FortiGate & Checkpoint
מומחה ווירטואליזציה
VMware & Hyper-V
מסלול לינוקס ו-DevOps מומחה ענן של אמזון - AWS מומחה ענן של מיקרוסופט - Azure מומחה ענן של גוגל - GCP מומחה שרתי SCCM - System Center
של מיקרוסופט לארגונים גדולים
קורסי תכנות מסלול Full Stack דוט-נט
יסודות התכנות
מסלול Full Stack דוט-נט
צד שרת - Backend
מסלול Full Stack דוט-נט
צד לקוח - Frontend
מסלול Full Stack Node.JS קורסי תכנות נוספים
Java / Python / PHP
מפתח אפליקציות - אנדרואיד - אייפון מפתח משחקי מחשב - Unity מפתח תוכנות לוונדוס - WinForms מסלול DBA
התמחות במסדי נתונים – SQL
בדיקות תוכנה - QA - אוטומציה בדיקות תוכנה - QA - בדיקות ידניות בדיקות תוכנה - QA - קורסים נוספים המלצות תלמידים על PracticU
הכוונה לבניית פרויקט סיום שפת #C למתחילים - פרויקט איקס עיגול

ראשית – מספר דגשים:

א.     יש לבצע חלוקה לפונקציות.

ב.     יש לבצע הפרדה בין פונקציות המבצעות חישובים לבין פונקציות המציגות מידע. כלומר פונקציה המבצעת חישוב לא תציג את תוצאת החישוב.

ג.      נכון יהיה להשתמש במטריצה המכילה את ערכי הלוח (3X3). החישובים רצים על המטריצה, הצעדים נכתבים במטריצה, ההצגה פשוט מציגה את המטריצה.

ד.      המשתמש מיוצג ע"י X והמחשב ע"י O. המשתמש תמיד מתחיל.

 

הכוונה לבניית המערכת:

א.     בניית Enum המכיל שלושה קבועים: תא ריק (שווה ל-0), תא המכיל X והמייצג את המשתמש (שווה ל-1), תא המכיל O והמייצג את המחשב (שווה ל-2).

ב.     בניית מטריצה בגודל 3X3 מסוג ה-Enum הנ"ל. על המטריצה להכיל בתור התחלה רק קבועים מסוג תא ריק. אם קבוע זה יהיה שווה לאפס, הוא אוטומטית יהיה בכל התאים.

ג.      בניית פונקציה המקבלת את המטריצה ומציגה אותה על המסך. תא המכיל X יציג X, תא המכיל O יציג O, תא ריק יציג מספר רץ בכדי שהמשתמש ידע להכניס מספר המייצג את התא הזה.

ד.      בניית פונקציה המבקשת מהמשתמש להכניס מיקום (לדוגמה מספר בין 1 ל-9 המייצג את תאי המטריצה) ומחזירה את המיקום שהוא הכניס.

ה.     בניית פונקציה המקבלת את המטריצה ואת המיקום שהמשתמש הכניס, ומכניסה למיקום זה X המייצג את המשתמש.

ו.       בניית פונקציה המקבלת את המטריצה ומחזירה את המיקום הנכון ביותר עבור המחשב. על פונקציה זו לבדוק האם היא יכולה לנצח ע"י הנוהל הבא:

·        בדיקה ראשונה: האם יש שני O בשורה או בטור או באלכסון וניתן להכניס O נוסף באותה שורה או באותו טור או באותו אלכסון (כלומר התא הבא הינו ריק) וכך לנצח את המשתמש. אם כן – להחזיר מהפונקציה את המיקום הזה של התא הריק. אם לא – לעבור לבדיקה השנייה.

·        בדיקה שנייה: האם המשתמש יכול לנצח בשלב הבא עקב כך שיש לו שני X בשורה או בטור או באלכסון והוא יכול להכניס X נוסף באותה שורה או באותו טור או באותו אלכסון (כלומר התא הבא הינו ריק) וכך לנצח את המחשב. אם כן – יש לחסום אותו ולכן יש להחזיר מהפונקציה את המיקום הזה של התא הריק. אם לא – לעבור לבדיקה השלישית.

·        בדיקה שלישית: מציאת מיקום רנדומלי המכיל תא ריק במטריצה והחזרת מיקום זה.

ז.      בניית פונקציה המקבלת את המטריצה ואת המיקום שהמחשב מצא ומכניסה למיקום זה O המייצג את המחשב.

ח.     בניית פונקציה המקבלת את המטריצה ומחזירה true אם המשתמש ניצח, אחרת מחזירה false.

ט.     בניית פונקציה המקבלת את המטריצה ומחזירה true אם המחשב ניצח, אחרת מחזירה false.

י.       בניית פונקציה המקבלת את המטריצה ומחזירה true אם אין יותר תאים ריקים (אם אף אחד לא ניצח – זה אומר שהמצב הינו תיקו), אחרת מחזירה false.

יא.    בניית פונקציה המבצעת את התורות עצמן:

·        מנקה את המסך ומציגה את המטריצה (סעיף ג').

·        מבקשת מהמשתמש מיקום (סעיף ד').

·        מעדכנת את המטריצה במיקום שהמשתמש הכניס (סעיף ה').

·        מנקה את המסך ומציגה את המטריצה כך שניתן לראות היכן המשתמש הכניס X (סעיף ג').

·        בודקת האם המשתמש ניצח (סעיף ח'). אם כן – הצגת הודעה מתאימה וסיום המשחק. אם לא:

·        בודקת האם יש תיקו (סעיף י'). אם כן – הצגת הודעה מתאימה וסיום המשחק. אם לא:

·        מחשבת את הצעד הבא של המחשב (סעיף ו').

·        מעדכנת את המטריצה (סעיף ז').

·        בודקת האם המחשב ניצח (סעיף ט') . אם כן – הצגת הודעה מתאימה וסיום המשחק. אם לא:

·        חזרה להתחלת הלולאה בו היא מנקה את המסך ומציגה את המטריצה.

 

 

בהצלחה 😊