الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لم أتمكن من حل هذا اللغز من سنين ؟؟! اتعبني جدا جدا

بدأه أبورنه في 23 مارس 2010 · 17 رد · 1,052 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ..

والله يا جماعة منذ فترة طويلة وانا احاول جاهداً حل هذا اللغز ..

ولكن كل محاولاتي بائت بالفشل

وللأسف

أسأل الله ان يحرم وجه كل من ساعدني عن النار

لإني بحاجة ماسه لحل هذا اللغز

لدي برنامج عبارة عن مسابقة

بهذا الشكل

test01.jpg

فكرتها ببساطة هي عندما يجب عن اي سؤال يتحول الا لون معين

المسابقة لا يوجد بها اي مشكلة

المشكلة التي واجهتني هي كل اعرف ان المتاسبق استطاع ان يصل من اليمين الى اليسار او من فوق الى اسفل

كل سؤال عبارة عن label يتغير لونه عند الفوز بلون المتسابق

تم تعديل هذه المشاركة بواسطة أبورنه في 23 مارس 2010 في 03:14

#2

ماهي الاداة المستخدمة في عرض المربعات هذي .

ايضا لو ترفق مثال يكون احسن

تحياتي

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#3

أخوي omani

انا اسخدمت ليبلات حالياً فقط ولم استخدم اداة

اذا كان هناك طريقة تلحل لي هذا الاشكال ياليت تذكر لي الفكرة فقط

بدون كود

#4
أبورنه كتب:

أخوي omani

انا اسخدمت ليبلات حالياً فقط ولم استخدم اداة

اذا كان هناك طريقة تلحل لي هذا الاشكال ياليت تذكر لي الفكرة فقط

بدون كود

اولا ضع الليبل عبارة عن array لكل صف .

بعد ذلك باستخدام for loop يقوم بالتحقق من نقطة البداية ونقطة النهاية .. وأيضا في حالة الإنعطاف .. يتأكد من الاتجاه الذي قدم منه لكي يتحقق من 3 اتجاهات متبقية . مثلا بدأ من السطر الثالث الخانة الأولى يقوم بفحص الخانة التي بعدها . أذا وجد انها تتبع نفس المتسابقة يواصل أما اذا لم يجدها بنفس السياق يقوم بفحص الأعلى والأسفل . ومثل وجد بالاعلى يبدأ بفحص اليسار كون ان الهدف هو الوصول الى اليسار . واذا لم يجدها ينظر للاعلى والسبب لانه قدم من الأسفل .

أتمنى أن اكون وضحت الفكرة.

تحياتي

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#5

أخوي omani

الا تعتقد معي انه في هذه الحالة سوف استخدم عدد كبير من for و if

لانه المشكلة كلها في الإنعطاف

اما اذا كان المسار مستقيماً فهذه امرها سهل جداً

عموماً يبدو ان المثال سيسهل عليا الأمر

انا قمت بتصميم مثال بسيط هو نفس ما اريده بالضبط

واشكرك على تفاعلك معي

game.rar

#6

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

وجزاه الله خير

#7

السلام عليكم ...

قد يفيدك مثالي هذا الذي كتبته لأحد ما في السابق ...

انقر هنا لمشاهدة الموضوع

بالتوفيق ..

#8

أخوي Devd

المسابقة المرفقة في الموضوع تختلف عن كلامي

غير ان مشكلتي في كيف اعرف ان المتسابق فاز فقط

لا اريد اكثر من ذلك

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

أشكرك على تفاعلك واتمنى تحميل الكود الذي ارفقته سابقاً وتعديله وجزاكم الله خير على ماتقدموه

#9

السلام عليكم

أخي أبورنه هذه فكرة حاول تطبيقها و أعتقد بأنها ستنجح معك:

مثلا labels الموجودة في السطر الأول أعطيها إسم r1_x حيث x هي رقم من 1 إلى 6 حسب المثال الذي قدمته.

و labels السطر 2 تكون بإسم r2_x و هكذا.....

إذا أول label في أعلى اليمين r1_1 و آخر label في يسار السطر الأخير r5_6

أعتقد بأن هذا مفهوم.

و قم بوضع timer للتأكد من أن المستعمل قد وصل من اليمين لليسيار أو من الأعلى للأسفل، مثلا كل 3 ثواني .

عذرا سأعيد تعديله في الغد إن شاء الله لأن في تطبيقه عندي حدثت أخطاء...

آسف....

تم تعديل هذه المشاركة بواسطة 3ml في 24 مارس 2010 في 01:16

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#10

جزاك الله خير أخي 3ml

انتظرك واتمنى بإذن الله أن يكون الحل النهائي لهذه المشكلة

وجزاك الله خير

#11

السلام عليكم...

البرنامج جاهز تقريباً.... لكن سؤال أخير فقط: أي من الطرق التالية متبعة في البرنامج:

1. يبدأ المتسابق من جهة اليمين (العمود الأيمن) و يتجه يساراً و يعتبر فائزاً إذا وصل إلى العمود الأخير من اليسار.

2. يبدأ المتسابق من الأعلى (الصف الأول) و يتجه إلى الأسفل و يعتبر فائزاً إذا وصل إلى الصف الأخير.

3. مسموح بالطريقتين في البرنامج، أي يمكن أن يبدأ من اليمين و يتجه نحو اليسار، أو يبدأ من أعلى و يتجه نحو الأسفل.

* طبعاً مع السماح بالانعطاف (تغيير الاتجاه) في كل الأحوال.

نرجو التوضيح و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#12

هما متسابقين

واحد احمر وواحد اخضر

واحد من اليمن الى اليسار

والمتسابق الثاني من الاعلى الى الاسفل

مثل مسابقة حروف اذا كنت تتذكرها

#13

السلام عليكم...

أرجو أن يلبي البرنامج المرفق طلبك أو جزءاً منه. ستجدعلى الـ Form مربع Label واحد فقط. يمكنك تحريكه لتحديد الزاوية العلوية اليسرى لشبكة المربعات.

بقية المربعات يتم تحميلها و تحديد مواقعها بالكود. يمكنك تحديد عدد الصفوف و عدد الأعمدة بتغيير قيم الثابتين ROW_COUNT و COL_COUNT في بداية الكود.

الكود يحتوي على شرح مفصل بالعربي لمعظم الخطوات.

نرجو الاستفادة و السلام.

Game2.rar

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#14

اخوي najy_zl

والله اني كلمات الشكر تعجز عنك

بصراحة مبدع

قمت بتجربت الكود على السريع

وإن شاء الله انه نفس المقصود

واذا كان هناك اي اشكال سوف اوافيك بالتفاصيل

وجزاك الله خير

#15

جرب الكود التالي

وادعيلي بكل الدعوات الحلوة

ضع أداة msflexgrid

وأداه خيار option1 وخيار option2

Command

وشغل هذا الكود

Private Sub Command1_Click()

For i = 0 To grdQuest.Cols - 1

grdQuest.Tag = ""

For j = 0 To grdQuest.Rows - 1

' grdQuest.TextMatrix(j, i) = "x"

If grdQuest.TextMatrix(j, i) = "Answered" Then

grdQuest.Tag = grdQuest.Tag & j + 1

End If

Next

If Len(grdQuest.Tag) >= 4 Then

MSG = "Answered From Top to Buttom "

MSG = MSG & "In Column " & i + 1 & " " & " From " & Left(grdQuest.Tag, 1) & " To " & Right(grdQuest.Tag, 1)

MsgBox MSG

End If

Next

For j = 0 To grdQuest.Rows - 1

grdQuest.Tag = ""

For i = 0 To grdQuest.Cols - 1

If grdQuest.TextMatrix(j, i) = "Answered" Then

grdQuest.Tag = grdQuest.Tag & i + 1

End If

Next

If Len(grdQuest.Tag) >= 4 Then

MSG = "Answered From Right to Left "

MSG = MSG & "In Row " & j + 1 & " " & " Form " & Left(grdQuest.Tag, 1) & " To " & Right(grdQuest.Tag, 1)

MsgBox MSG

End If

Next

End Sub

Private Sub grdQuest_DblClick()

If Option1.Value Then

grdQuest.TextMatrix(grdQuest.Row, grdQuest.Col) = "Answered"

grdQuest.CellBackColor = vbRed

End If

If Option2.Value Then

grdQuest.TextMatrix(grdQuest.Row, grdQuest.Col) = "Answered"

grdQuest.CellBackColor = vbGreen

End If

End Sub

أبورنه كتب:

السلام عليكم ورحمة الله وبركاته ..

والله يا جماعة منذ فترة طويلة وانا احاول جاهداً حل هذا اللغز ..

ولكن كل محاولاتي بائت بالفشل

وللأسف

أسأل الله ان يحرم وجه كل من ساعدني عن النار

لإني بحاجة ماسه لحل هذا اللغز

لدي برنامج عبارة عن مسابقة

بهذا الشكل

test01.jpg

فكرتها ببساطة هي عندما يجب عن اي سؤال يتحول الا لون معين

المسابقة لا يوجد بها اي مشكلة

المشكلة التي واجهتني هي كل اعرف ان المتاسبق استطاع ان يصل من اليمين الى اليسار او من فوق الى اسفل

كل سؤال عبارة عن label يتغير لونه عند الفوز بلون المتسابق

#16

جرب الكود التالي

وادعيلي بكل الدعوات الحلوة

ضع أداة msflexgrid

وضع عدد الأعمدة 6

وعدد الصفوف 6

وعدد الأعمدة الثابتة fixed

0

وعدد الصفوف الثابته fixed

0

وأداه خيار option1 وخيار option2

Command

وشغل هذا الكود

Private Sub Command1_Click()

For i = 0 To grdQuest.Cols - 1

grdQuest.Tag = ""

For j = 0 To grdQuest.Rows - 1

' grdQuest.TextMatrix(j, i) = "x"

If grdQuest.TextMatrix(j, i) = "Answered" Then

grdQuest.Tag = grdQuest.Tag & j + 1

End If

Next

If Len(grdQuest.Tag) >= 4 Then

MSG = "Answered From Top to Buttom "

MSG = MSG & "In Column " & i + 1 & " " & " From " & Left(grdQuest.Tag, 1) & " To " & Right(grdQuest.Tag, 1)

MsgBox MSG

End If

Next

For j = 0 To grdQuest.Rows - 1

grdQuest.Tag = ""

For i = 0 To grdQuest.Cols - 1

If grdQuest.TextMatrix(j, i) = "Answered" Then

grdQuest.Tag = grdQuest.Tag & i + 1

End If

Next

If Len(grdQuest.Tag) >= 4 Then

MSG = "Answered From Right to Left "

MSG = MSG & "In Row " & j + 1 & " " & " Form " & Left(grdQuest.Tag, 1) & " To " & Right(grdQuest.Tag, 1)

MsgBox MSG

End If

Next

End Sub

Private Sub grdQuest_DblClick()

If Option1.Value Then

grdQuest.TextMatrix(grdQuest.Row, grdQuest.Col) = "Answered"

grdQuest.CellBackColor = vbRed

End If

If Option2.Value Then

grdQuest.TextMatrix(grdQuest.Row, grdQuest.Col) = "Answered"

grdQuest.CellBackColor = vbGreen

End If

End Sub

أبورنه كتب:

السلام عليكم ورحمة الله وبركاته ..

والله يا جماعة منذ فترة طويلة وانا احاول جاهداً حل هذا اللغز ..

ولكن كل محاولاتي بائت بالفشل

وللأسف

أسأل الله ان يحرم وجه كل من ساعدني عن النار

لإني بحاجة ماسه لحل هذا اللغز

لدي برنامج عبارة عن مسابقة

بهذا الشكل

test01.jpg

فكرتها ببساطة هي عندما يجب عن اي سؤال يتحول الا لون معين

المسابقة لا يوجد بها اي مشكلة

المشكلة التي واجهتني هي كل اعرف ان المتاسبق استطاع ان يصل من اليمين الى اليسار او من فوق الى اسفل

كل سؤال عبارة عن label يتغير لونه عند الفوز بلون المتسابق

تم تعديل هذه المشاركة بواسطة GOTOOF في 24 مارس 2010 في 09:31

#17

السلام عليكم

أعتقد بأني تأخرت و سبقني أكثر من واحد :)

لكن هذا الكود الذي أعددته

ضعه داخل timer مثلا و اجعل interval =3000 حتى يقوم بالتأكد كل 3 ثواني

و لكن labels يجب أن تكون group أي

label(1)
label(2)
..
..
..
label(30)

هذه الاسماء فقط وليست كود :)

و ترتيبها يكون هكذا

1 في أول السطر الأول

2 label رقم 2 في السطر الأول

و هكذا، مثلا

1-2-3-4-5-6

7-8-9-10-11-12

.........

25-26-27-28-29-30

و هذا هو الكود:

dim Ar(1 to 30) as integer

for i = 1 to 30
	if label(i).backgroundcolor = vbgreen then
	Ar(i) = 1
	else
	Ar(i) = 0
	end if
next

dim HorOK as integer
dim VerrOK as integer
dim Sm as integer

For i = 1 to 5
Sm = 0
	for j = (i-1)*6+1 to i*6
	Sm = Sm + Ar(j)
	next
if Sm = 0 then
i = 6
else
VerOK = VerOK + 1
end if
Next

For i = 1 to 6
Sm = 0
	for j = i to i + 24 step 6
	Sm = Sm + Ar(j)
	Next
if Sm = 0 then
i = 7
else
HorOK = HorOK + 1
end if
Next

if VerOK = 5 then
msgbox("You Win!")
end if

if HorOK = 6 then
msgbox("You Win!")
end if

تم تعديل هذه المشاركة بواسطة 3ml في 24 مارس 2010 في 16:09

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#18

أولاً اشكرك الجميع على تفاعلهم

وليس بغير على هذا المنتدى

وجزاكم الله خير

ماشاء الله كان حل اخوي najy_zl

بالضبط هو ما أريد

ولكن لي طلب اذا امكن

لإني بصراحه عجزت اعدل بالكود المرفق

وسؤالي هو

test03.jpg

هل يمكن احتساب هذه ان تكون نقطه وصل

يعني ممكن ان يصل من اليمين الى اليسار حتى بهذه الطريقة

اذا امكن والا بلاش يكفي الكود السابق وجزاكم الله خير

وكفيتوا ووفيتوا

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…