مركز خميس للكمبيوترواللغات بلبيس شرقية

أهلا بكم فى مركز خميس للكمبيوتر واللغات
قم بتسجيل الدخول لكى تستفيد من كل المميزات الموجودة فى المركز
مركز خميس للكمبيوترواللغات بلبيس شرقية

(معاً من أجل التنمية والرخاء والعلم ) إعداد مستر ( السيد محمود السيد محمود)


    شرح كيفية برمجة لعبة Tic Tac Toe بسيطة باستخدام فيجوال بيسك دوت نت VB.Net

    شاطر

    حامد خالد

    عدد المساهمات : 26
    تاريخ التسجيل : 07/04/2011
    العمر : 27

    شرح كيفية برمجة لعبة Tic Tac Toe بسيطة باستخدام فيجوال بيسك دوت نت VB.Net

    مُساهمة من طرف حامد خالد في الخميس أبريل 07, 2011 11:12 pm

    lol! شرح كيفية برمجة لعبة Tic Tac Toe بسيطة باستخدام فيجوال بيسك دوت نت lol! Arrow VB.Net
    بسم الله الرحمن الرحيم


    الفكرة هنا لبرمجة لعبة Tic Tac Toe أو XO هوباستخدام الأزرار Buttons , حيث سيتم وضع 9 أزرار ويكون هناك لاعبين Players : 1 , 2 ويقوم البرنامج عند الضغط على زر معين بقراءه رقم اللاعب , فلو كان اللاعب الحالي هو 1 فانه سيقوم بتغيير نص الزر button text الى X وثم يغير قيمة اللاعب Players الى اللاعب الثاني 2 , والعكس صحيح لو كان الدور للاعب 2.

    بدايةً , اعمل مشروع جديد وأضف فيه
    Buttons بعدد 9



    سنقوم بعمل متغير عام نسميه Player وهو دور اللاعب سواء كان 1 او 2 , وفي بداية اللعبة سيكون دور اللاعب 1

    واللاعب 1 هو
    X بينما 2 هو Y



    كود PHP:
    Dim Player As String




    ضع الكود مباشرة تحت Public class form1

    والآن سنضيف الكود الآتي الى الحدث
    Form1_Load

    كود
    PHP:
    Timer1.Start()
    Player = "1"
    Button1.TabStop = False
    Button2.TabStop = False
    Button3.TabStop = False
    Button4.TabStop = False
    Button5.TabStop = False
    Button6.TabStop = False
    Button7.TabStop = False
    Button8.TabStop = False
    Button9.TabStop = False




    بعد ذلك أضف تايمر الى المشروع Timer1

    لاحظ في كود الحدث
    Form1_load بدأنا اولا عمل الساعة ثم عرفنا قيمة اللاعب بأنه 1 , وعطلنا ال TabStop لجميع الأزرار وهذا اختياري.

    الآن اضف في كل زر الكود الآتي

    كود
    PHP:
    If Player = "1" Then
    Button1.Text = "X"
    Button1.Enabled = False
    Player = "2"
    --Player2--
    ElseIf Player = "2" Then
    Button1.Text = "O"
    Button1.Enabled = False
    Player = "1"
    End If




    لاحظ أننا عملنا شرط , لو اللاعب = 1 اعمل كذا ولو كان 2 اعمل كذا

    يتم تغيير نص الزر الى
    X or O حسب اللاعب وثم قمنا يتعطيل الزر حتى لا يستطيع اللاعب التحكم فيه مرة اخرى وثم يتم تغيير قيمة متغير اللاعب الى الاعب الاخر...

    أضف نفس الكود الى جميع الازرار مع تغيير
    رقم الزر من 1 الى 9 حسب الزر

    الآن لو تشغل المشروع وتضغط على أي زر بتلاحظ
    أنه بكون X والزر الي بعده O والي بعده X وبعده O وهكذا...

    ولاحظ أيضا انه
    سيتم تعطيل الزر


    الآن باقي لنا نضيف الزر لتحديد هل اللاعب فاز او لا

    توجه الى اخر سطر أي كود حيث توجد كلمة
    End sub واضف في سطر جديد الآتي

    كود
    PHP:
    Private Sub TheWinner()

    End sub




    وأضف فيه الكود الآتي

    كود
    PHP:
    If Button1.Text = "X" And Btn2.Text = "X" And Button3.Text = "X" Then
    Timer1.Stop()
    MsgBox("Player 1 is the winner")
    ElseIf Button1.Text = "O" And Btn2.Text = "O" And Button3.Text = "O" Then
    Timer1.Stop()
    MsgBox("Player 2 is the winner")
    ElseIf Button1.Text = "O" And Button5.Text = "O" And Button9.Text = "O" Then
    Timer1.Stop()
    MsgBox("Player 2 is the winner")
    ElseIf Button1.Text = "X" And Button5.Text = "X" And Button9.Text = "X" Then
    Timer1.Stop()
    MsgBox("Player 1 is the winner")
    ElseIf Button1.Text = "X" And Button4.Text = "X" And Button7.Text = "X" Then
    Timer1.Stop()
    MsgBox("Player 1 is the winner")
    ElseIf Button1.Text = "O" And Button4.Text = "O" And Button7.Text = "O" Then
    Timer1.Stop()
    MsgBox("Player 2 is the winner")
    ElseIf Button3.Text = "X" And Button6.Text = "X" And Button9.Text = "X" Then
    Timer1.Stop()
    MsgBox("Player 1 is the winner")
    ElseIf Button3.Text = "O" And Button6.Text = "O" And Button9.Text = "O" Then
    Timer1.Stop()
    MsgBox("Player 2 is the winner")
    ElseIf Button3.Text = "X" And Btn5.Text = "X" And Button7.Text = "X" Then
    Timer1.Stop()
    MsgBox("Player 1 is the winner")
    ElseIf Button3.Text = "O" And Button5.Text = "O" And Button7.Text = "O" Then
    Timer1.Stop()
    MsgBox("Player 2 is the winner")
    ElseIf Button2.Text = "X" And ButtonTimer1.Stop()
    MsgBox("Player 1 is the winner")
    ElseIf Button2.Text = "O" And Button5.Text = "O" And Button8.Text = "O" Then
    Timer1.Stop()
    MsgBox("Player 2 is the winner")
    ElseIf Button7.Text = "O" And Button8.Text = "O" And Button9.Text = "O" Then
    Timer1.Stop()
    MsgBox("Player 2 is the winner")
    ElseIf Button7.Text = "X" And Button8.Text = "X" And Button9.Text = "X" Then
    Timer1.Stop()
    MsgBox("Player 1 is the winner")
    ElseIf Button4.Text = "O" And Button5.Text = "O" And Button6.Text = "O" Then
    Timer1.Stop()
    MsgBox("Player 2 is the winner")
    ElseIf Button4.Text = "X" And Button5.Text = "X" And Button6.Text = "X" Then
    Timer1.Stop()
    MsgBox("Player 1 is the winner")

    Else
    GameOver()
    End If




    قد يبدو طويلا الا انه متكرر , حيث يقوم البرنامج بعمل شروط , اذا كانت العناصر متشابهة افقيا او عموديا او كان مائلا الى اليمين او اليسار فانه سوف يوقف التايمر أولا ثم يظهر مسج بوكس يفيد من هو اللاعب الفائز

    لاحظ في اخر الكود وجود
    GameOver() لم يتعرف عليه الفيجوال بيسك

    أضف في نهاية كلمة
    End sub بعد سطر جديد الآتي

    كود
    PHP:
    Private Sub GameOver()
    If Btn1.Enabled = False And _
    Btn2.Enabled = False And _
    Btn3.Enabled = False And _
    Btn4.Enabled = False And _
    Btn5.Enabled = False And _
    Btn6.Enabled = False And _
    Btn7.Enabled = False And _
    Btn8.Enabled = False And _
    Btn9.Enabled = False Then
    Timer1.Stop()
    MsgBox("Game OVER!")
    End If
    End Sub




    لان في كل ضغطة يتم تعطيل الزر , اذا كان جميع الازرار معطلة فان البرنامج سوق يظهر مسج بوكس فيه خسرت اللعبة

    وأخيراً
    , اضغط مرتين على التايمر وأضف الكود الآتي

    كود
    PHP:
    TheWinner()




    شغل المشروع , واستمتع باللعب



    مع تحيات حامد خالد


    عدل سابقا من قبل حامد خالد في السبت أبريل 16, 2011 8:04 pm عدل 1 مرات

    Admin
    Admin

    عدد المساهمات : 34
    تاريخ التسجيل : 02/04/2011

    رد: شرح كيفية برمجة لعبة Tic Tac Toe بسيطة باستخدام فيجوال بيسك دوت نت VB.Net

    مُساهمة من طرف Admin في الجمعة أبريل 08, 2011 3:05 pm

    بجد مشرع كويس نرجو المزيد


      الوقت/التاريخ الآن هو الأربعاء ديسمبر 07, 2016 9:38 am