16-08-20, 09:17 PM
17-08-20, 05:19 AM
بعد عناء طويل
تحصلت على هذا الشكل
ساعد شرحا مفصلا عن كيفية التصميم و البرمجة المعتمدة
الى ذلك الحين تحياتي
تحصلت على هذا الشكل
ساعد شرحا مفصلا عن كيفية التصميم و البرمجة المعتمدة
الى ذلك الحين تحياتي
17-08-20, 02:12 PM
في البداية نضع الصور على شكل 9 مربعات
نضيف علبة فارغة لوضع الاعواد التي يتم تحريكها
نضع فيه ستة انصاف اعواد
نضيف richtextbox لعرض نص اللغز
و ليبال لعرض النتائج
في الاسفل مجموعة صور ملونة عادية لعرض صحة او خطا الحل
في البداية سنعلن عن متغيرات
مصفوفة لصور لاعواد الكبريت
مصفوفة للاعاود المتحركة
مصفوفة للمربعات الصفراء
مصفوفة للمربعات الصغيرة
مصفوفة للمربعات المتوسطة
مصفوفة للاسئلة
متغيرات متعلقة بعدد الكليكات clic
رقم السؤال NumbeProblem
رقم العواد المزاحة AllumD
مجموع المربعات الصغيرة SommeCp
مجموع المربعات المتوسطة SommeCm
النتيجة score
المربع الكبير cgrand
و في الاخير نوع الجواب صح ا خطا joib
سنضع في المصفوفات ما يقابلها من صور و ارقام
في form_load
جميل جدا
الدالة الاساسية و هي الاسئلة
سنفترض ان لدينا 9 مربعات صغيرة
4 مربعات متوسطة
و مربع كبير
و لكل منها نعطي قيمة 1 و نضعها في مصفاتها
لاحظ الشكل التالي للتفهم
نعبر عنه بالكود
و معنى ذلك اذا نقص ضلع من المربع المعني ستصبح قيمة المربع الصغير المتعلق به 0 و المربع المتوسط المتعلق به 0 و اذا كانت له علاقة بالمربع الكبير 0
و بالتالي لما نجمع العدد سنجد كم من مربع بقي
هل مفهوم ؟؟؟؟؟؟
يعني لما اضغط في عود ثقاب في
لذلك في دالة الاسئلة سنضع القيم الاولية لاي سؤال 0
و نخفي كل اعواد العلية و نظهر كل اعواد اللعبة
و نضع نص السؤال في richtext
لما يظهر السؤال يجب الضغط على اعواد الثقاب
لذل في كل عود سنعطي قيمة 0 لكل مربع صغير متعلق به و 0 لكل مربع متوسط و المربع الكبير ايضا
مثال العود في اقصى اليسار اعلاه
يقابلها الصورة
و سيكون عدد الكليك + 1
و عدد الاعواد المتحركة + 1
و بلالتالي سنخفي الصورة بها كما هي في مصفوفة العواد المتحركة
ثم نفعل دالة التصحيح vrefication
الان في دالة التصحيح
سنحسب مجموع المربعات الصغيرة
و مجموع المربعات المتوسطة
و قيمة المربع الكبير
الان الاسئلة فيها ما يجب تحريك عودين
اذا سنقارن بعدد clic
لكلك لا حظ المجموعة الاواولى
في الشرط سنقول اذا كان عدد الككليكات هو 2 و رقم السؤال من 1 الى 4
راقب التالي
اذا كان السؤال الاول : اذا كان مجموع sommecp = 8 و soomecm =0 و cgrand=0 يعني يوجد 8 ممربعات صغيرة فقط فيظهر له ميساج الصح و الصورة في الاسفل يصبح صورتها صورة صح
وهكذا لبقية الاسئلة 16
و بالتالي دالة التصحيح تصبح
اذا كان في كل حالة نشغل ميساج الصح او الخطا
ثم ننتقل الى السؤال التالي
اذا وصل الى السؤال الاخير سنظهر له ميساج الاعادة و نعيد من جديد
اظنني اتمتت شرح اكواد البرنامج
الملف السورس للتعديل و الاستفادة
[attachment=25457]
mp = http://vb4arb.com/
بالتوفيق في مشاريعكم
نضيف علبة فارغة لوضع الاعواد التي يتم تحريكها
نضع فيه ستة انصاف اعواد
نضيف richtextbox لعرض نص اللغز
و ليبال لعرض النتائج
في الاسفل مجموعة صور ملونة عادية لعرض صحة او خطا الحل
في البداية سنعلن عن متغيرات
مصفوفة لصور لاعواد الكبريت
مصفوفة للاعاود المتحركة
مصفوفة للمربعات الصفراء
مصفوفة للمربعات الصغيرة
مصفوفة للمربعات المتوسطة
مصفوفة للاسئلة
متغيرات متعلقة بعدد الكليكات clic
رقم السؤال NumbeProblem
رقم العواد المزاحة AllumD
مجموع المربعات الصغيرة SommeCp
مجموع المربعات المتوسطة SommeCm
النتيجة score
المربع الكبير cgrand
و في الاخير نوع الجواب صح ا خطا joib
PHP كود :
Dim Arryallumet, arryallumetdelet, CaseProg As PictureBox()
Dim Acp, Acm As Integer()
Dim Problems(15) As String
Dim Reponse, NumbeProblem, AllumD, SommeCp, SommeCm, clic, score, cgrand 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 = {PictureBox2, PictureBox3, PictureBox4, PictureBox5, PictureBox6}
' 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 = {1, 1, 1, 1, 1, 1, 1, 1, 1}
Acm = {1, 1, 1, 1}
cgrand = 1
و معنى ذلك اذا نقص ضلع من المربع المعني ستصبح قيمة المربع الصغير المتعلق به 0 و المربع المتوسط المتعلق به 0 و اذا كانت له علاقة بالمربع الكبير 0
و بالتالي لما نجمع العدد سنجد كم من مربع بقي
هل مفهوم ؟؟؟؟؟؟
يعني لما اضغط في عود ثقاب في
لذلك في دالة الاسئلة سنضع القيم الاولية لاي سؤال 0
و نخفي كل اعواد العلية و نظهر كل اعواد اللعبة
و نضع نص السؤال في richtext
PHP كود :
Sub Questions()
Acp = {1, 1, 1, 1, 1, 1, 1, 1, 1}
Acm = {1, 1, 1, 1}
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()
يقابلها الصورة
و سيكون عدد الكليك + 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 = 1 And SommeCp = 8 _
Or NumbeProblem = 2 And SommeCp = 6 And SommeCm = 2 And cgrand = 1 _
Or NumbeProblem = 3 And SommeCp = 6 And cgrand = 1 _
Or NumbeProblem = 4 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 = 5 And SommeCp = 7 And cgrand = 1 _
Or NumbeProblem = 6 And SommeCp = 5 And SommeCm = 1 And cgrand = 1 _
Or NumbeProblem = 7 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 = 8 And SommeCp = 7 And SommeCm = 2 _
Or NumbeProblem = 9 And SommeCp = 3 And cgrand = 1 _
Or NumbeProblem = 10 And SommeCp = 4 And cgrand = 1 _
Or NumbeProblem = 10 And SommeCp = 4 And SommeCm = 1 And cgrand = 1 _
Or NumbeProblem = 11 And SommeCp = 5 And SommeCm = 1 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 = 3 And cgrand = 1 _
Or NumbeProblem = 14 And SommeCp = 1 And cgrand = 1 _
Or NumbeProblem = 15 And SommeCp = 5 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.OK, MessageBoxIcon.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
اظنني اتمتت شرح اكواد البرنامج
الملف السورس للتعديل و الاستفادة
[attachment=25457]
mp = http://vb4arb.com/
بالتوفيق في مشاريعكم
17-08-20, 05:28 PM
كلمة شكر و تقيم لا تفيك حقك مشكور جدا على هذه الامثلة و جزاك الله عنا كل خير موفق انشاء الله .
17-08-20, 07:39 PM
(17-08-20, 05:28 PM)asemshahen5 كتب : [ -> ]كلمة شكر و تقيم لا تفيك حقك مشكور جدا على هذه الامثلة و جزاك الله عنا كل خير موفق انشاء الله .
ما تعلمناه استاذ عاصم يجب ان نفيد به
شكرا على المرور الطيب
19-08-20, 12:48 AM
بارك الله بك اخي عبد الهادي على ماتقدمه
وجزاك الله كل الخير
19-08-20, 02:07 AM
(19-08-20, 12:48 AM)ابراهيم ايبو كتب : [ -> ]بارك الله بك اخي عبد الهادي على ماتقدمهوجزاك الله كل الخير
شكرا استاذ ابراهيم
و منكم نتعلم