تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مشروع] تصميم لعبة ذكاء اعواد الثقاب
#1
السلام عليكم

فيه لعبة ذكاء مشهورة خاصة باعواد الثقاب يتم تحريك عددا منها لتحقيق شرط معين

سنحاول معكم تصميمها بلغة vb

 يتبع
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
تم الشكر بواسطة: بلدي , بلدي , ابراهيم ايبو , asemshahen5
#2
بعد عناء طويل

تحصلت على هذا الشكل



ساعد شرحا مفصلا عن كيفية التصميم و البرمجة المعتمدة 
الى ذلك الحين تحياتي
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
#3
في البداية  نضع الصور  على شكل 9 مربعات


نضيف علبة فارغة لوضع الاعواد التي يتم تحريكها

نضع فيه ستة انصاف اعواد

نضيف richtextbox  لعرض نص اللغز

و ليبال لعرض النتائج

في الاسفل مجموعة صور  ملونة عادية لعرض صحة او خطا الحل

في البداية سنعلن عن متغيرات
مصفوفة لصور لاعواد الكبريت
مصفوفة للاعاود المتحركة
مصفوفة للمربعات الصفراء
مصفوفة للمربعات الصغيرة 
مصفوفة للمربعات المتوسطة
مصفوفة للاسئلة
متغيرات متعلقة بعدد الكليكات  clic
 رقم السؤال  NumbeProblem
رقم العواد المزاحة AllumD
مجموع المربعات الصغيرة SommeCp
مجموع المربعات المتوسطة SommeCm
النتيجة score
المربع الكبير cgrand
و في الاخير نوع الجواب صح ا خطا joib

PHP كود :
Dim ArryallumetarryallumetdeletCaseProg As PictureBox()
 
   Dim AcpAcm As Integer()
 
   Dim Problems(15) As String
    Dim Reponse
NumbeProblemAllumDSommeCpSommeCmclicscorecgrand As Integer
    Dim joib 
As Boolean 
 

 سنضع في المصفوفات  ما يقابلها من صور و ارقام

في form_load

PHP كود :
       ' allumet
        Arryallumet = {PictureBox7, PictureBox8, PictureBox9, PictureBox10, PictureBox11,
                    PictureBox12, PictureBox13, PictureBox14, PictureBox15, PictureBox16,
                    PictureBox17, PictureBox18, PictureBox19, PictureBox20, PictureBox21,
                    PictureBox22, PictureBox23, PictureBox24, PictureBox25, PictureBox26,
                    PictureBox27, PictureBox28, PictureBox29, PictureBox30}

        ' 
allumet delet
        arryallumetdelet 
= {PictureBox2PictureBox3PictureBox4PictureBox5PictureBox6}
 
       ' activite corect
        CaseProg = {PictureBox31, PictureBox32, PictureBox33, PictureBox34, PictureBox35,
                    PictureBox36, PictureBox37, PictureBox38, PictureBox39, PictureBox40,
                    PictureBox41, PictureBox42, PictureBox43, PictureBox44, PictureBox45, PictureBox46}

        ' 
exercices

        Problems 
= {"احذف عودين لتحصل على 8 مريعات صغار",
"احذف عودين لتحصل على 6 مربعات صغار و مربع كبير و 2 مربعين متوسطين",
"احذف عودين لتحصل على 6 مربعات صغار و مربع كبير فقط",
"احذف عودين لتحصل على 7 مربعات صغار",
"احذف 3 عيدان لتحصل على مربع كبير و 5 مربعات صغار",
"احذف 3 عيدان لتحصل على 5 مربعات صغار و مربع متوسط و مربع كبير",
"احذف 3 عيدان لتحصل على 6 مربعات صغار",
"احذف 4 عيدان لتحصل على 7 مربعات صغار و مربعين متوسطين",
"احذف 4 عيدان لتحصل على مربع كبيرو 3 مربعات صغار",
"احذف 4 عيدان لتحصل على 4 مربعات صغار و مربع كبير",
"احذف 4 عيدان لتحصل على مربع كبير و مربع متوسط و 4 مربعات صغار",
"احذف 4 عيدان لتحصل على مربع كبيرو مربع متوسط و 5 مربعات صغار",
"احذف 4 عيدان لتحصل على 5 مربعات صغار فقط",
"احذف 5 عيدان لتحصل على مربع كبيرو 3 مربعات صغار",
"احذف 5 عيدان لتحصل على مربع كبير و 4 مربعات صغار",
"احذف 5 عيدان لتحصل على 5 مربعات صغار و مربعين متوسطين",
"يمكنك اعادة التمارين من جديد"



 جميل جدا

الدالة الاساسية و هي الاسئلة 
سنفترض ان لدينا 9 مربعات صغيرة
4 مربعات متوسطة 
و مربع كبير
 و لكل منها نعطي قيمة 1  و نضعها في  مصفاتها

لاحظ الشكل التالي للتفهم 


نعبر عنه بالكود 

PHP كود :
Acp = {111111111}
 
       Acm = {1111}
 
       cgrand 

و معنى ذلك اذا نقص ضلع من المربع المعني ستصبح قيمة المربع الصغير المتعلق به 0 و المربع المتوسط المتعلق به 0 و اذا كانت له علاقة بالمربع الكبير 0 
 و بالتالي لما نجمع العدد سنجد كم من مربع بقي


هل مفهوم ؟؟؟؟؟؟

يعني لما اضغط في عود ثقاب في

لذلك في دالة الاسئلة  سنضع القيم الاولية لاي سؤال 0 
و نخفي كل اعواد العلية و نظهر كل اعواد اللعبة 
و نضع نص السؤال في richtext

PHP كود :
 Sub Questions()
 
       Acp = {111111111}
 
       Acm = {1111}
 
       cgrand 1
        
''''''''''''''''''''''
 
       '''''''''''''''''''
        clic = 0
        AllumD = 0
        SommeCm = 0
        SommeCp = 0
        For i = 0 To 23
            Arryallumet(i).Visible = True
        Next

        For i = 0 To 4
            arryallumetdelet(i).Visible = False
        Next
        RichTextBox1.Text = Problems(NumbeProblem)
        NumbeProblem += 1
        Labelques.Text = " الوضعية رقم  " & NumbeProblem
        RichTextBox1.SelectionAlignment = 2

    End Sub 

لما يظهر السؤال يجب الضغط على اعواد الثقاب
لذل في كل عود سنعطي قيمة 0 لكل مربع صغير متعلق به و 0 لكل مربع متوسط و المربع الكبير ايضا 
مثال العود في اقصى اليسار اعلاه

PHP كود :
Acp(0) = 0
        Acm
(0) = 0
        cgrand 
0
        clic 
+= 1
        PictureBox7
.Visible False
        arryallumetdelet
(AllumD).Visible True
        AllumD 
+= 1
        verfication
() 

يقابلها الصورة 

[صورة مرفقة: p_1690n9xwk1.png]

و سيكون عدد الكليك + 1 
و عدد الاعواد المتحركة + 1
و بلالتالي سنخفي الصورة بها كما هي في مصفوفة العواد المتحركة 
ثم نفعل دالة التصحيح vrefication

الان في دالة التصحيح

سنحسب مجموع المربعات الصغيرة 
و مجموع المربعات المتوسطة 
و قيمة المربع الكبير

PHP كود :
 SommeCp 0
        SommeCm 
0

        For i 
0 To 8
            SommeCp 
SommeCp Acp(i)
 
       Next

        For i 
0 To 3
            SommeCm 
SommeCm Acm(i)
 
       Next 


الان الاسئلة فيها ما يجب تحريك عودين
اذا سنقارن بعدد clic  
لكلك لا حظ المجموعة الاواولى


إقتباس :"احذف عودين لتحصل على 8 مريعات صغار",
"احذف عودين لتحصل على 6 مربعات صغار و مربع كبير و 2 مربعين متوسطين",
"احذف عودين لتحصل على 6 مربعات صغار و مربع كبير فقط",
"احذف عودين لتحصل على 7 مربعات صغار",


في الشرط سنقول اذا كان عدد الككليكات هو 2 و رقم السؤال من 1 الى 4 
راقب التالي
اذا كان السؤال الاول : اذا كان مجموع sommecp = 8  و soomecm =0 و cgrand=0  يعني يوجد 8 ممربعات صغيرة فقط فيظهر له ميساج الصح و الصورة في الاسفل يصبح صورتها صورة صح

وهكذا لبقية الاسئلة 16

و بالتالي دالة التصحيح تصبح

PHP كود :
 Sub verfication()
 
       SommeCp 0
        SommeCm 
0

        For i 
0 To 8
            SommeCp 
SommeCp Acp(i)
 
       Next

        For i 
0 To 3
            SommeCm 
SommeCm Acm(i)
 
       Next

        
' تحريك عودين
        If clic = 2 And NumbeProblem < 5 Then
            ' 
 الثانية الثالثة الرابعة الوضعية الاولى
            If NumbeProblem 
And SommeCp 8 _
                Or NumbeProblem 
And SommeCp And SommeCm And cgrand 1 _
                Or NumbeProblem 
And SommeCp And cgrand 1 _
                Or NumbeProblem 
And SommeCp 7 Then
                joib 
True
            Else
                joib 
False
            End 
If
 
           Messag()
 
           ' تحريك 3 اعواد
        ElseIf clic = 3 And NumbeProblem > 4 And NumbeProblem < 8 Then
            ' 
الوضعية 5-6-7
            If NumbeProblem 
And SommeCp And cgrand 1 _
                Or NumbeProblem 
And SommeCp And SommeCm And cgrand 1 _
                Or NumbeProblem 
And SommeCp 6 Then
                joib 
True
            Else
                joib 
False
            End 
If
 
           Messag()
 
           ' تحريك 4 اعواد
        ElseIf clic = 4 And NumbeProblem > 7 And NumbeProblem < 13 Then
            ' 
الوضعية -11-12 8-9-10
       
            If NumbeProblem 
And SommeCp And SommeCm 2 _
                Or NumbeProblem 
And SommeCp And cgrand 1 _
                Or NumbeProblem 
10 And SommeCp And cgrand 1 _
                Or NumbeProblem 
10 And SommeCp And SommeCm And cgrand 1 _
                Or NumbeProblem 
11 And SommeCp And SommeCm And cgrand 1 _
                Or NumbeProblem 
12 And SommeCp 5 Then
                joib 
True
            Else
                joib 
False
            End 
If
 
           Messag()
 
           ' تحريك 5 اعواد
        ElseIf clic = 5 And NumbeProblem > 12 Then
            ' 
الوضعية 13-14-15
            If NumbeProblem 
13 And SommeCp And cgrand 1 _
                Or NumbeProblem 
14 And SommeCp And cgrand 1 _
                Or NumbeProblem 
15 And SommeCp And SommeCm 2 Then
                joib 
True
            Else
                joib 
False
            End 
If
 
           Messag()
 
       End If

 
       If NumbeProblem 17 Then
            MessageBox
.Show("شكرا على تفاعلك مع اللعبة ممكن تعيد من جديد""عبد الهادي بهاب")
 
           restart()
 
       End If
 
   End Sub 

اذا كان  في كل حالة نشغل ميساج الصح او الخطا
ثم ننتقل الى السؤال التالي
PHP كود :
Sub Messag()
 
       If joib True Then
            score 
+= 1
            Labscore
.Text score
            MessageBox
.Show("جميل جدا تابع تقدمك""عبد الهادي بهاب")
 
           CaseProg(NumbeProblem 1).Image My.Resources.yes
        Else
            MessageBox
.Show("بقي في الشكل" vbNewLine SommeCp "  مربعات صغيرة   " vbNewLine SommeCm "  مربعات متوسطة  " vbNewLine cgrand "  مربع كبير  "" للاسف لقد اخطات اعد من جديد "MessageBoxButtons.OKMessageBoxIcon.Information)
 
           CaseProg(NumbeProblem 1).Image My.Resources.no
        End 
If
 
       Questions()
 
   End Sub 

اذا وصل الى السؤال الاخير  سنظهر له ميساج الاعادة و نعيد من جديد

PHP كود :
Sub restart()
 
       NumbeProblem 0
        For i 
0 To 16
            CaseProg
(i).BackColor Color.Yellow
            CaseProg
(i).Image Nothing
        Next
        Questions
()
 
   End Sub 


اظنني اتمتت شرح اكواد البرنامج

الملف السورس للتعديل و الاستفادة


.rar   alumat.rar (الحجم : 429.35 ك ب / التحميلات : 32)

mp = http://vb4arb.com/

بالتوفيق في مشاريعكم
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
تم الشكر بواسطة: بلدي , asemshahen5 , tryold , ابراهيم ايبو
#4
كلمة شكر و تقيم لا تفيك حقك مشكور جدا على هذه الامثلة و جزاك الله عنا كل خير موفق انشاء الله .
الرد }}}
#5
(17-08-20, 05:28 PM)asemshahen5 كتب : كلمة شكر و تقيم لا تفيك حقك مشكور جدا على هذه الامثلة و جزاك الله عنا كل خير موفق انشاء الله .

ما تعلمناه استاذ عاصم يجب ان نفيد به
شكرا على المرور الطيب
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو , بلدي
#6
بارك الله بك اخي عبد الهادي على ماتقدمه 
وجزاك الله كل الخير
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: عبد الهادي بهاب , بلدي , asemshahen5
#7
(19-08-20, 12:48 AM)ابراهيم ايبو كتب :
بارك الله بك اخي عبد الهادي على ماتقدمه 
وجزاك الله كل الخير

شكرا استاذ ابراهيم
و منكم نتعلم
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Big Grin [مشروع] تصميم محرر اكواد بسيط من خلال الفيجوال بيسك مع السورس كود ahmadpal 1 2,139 23-01-24, 05:38 PM
آخر رد: alkndy
Wink [مشروع] مشروع تصميم فورم بشكل جديد بالفيجوال ستوديو مع السورس كود ahmadpal 8 7,017 12-04-23, 11:41 PM
آخر رد: spiky
Video [مشروع] لعبة إختبر معلوماتك [أسئلة عشوائية]+[قاعدة بيانات xml] + [تأثيرات صوتية] عبدالله الدوسري 12 18,098 30-10-22, 05:52 PM
آخر رد: ibra9009
  [مشروع] تصميم برنامح تعليمي للاطفال ...رتب كلمات الجملة ( سحب الكلمة ) عبد الهادي بهاب 2 2,003 17-09-22, 12:11 PM
آخر رد: اسلام عمر القاضي
  لعبة الارقام ولكن بطرقة مختلفة Mtaktak 2 1,023 11-05-22, 01:29 PM
آخر رد: dasktop
  [مشروع] تغيير نصوص الازرار ايضا مناسبة لعمل لعبة ارقام او حتى حروف او اسئلة عمومية سعود 2 1,753 28-11-21, 05:11 PM
آخر رد: سعود
  [مشروع] ملف مفتوح ... تصميم برنامج الباحث القرآني و عرض الاية بروايتي حفص و ورش وتفسيرها عبد الهادي بهاب 5 3,246 13-07-21, 03:41 AM
آخر رد: aldery
Photo [مشروع] ليس جديد لعبة ال 15 رقم asmarsou 0 1,132 06-04-21, 10:30 PM
آخر رد: asmarsou
Wink مشروع انشاء لعبة سيارات مع السورس كود ahmadpal 4 4,971 25-03-21, 05:57 PM
آخر رد: alexatmedia
  [مشروع] تصميم برنامج تعليمي للاطفال ... الحساب الذهني Calcul Mental عبد الهادي بهاب 1 2,660 04-01-21, 03:40 AM
آخر رد: izz kamal

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


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