تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[حصرياً] و لأول مرة : درس برمجة لعبة x-o
#1
بسم الله الرحمن الرحيم

اخواني هذا هي مشاركتي لمسابقة المقالات الرمضانية

درس

[ATTACH=CONFIG]153[/ATTACH]

أولاً : التصميم

نفتح برنامج Microsoft Visual Studio أنا استخدم Visual Studio 2010
و ننشى مشروع جديد بعنوان : Tic Tac Toe كما موضح بالصورة

[ATTACH=CONFIG]154[/ATTACH]

و اجعل خصائص الفورم كما يلي

[ATTACH=CONFIG]155[/ATTACH]

و الآن اضف الأدوات الموجودة في الصورة على الفورم

[ATTACH=CONFIG]156[/ATTACH]

و اجعل خصائصها كما في الجدول

[ATTACH=CONFIG]157[/ATTACH]

يتبع



الملفات المرفقة صورة/صور
                   
رابط قناتي على اليوتيوب :
https://www.youtube.com/user/OsamaAhmadGalal
رابط حساب الفيسبوك :

https://www.facebook.com/P.Osama.Ahmad.Galal
رابط حساب التويتر :
https://twitter.com/osamaahmadgalal
البريد الإلكتروني للتواصل :
OsamaAhmadGalal@Hotmail.Com
OsamaAhmadGalal@Yahoo.Com
OsamaAhmadGalal@Gmail.Com
رقم الموبايل :
00201122777845

الرد }}}}
تم الشكر بواسطة:
#2
شكراً لك اخي لانك وضعت موضوعي

انا blue sky سابقاً
الرد }}}}
تم الشكر بواسطة:
#3
احفظ الصورة التالية و ضعها في اداة الصورة في الفورم * موجودة في ملف المشروع

[ATTACH=CONFIG]158[/ATTACH]

و الآن ننتقل إلى اهم جزء و هو الأكواد

هذا هو الكود كامل مع الشرح

كود :
Public Class Form1
    'هنا نضع المعرفات الاساسية التي سوف نستخدمها في المشروع
    Dim clickedsquare(9), clickedx(9), clickedo(9) As Boolean
    Private playerturn, turn_num As Integer
    Dim check As String

    'هذا حدث انهاء اللعبة و بدء لعبة جديد
    Sub end_game()
        Call btnnew_Click(Nothing, Nothing)
    End Sub

    'هذا الامر الرئيسي للتأكد من ان الفائز الاعب X
    Sub winx(ByVal pnt1 As Integer, ByVal pnt2 As Integer, ByVal pnt3 As Integer)
        If clickedx(pnt1.ToString) And clickedx(pnt2.ToString) And clickedx(pnt3.ToString) Then
            MsgBox("X لقد فاز اللاعب", MsgBoxStyle.Information)
            check = "true"
            end_game()
        End If
    End Sub
    'هذا الامر الرئيسي للتأكد من ان الفائز الاعب O
    Sub wino(ByVal pnt1 As Integer, ByVal pnt2 As Integer, ByVal pnt3 As Integer)
        If clickedo(pnt1.ToString) And clickedo(pnt2.ToString) And clickedo(pnt3.ToString) Then
            MsgBox("O لقد فاز اللاعب")
            check = "true"
            end_game()
        End If
    End Sub

    'هذا امر البحث عن ما ضغطه اللاعب O
    Sub checko()
        'vertical
        wino(1, 2, 3)
        wino(4, 5, 6)
        wino(7, 8, 9)
        'hortizantal
        wino(1, 4, 7)
        wino(2, 5, 8)
        wino(3, 6, 9)
        'cross
        wino(1, 5, 9)
        wino(3, 5, 7)
    End Sub
    'هذا امر البحث عن ما ضغطه اللاعب X

    Sub checkX()
        'vertical
        winx(1, 2, 3)
        winx(4, 5, 6)
        winx(7, 8, 9)
        'hortizantal
        winx(1, 4, 7)
        winx(2, 5, 8)
        winx(3, 6, 9)
        'cross
        winx(1, 5, 9)
        winx(3, 5, 7)
    End Sub

    'هذا اهم امر في المشروع و هو الذي يحدد الدور للاعب
    Sub turn(ByVal pnt As Integer, ByVal lbl As Label)
        If lbl.Tag <> "مضغوط" Then
            turn_num += 1
            If playerturn Mod 2 = 0 Then
                lbl.Text = "X" : lbl.ForeColor = Color.Blue
                lblturn.Text = "O دور اللاعب" : lblturn.ForeColor = Color.Red
                clickedx(pnt) = True
                clickedsquare(pnt) = True
                playerturn += 1
            ElseIf playerturn Mod 2 = 1 Then
                lbl.Text = "O" : lbl.ForeColor = Color.Red
                lblturn.Text = "X دور اللاعب" : lblturn.ForeColor = Color.Blue
                clickedo(pnt) = True
                clickedsquare(pnt) = True
                playerturn += 1
            End If
            lbl.Tag = "مضغوط"
            checko()
            checkX()
            If turn_num = 9 Then
                If check <> "true" Then
                    MsgBox("تعااااادل", MsgBoxStyle.Information)
                    end_game()
                End If
            End If
        Else
            Exit Sub
        End If
    End Sub

    'زر لعبة جديدة
    Private Sub btnnew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles  btnnew.Click
        Dim lbls(9) As Label : lbls(1) = sq1 : lbls(2) = sq2 : lbls(3) = sq3 : lbls(4) = sq4 : lbls(5) = sq5
        lbls(6) = sq6 : lbls(7) = sq7 : lbls(8) = sq8 : lbls(9) = sq9
        If xplayer.Checked = True Then
            playerturn = 0 : lblturn.Text = "X دور اللاعب" : lblturn.ForeColor = Color.Blue
        Else
            playerturn = 1 : lblturn.Text = "O دور اللاعب" : lblturn.ForeColor = Color.Red
        End If
        For i = 1 To 9
            clickedo(i) = False
            clickedx(i) = False
            clickedsquare(i) = False
            lbls(i).Text = String.Empty
            lbls(i).Enabled = True
            lbls(i).Tag = Nothing
        Next
        turn_num = Nothing
        check = Nothing
    End Sub

    'هذا حدث التسع المربعات النصية
    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sq1.Click, sq2.Click, sq3.Click, _
        sq4.Click, sq5.Click, sq6.Click, sq7.Click, sq8.Click, sq9.Click
        turn(sender.tabindex, sender)
    End Sub

    'هذا حدث ترك الماوس
    Private Sub Label1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles sq1.MouseLeave, sq2.MouseLeave, sq3.MouseLeave, _
        sq4.MouseLeave, sq5.MouseLeave, sq6.MouseLeave, sq7.MouseLeave, sq8.MouseLeave, sq9.MouseLeave
        If sender.Tag <> "مضغوط" Then
            sender.Text = String.Empty
        Else
            Exit Sub
        End If
    End Sub

    'هذا حدث تحرك الماوس
    Private Sub Label1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles sq1.MouseMove, sq2.MouseMove, _
        sq3.MouseMove, sq4.MouseMove, sq5.MouseMove, sq6.MouseMove, sq7.MouseMove, sq8.MouseMove, sq9.MouseMove
        If sender.Tag <> "مضغوط" Then
            If playerturn Mod 2 = 0 Then
                sender.Text = "X" : sender.ForeColor = Color.Blue
            ElseIf playerturn Mod 2 = 1 Then
                sender.Text = "O" : sender.ForeColor = Color.Red
            End If
        Else
            Exit Sub
        End If
    End Sub

End Class

المشروع و الصورة مرفقات مع الكتاب

[ATTACH]160[/ATTACH]

تم بحمد الله تعالى


الملفات المرفقة صورة/صور
   

.rar   X-O.rar (الحجم : 791.12 ك ب / التحميلات : 66)
رابط قناتي على اليوتيوب :
https://www.youtube.com/user/OsamaAhmadGalal
رابط حساب الفيسبوك :

https://www.facebook.com/P.Osama.Ahmad.Galal
رابط حساب التويتر :
https://twitter.com/osamaahmadgalal
البريد الإلكتروني للتواصل :
OsamaAhmadGalal@Hotmail.Com
OsamaAhmadGalal@Yahoo.Com
OsamaAhmadGalal@Gmail.Com
رقم الموبايل :
00201122777845

الرد }}}}
تم الشكر بواسطة:
#4
Sad 
رابط مرفقات لا يعمل

أنا كوني .*.*. أنا أرضي .*.*. أنا عربي .*.*. أنا مصـري
الرد }}}}
تم الشكر بواسطة:
#5
السلام عليكم

مع شديد الاسف لا يمكن استرجاع مرفقات هذا الموضوع لعدم وجودها على سيرفر المنتدى

يعطيك العافية
شـــايـفـــك

الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  حصرياً ( إطبع على الوورد من خلال برنامجك ) ( شرح بالصور ) m.sami.ak 20 1,957 20-08-16, 11:53 PM
آخر رد: الوادي
  [نقاش] أرجو التصويت لابدا شرح برمجة اطار محادثة بين طرف واطراف على الاتصال المحلي او العام سعود 13 3,648 21-06-16, 09:31 PM
آخر رد: سعود
  حصرياً على اليوتوب,,, إطبع على الوورد من خلال برنامجك ( شرح بالفيديو ) مبرمج أوتار 5 1,814 15-05-16, 05:06 PM
آخر رد: CLARO
  حصرياً على اليوتوب,,, إطبع على الوورد من خلال برنامجك ( شرح بالفيديو ) m.sami.ak 2 1,417 26-09-14, 04:47 PM
آخر رد: Zakhoy
  برمجة قواعد البيانات sql server + vb.net ابوهديل 1 5,820 13-02-14, 08:26 PM
آخر رد: Omar Mekkawy
  برمجة قواعد البيانات SQL Server + vb.net مع ابو عبد الرحمن مبرمج أوتار 3 2,457 07-06-13, 06:09 AM
آخر رد: مبرمج أوتار
  شرح برمجة مشغل افلام flv على الجهاز سعود 2 701 11-10-12, 10:41 AM
آخر رد: m.sami.ak
  موضوع خفيف لعبة حلوة من كم سطر RaggiTech 1 382 05-10-12, 03:37 AM
آخر رد: RaggiTech
  دروس فيديو لتعليم برمجة الاوتوكاد بالفيجوال دوت نت RaggiTech 5 998 03-10-12, 02:27 PM
آخر رد: RaggiTech
  حصرياً ( إطبع على الوورد من خلال برنامجك ) ( شرح بالصور ) RaggiTech 1 2,313 03-10-12, 01:06 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم