![]() |
|
لعبة تحديد الكلمات - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : لعبة تحديد الكلمات (/showthread.php?tid=8227) |
لعبة تحديد الكلمات - aftfm - 03-04-13 بالنسبة للأداة RectangleShape1 اين اجدها في vb.net 2008 لعبة تحديد الكلمات - sooriaty03 - 04-04-13 السلام عليكم ورحمة الله وبركاته أخي الكريم عرفت مصفوفتين من نوع قائمة ليبل الأولى LabelsList وتضم الليبل الخاص بالأحرف - عددهم 110 الثانية ColumnsList وتضم الليبل الخاصة بتلك التي تظهر فيها الكلمات بعد التأشير -عددهم 12 ثم عرفنا مصفوفة باسم ColumnIndex - عدد العناصر 3 - Verbs, Objects and Days وعندما يتم اختيار الكلمة الصحيحة يتم إضافتها إلى الليبل الخاص بها عن طريق رقم المؤشر (Index) الخاص بكل كلمة حيث أن الكلمات مرتبة داخل قائمة باسم WordsList وللتوضيح سأضرب لك مثالا: قام المستخدم باختيار كلمة FRIDAY أي أنه اختار يوم فكيف سنضيفه في البداية سنأخذ Index الخاص بكلمة FRIDAY داخل WordsList وقيمته 10 لأن Index يبدأ من الصفر الآن يجب أن نعرف في أي مجموعة نضعه فنقسم 10 على 4 (عدد الكلمات في كل مجموعة) فتكون النتيجة (2.5) ونأخذ الرقم الصحيح ونهمل العدد العشري فتصبح النتيجة 2 أي المجموعة الثالثة حيث أن صفر للأولى وواحد للثانية واثنين للثالثة الآن نأخذ القيمة الموجودة داخل المصفوفة (ColumnIndex(2 ستكون 8 أي الليبل 8 وسنضع في القيمة بالشكل التالي كود : ColumnsList.Item(8).Text = "FRIDAY"فكل كلمة يتم اختيارها سوف يقوم البرنامج بالتأكد هل هي موجودة في القائمة فإذا لم تكن موجودة فسوف يضيفها إلى القائمة وأيضا الليبل الخاص بها وإلا فسيخبرك بأن الكلمة قد تم اختيارها سابقا وأيضا من هذه القائمة استفدنا من معرفة هل تم اختيار كافة الكلمات أم لا وذلك بالتأكد من عدد العناصر فإذا وصل إلى 12 عنصر فهذا يعني أن المستخدم قد قام باختيار جميع الكلمات وعندها ستظهر الرسالة باكتمال اللعبة.... بالتوفيق لعبة تحديد الكلمات - sooriaty03 - 04-04-13 aftfm كتب :بالنسبة للأداة RectangleShape1 السلام عليكم ورحمة الله وبركاته أخي اعذرني فالنسخة التي لدي 2010 ولا أعرف إن كانت موجودة في 2008 أم لا ننتظر أحد الأعضاء يساعدنا في هذا الموضوع بالتوفيق لعبة تحديد الكلمات - aftfm - 04-04-13 جزاك الله خير على التوضيح والشرح بارك الله فيك لكن واجهتني مشكلة في حالة قامي بتسمية الـ Label من 1 الى 110 مثلا قمت بتسميتهم lbl_1 الى lbl_110 وقمت بتعديل الكود حسب اسماء الـ lbael لم يعطيني نتائج صحيحة لماذا هل يشترط بقاء التسمية Label1 الى Label110 كما هي لعبة تحديد الكلمات - sooriaty03 - 04-04-13 السلام عليكم ورحمة الله وبركاته الأفضل بقاؤها كما هي والسبب أن الكود يعتمد اعتمادا كليا على هذه المسميات بالتوفيق لعبة تحديد الكلمات - aftfm - 04-04-13 جزاك الله خير وبارك الله فيك لعبة تحديد الكلمات - aftfm - 04-04-13 السلام عليكم ورحمة الله وبركاته الاخ العزيز sooriaty03 عند تغيير المثال لشبكة اقل لمثال آخر واجهت بعض المشاكل في اطوال الشبكة وبعض خانات اظهار الكلمات مثل الخانة 4 و7 و8 في المثال المرفق اتمنى توضيح جميع النقاط في حالة لو اردنا تغيير او إنشاء مثال مشابه ولكن باطوال مختلفة للشبكة ولعدد الكلمات أي اعطنا السنارة ولا تعطنا السمكة كما قال بعض الزملاء في المنتدى الكبير هذا شاكرين لك حسن تعاونك وزادك الله علماً وقدراً لعبة تحديد الكلمات - sooriaty03 - 06-04-13 السلام عليكم ورحمة الله وبركاته أخي الكريم أول أمر ولعلها السمكة الأولى هو أن تحدد أساسيات البرنامج - ما المطلوب وما هي الأدوات المستعملة وكم عددها - لأن هذا سيسهل عليك كثيرا لأن أي تعديل عليه مستقبلا قد يكبدك وقتا وجهدا كنت تستطيع منذ البداية أن تتلافى ذلك سأفترض بأن أساسيات برنامجك - مع أنني حتى الآن لا أعرفها تماما - هي تكوين شبكة من أحرف - لا أعرف حتى الآن عددها - تحتوي على كلمات معينة يقوم المستخدم بالبحث عنها فإذا كانت صحيحة يتم إدراجها تحت مسميات معينة وهي Verbs,Objects and Days الآن نحدد الأدوات المستخدمة لذلك: الأنسب في هذه الحالة أن نستخدم أداة Label قمت بوضع Label1 حددت له بعض الخصائص كأن جعلت AutoSize يساوي False وعرضه 44 × 41 الآن قمت بنسخ هذا الـ Label1 وعمل لصق له عدة مرات وفي كل مرة أقوم بصف ما تم لصقه إلى جوار ما قبله مستخدما الفأرة مع الضغط على زر alt للتحرك بحرية ويجب هنا أن يتم صف الأدوات بالتلاصق التام مع بعضها البعض وإلا ستظهر مشاكل أثناء التنفيذ بعد أن انتهينا من صف الأدوات قمت بفتح الملف Form1.Designer.vb وقمت بإعادة ترتيب الأدوات ليسهل علي استدعاءها - لاحظ المثال الذي رفعته لك كيف قمت بترتيب الأدوات حيث جعلت أول 12 ليبل هي تلك التي سنضيف إليها الكلمات ثم باقي الليبل 18 التي لاتهمنا ثم باقي الليبل الخاصة بالأحرف وعددها 110 ليبل وكلها مرتبة ترتيبا تصاعديا انتهينا الآن من التصميم الآن إلى كتابة الكود: كما قلت سابقا قمت بتعريف عدة متغيرات يعتمد عليه البرنامج فأولها LabelsList التي تضم جميع الليبل الخاص بالأحرف وهنا يأتي ترتيبي السابق لليبل حيث أنني طلبت من البرنامج استثناء أول 30 ليبل تجد ذلك في الأمر التالي لاحظ اللون الأحمر كود : LabelsList.AddRange(Me.Controls.OfType(Of Label)[color=#FF0000].Skip(30)[/color])وهنا أيضا يأتي دور الترتيب حيث أنني وضعتهم في مقدمة الأدوات فطلبت من البرنامج أن يأخذ أول 12 ليبل وذلك بالأمر التالي - لاحظ اللون الأحمر كود : ColumnsList.AddRange(Me.Controls.OfType(Of Label)[color=#FF0000].Take(12)[/color])الآن عرفت ثلاثة أحداث هي Mouse_Down,MouseMove and MouseUp وهي للـ 110 ليبل الخاص بالأحرف وهنا أهم العمليات ستجد أرقاما قد تسبب لك صداعا ولكن لا بأس سيتلاشى الصداع بإذن الله إذا عرفت ما هي الأرقام أول الأرقام كود : StartingLabelLong = Math.Floor((Val(sender.Name.Substring([color=#FF0000]5[/color])) - [color=#0000FF]1[/color]) / [color=#00FF00]11[/color])هذا الرقم سيطلب رقم الليبل حيث أنه وبواسطة الأمر SubString سيأخذ الرقم الموجود بعد كلمة Label وحيث أن عدد حروف Label خمسة فإذن سيأخذ ما بعد خمسة إلى آخر اسم الليبل فإذا كان اسم الليبل Label1 فسوف يعطي الرقم 1 وإذا كان الاسم Label110 فسوف يعطي الرقم 110 - الأمر سهل أليس كذلك؟!!! ![]() ثاني الأرقام الرقم واحد وهو يقوم بطرح واحد من الرقم السابق لأن عدد الليبل في الصف 11 فلو بدأنا بالـ Label11 سيكون الرقم 11 سنقسمه على 11 (عدد الليبل في الصف) ستكون النتيجة 1 وهذا خطأ نحن ما زلنا في أول صف فلو أنقصنا واحد من القيمة 11 سيصبح الناتج 10 ثم سنقسمه على 11 ستكون النتيجة صفر وهو الصحيح ثالث الأرقام وهو المهم جدا جدا وهو سبب الخطأ الذي ظهر لك حين غيرت عدد الليبل في الصف هذا الرقم هو 11 وهو عدد الليبل الموجود في الصف الواحد فكلما قمت بتغيير عدد الليبل في الصف وجب عليك تغيير هذا الرقم للموضوع تتمة إن شاء الله واعذرني وذلك بسبب انشغالي بالتوفيق لعبة تحديد الكلمات - aftfm - 06-04-13 بارك الله فيك جزاك الله الف خير |