doron amir
 
דואר אלקטרוני:
 
 
סיסמה:
 
 
 
 
 
 
לוח פגישות
 
|
 
איזכור סיסמא
 
עברית
 
|
 
english
 
|
 
русский
 
 
 
doron amir
 
קורסים ותרגול
 
עמוד הבית
 
חבילות
הדרכה
 
החשבון שלי
 
אודות
דורון אמיר
 
צור קשר
 
מאגר תרגילים ופתרונות
 
מאמרי גולשים
 
קורס אנדרואיד

[006] תרגיל ב #C : יצירת קוד פולימורפי בהשראת המשחק Angry Birds


[006] תרגיל ב #C : יצירת קוד פולימורפי בהשראת המשחק Angry Birds בשיעור וידאו

 
תרגיל 006 מתוך אוסף תרגילים ב #C מומלץ למתכנתי NET. מתחילים המתכוננים להצלחה בבחינות ובראיונות עבודה כולל הכנה למבחני מיון ליחידת 8200 , ממר"מ , יחידת ראם (השב"כ) ועוד. תרגיל זה מיועד לאימון ותרגול ויש לבצע אותו בהתאם ללוח הזמנים המותאם לתרגיל זה ולחזור על התרגול עד לרמת שליטה מלאה בקוד.

תרגיל  מס'  006 תכנית למימוש קוד פולמורפי ב #C 

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

בעזרת טיפוסים אלו יש לייצג את המשחק "Angry Birds" לפי הכללים הבאים:

 

1.כל ציפור מכילה את המתודה fly אך המימוש שונה מסוג אחד של ציפור לאחר.

2.כל ציפור מכילה מתודה ייחודית שאינה נכללת בשאר סוגי הציפורים.

3.יש לאחסן את כל האובייטים הנוצרים מהטיפוסים השונים.

4.יש להפעיל את המתודה fly של כל הטיפוסים בנוסף למתודה הייחודית לכל טיפוס.

 

image_1

 

מסך תוצאת התרגיל

image_2

 

קוד התכנית לדוגמא:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
using System;
 
namespace DoronAmir
{
    public class Bird
    {
        public virtual void Fly()
        {
            Console.WriteLine("Fly fly away...");
        }
    }
 
    public class RedBird:Bird
    {
        public override void Fly()
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Red-Bird Fly fly away...");
        }
 
        public  void BreakIron()
        {
            Console.WriteLine("i'm breaking this iron now");
        }
    }
 
    public class BlueBird : Bird
    {
        public override void Fly()
        {
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Blue-Bird Fly fly away...");
        }
        public  void SplitPices()
        {
            Console.WriteLine("i'm Splitting for 3 pieces now");
        }
    }
 
    public class GreenBird : Bird
    {
        public override void Fly()
        {
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Green-Bird Fly fly away...");
        }
        public  void eatApple()
        {
            Console.WriteLine("i'm eating an apple now");
        }
    }
 
    public class MyClass
    {
        public static void Main()
        {
            Bird[] birds = new Bird[]{
            new RedBird(),
            new BlueBird(),
            new GreenBird(),
            new RedBird(),
            new BlueBird(),
            };
 
            start(birds);
        }
 
        public static void start(Bird[] birds)
        {
            foreach (Bird b in birds)
            {
                Console.WriteLine("-------------------------");
                b.Fly();
                if (b is RedBird)
                {
                    ((RedBird)b).BreakIron();
                }
                else if (b is BlueBird)
                {
                    ((BlueBird)b).SplitPices();
                }
                else if (b is GreenBird)
                {
                    ((GreenBird)b).eatApple();
                }
                else
                {
                    Console.WriteLine("Just bird type");
                }
 
 
            }
            Console.WriteLine("-------------------------");
        }
    }
}

 

חזרה לרשימת השיעורים הטקסטואליים
 
 
אפליקציות אפל
אפליקציות אנדרואיד
001 קורס אנדראויד באתר