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

سؤال عن كيفية توزيع احرف الكلمات علي شبكة

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

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

عندي سؤال من شقين ولكن مرتبطين مع بعض بعضهم وهما كالآتي :-

1 - وضعت في الفورم 40 تكست بوكس علي شكل مربعات صغيره وبشكل شبكة

بمعني وضعت كل 8 تكست بوكس تحت بعض علي 5 اسطر ومجموعهم صار 40 تكست بوكس

2 - وضعت بقربهم 8 تكست بوكس أخرين علي جهه اخري من الفورم

وفي كل تكست بوكس كتبت فيه كلمة ( أي كلمة )

المطلوب :--

وضعت كوماند -- المطلوب اذا ضغطت الكوماند تتوزع احرف الكلمات ( احرف الكلمات وليس الكلمة كامله ) التي وضعتها في 8 تكست بوكس علي مربعات الشبكة الاربعين بشكل افقي او عمودي 00ولكن كل كلمة تكون احرفها قريبه من بعضها وليس متوزعه عشوائي علي الشبكة 0

ارجو ان تكون المعلومه قد وصلت واتمني من الاخوه الكرام الاجابه ان وجدت 0

ملاحظة : معلوم ان len توزع الكلمة الي احرف ولكن كيف اوزع الاحرف علي x , y علي الشبكة وتكون كل كلمة احرفها قريبه من بعضها 0

ودمتم

#2

سؤال: هل تستخدم مصفوفة للتكست بوكس؟ ام هل هي كلها موزعة كالتالي؟Text1, Text2, TExt3

فانصح باستخدام مصفوفة

اما عن التوزيع فلا افهم التوزيعة..

قا انا ادخلت الكلمة مرحبا

هل سيتك توزيعها كالتالي؟

م ر ح ب ا ؟

اذا كان الامر كذلك فساقوم باعطائك الكود

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#3

لعيونك تفضل الكود

boxes.zip

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#4

بارك الله فيك اخوي راكان

وشكر الله لك مجهودك الرائع

لكن اخي العزيز لو لاحظت في سؤالي الشق الثاني هو ان عندي ايضا 8 تكست بوكس منفصلين عن الشبكه الاربعين تكست بوكس 0

احتاج اني املأ الـ 8 تكست بوكس بكلمات ثم اضغط الكوماند وبعدها مباشره تتوزع احرف الكلمات للـ 8 تكست بوكس في الشبكه وتكون علي x و y

00000

للتوضيح اكثر انا قاعد اعمل مسابقه ( كلمة السر ) الموجوده في الصحف

وهو ان تتوزع احرف الكلمات الثمانيه علي شكل راسي وافقي في الشبكه وعندي في الاسفل الكلمات الثمانيه 00 وهنا اختار الكلمة الاولي وابدأ بالبحث علي احرفها واعلم عليها 00

وشاكرين مجهودكم الرائع

#5

زين اخوي راكان نقدر نعمل عمل ثاني :-----

الحين انا عملت قاعدة بيانات بالاكسس بـ 48 تكست

عملت منهم اربعين علي شكل شبكة و 8 بالقرب منهم

وكتبت 8 كلمات في التكست الثمانيه وو زعت احرف الـ 8 كلمات يدويا بشكل افقي ورأسي علي الشبكه الاربعينيه 000000

وقمت وربطت الاكسس بالفيجوال بيسك وبان عندي كل شي بالفيجوالبيسك بالتمام 0000000

وعملت 8 كوماند لكل كوماند يظهر كلمة ( في حالة الضغط علي الكوماند الاول يضهر الكلمة الاولي وهكذا )

في حالة ظهور الكلمة الاولي يبدأ المتسابق بالبحث عن احرف الكلمات ويعلمها 00 وفي حالة تطابق الكلمة مع الاحرف يحولك علي فورم ثاني 0 وهكذا نرجع مره ثانيه للفروم الاول ثم يختفي الكوماند الاول ويظهر الكوماند الثاني وفي حالة الضغط عليه تظهر الكلمة الثانيه ويبدأ المتسابق بالبحث عن احرف الكلمة الثانيه وهكذا 0

كل هذا عملته بشكل ممتاز 00 ولكن السؤال هنا :--

هو اني في حالة ظهور الكلمة الاولي والبحث عن احرفها 00 هناك ايضا احرف متشابهه تأخذ مكان الاحرف الاصليه مثل كلمة ( خالد و المانع ) فيهم احرف متشابهه مثل ( ا و ل ) المطلوب اني ودي اعمل لكل كلمة ( عائله خاصه ) مثل نرمز لها ( 0 ) والكلمة الثانيه لها عائله نرمز لها ( 1 ) وهكذا

بحيث ما تنجح العمليه الي بالاحرف لنفس العائله 00

هذا المطلوب ولكن كيف ؟

ودمتم

#6

ها من الممكن ارفاق الملفات لاطلع على الترتيب للفورم؟

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#7

هذا العمل لكن مو مرتب :)

طبعا العمل بشكل اكبر ولكن خلينا نقتصر علي 40 تكست فقط

وشكرا لك

text2.zip

#8

البرنامج يعمل بصورة ممتازة اخي مما يدل على ان مستواك جيد جدا مع اللغة :)

اما عن الاحرف المتشابهة فهذا سهل... لانه لنفرض ان عندك كلمة راكان و كلمة طارق.... كلاهما يحتوي على حرف الراء... لكن من السهل اخذ الفرق بيهنما انه كلمة راكان يوجد بها حرف الراء في البداية لكن طارق في الوسط... بالتالي موقع هذه الاحرف يساعد ايضا في التحديد

الدالة instr تعطيك الموشر او بمعنى اخر موقع الحرف الذي تبحث عنه في الجملة فاذا كان 0 فالحرف او الكلمة غير موجودة ... بالتالى فابحث عن حرف معين في الكلمة الاولى و قم بتخزين موقع هذا الحرف و من ثم الكلمة الثانية... و قم بمقارنة الموقعين فاذا كان الموقعين نفس الشيء عندها يمكنك فعل ما تريد

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#9

بارك الله فيك اخوي راكان وهذا من طيبك والعين ما تعلي علي الحاجب

اخوي راكان المسابقه ليست لمره واحده ولكن لعدة مرات وفي كل مره لازم يتم تغيير الكلمات والاحرف 00ولو لاحظت في البرنامج ان تقدر تضغط احرف متشابهه 0

وبرمجة الحرف غير مجديه لان الاحرف واماكنها راح تتغير في المسابقه الثانيه

لكن نقدر نعمل عائله لكل كلمة ونرمز لها بـ ( 0 ) مثلا والكلمة الثانيه بـ ( 1 )

بحيث ما ينشطب اي حرف الا احرف العائله الواحده 0000

من زمان سبق ودرست شغله من هذه لكن الكبر شين :)

اشغلتك معاي وارجوا المعذره

تحياتي لك

#10

والله انا ضعت بصراحة... يعني مش عارف قصة الاحرف المتماثلة... لقد فهمت موضوع المسابقة نفسه لكن عن الاحرف هل تعني بانك تريد ان تجعل المستخدم يختار مثلا حرف الالف مرة وحدة و هكذا؟

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#11

خلينا نقول اسم ( خالد ) في التكست الاول واسم ( خليفة )في التكست الثاني

في حالة ضغطت الكوماند الاول يضهر اسم ( خالد ) وابدأ بالبحث عن احرف كلمة خالد 000 تمام

فلنفرض احرف كلمة خالد في المربعات الاولي للشبكة ويوجد ايضا حرف كلمة( خليفه ) في نصف الشبكه 00 فذهبت الي نصف الشبكه وشطبت حرف ( خ ) -- هنا لابد ان ترفض الشبكه الحرف لانه ليس من نفس عائلة احرف خالد وإنما هو من عائلة اخري تحت كلمة خليفه ----

وضحت :)

اكيد انك دخت معاي لاني انا دايخ في عملها :)

#12

على ما فهمته انك لا تريد المستخدم ان يضغط زر حرف ال خ من الكلمة الثانية "خالد" في الوقت الذي يكون فيه يقوم باختيار احرف كلمة "خليفة".

في هذه الحالة يجب عليك ان تقوم بحفض ال Index للتكست بوكس الذي يوجد فيه حرف الخاء لكلمة خليفة و اذا ضغط المستخدم على حرف الخاء و كان الIndex لا يطابق فتقوم برفضه باظهار رسالة خطأ

ارجو ان اكون قد افدتك هذه المرة

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#13

بارك الله فيك اخوي راكان

ولكن ما قلته قد عملته من زمان ولكنها غير مجديه

لان المسابقه تتغير باستمرار لان اذا اليوم الاسم الاول للتكست الاول اسم خالد غدا يمكن نغيره الي عبدالرحمن فهنا تغيرت الاحرف وعدد الاحرف ايضا

واذا كان خالد في الاسطر الاولي في الشبكه فكلمة عبدالرحمن يمكن تكون في الاسطر الاخيره اي لتكست آخر 0

--- هذه المسابقة يوميه لان اذا انتهي المتسابق من اللعبه اليوم نذهب الي الاكسس ونغير الكلمات الثمانيه و احرف الشبكات فقط لعمل مسابقه اخري وتقوم البرمجه بدورها

بمعني ان قاعده البيانات في الاكسس اهي لوحة التحكم لنا 0 وما علينا الا تغيير الكلمات والاحرف في الشبكة بدون المساس في البرمجه 0

اعتقد لو نعملها عن طريق الاكسس مباشره وهو وضع كود معين لكل كلمة من الكلمات الثمانيه ونشير اليها في برمجتنا في الفيجوال افضل 00

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

ايش رايك

#14

لا انا قصدت اضافة الIndex عند وضع الاحرف... مش على ال Database وهذا سيجعل الامر سهل... ساقوم بشرح العملية بكود بكرة ان شاء الله

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#15

انا في الانتظار اخ راكان

#16

في الكود المرفق اعلاه مني اضف هذا

Dim LetterIndicies As Collection
Private sub Form_Load()
Set LetterIndicies = new Collection
End Sub

Private Sub Command2_Click()
Dim word As String
Dim i As Integer
word = InputBox("enter a word")
For i = 1 To Len(word)
    Text1(i - 1) = Mid(word, i, 1)
    LetterIndicies.Add Mid(word, i, 1), i
Next i
End Sub

يقوم هذا الكود بطلب ادخال كلمة و التي ستم وضع مكان كل حرف منها في Collection يمكن استخدام هذه ال Collection لصنع عائلة لكل كلمة من الكلمات المدخلة في ال Database

للتأكد بان الحرف في مكانه الصحيح تستعمل ال Index

Dim IndexOfLetter as string
Dim Letter as string
letter = inputbox("enter the letter u r looking for")
indexOfLetter = inputbox("enter index of this letter")
if LetterIndicies(val(indexOfLetter)) = Letter then
msgbox "this letter is from the word family you are looking for"
end if

ارجو ان اكون قد افدت في هذا

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#17

ان شاء الله بجرب الكود وبارك الله فيك اخوي راكان

وجدت تقريبا الحل لتوزيع احرف الكلمات علي الشبكة بسهوله -- وهو ان تضع جميع الكلمات التي ترغب بها ثم تضغط الكوماند ليتم توزيع جميع احرف الكلمات الي الشبكة بطريقه عشوائيه ولكن كل كلمة احرفها قريبه من بعض 00

تحياتي لكم

هذا الموضوع مغلق.

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

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

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

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

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