منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : محتاج فكرة لعمل كود او دالة Random
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
(26-11-21, 10:06 AM)معاند الحظ كتب : [ -> ]اخوي اذا فهمت طلبك صح فالحل هو
اذا كنت تريد تغيير قيمة الـtext للازرار عشوائيا بدون تكرار اي قيمة سبق ان اعطيت لـtext احد الازرار
 فيمكنك استخدام مصفوفة تحتوي الارقام التي تريد اعطائها لقيمة text للازرار 
ثم تعمل حلقة تكرار for loop لكل زر تريد تغيير قيمته ابتداء من الاول في الحلقة
تعطيه القيمة (الرقم ) المخزن في المصفوفة ثم تحذف عنصر المصفوفة الذي اخذت منه القيمة
وهكذا تضمن انه لن يتم تكرار قيمة text احدالازار في زر اخر
وهكذا تفعل مع كل زر تريد تغيير قيمته

بصراحة واجهتني المشكلة هذي عندما كنت ابرمج لعبة MineSweeper  كانسة الالغام حيث انها تقتضي وضع
عدد معين من الالغام  لمجموعة مربعات field يتم اختيارها عشوائيا بحيث يجب ان لايحتوي اي مربع
على اكثر من لغم واحد

والموضوع موجود هنا في المنتدى 

وهنا تقدر تحمل مشروع اللعبة MineSweeper - كانسة الالغام

ملاحظة : قد لايكو ن الحل مثالي لاني توقفت عن العمل على المشروع من كم سنة
لكن يمكنك تحسينه دائما اذا اردت

تمام جزاك الله قد اطلعت على اللعبة الخاصة بك وهي رائعة لكن المصفوفة لا استطيع استخدامها لانها في كل مرة تعطي بفس القيمة للbtn لا يوجد عشوائية المختصر اني اريد عشوائية بالتوزيع ويكون كل btn ياخذ رقم واحد وبدون ان يتكرر الرقم في btn ثانية وعليه تكون احدى btn ال 9 فارغة
إقتباس :ثم تحذف عنصر المصفوفة الذي اخذت منه القيمة

وهكذا تضمن انه لن يتم تكرار قيمة text احدالازار في زر اخر
تذكرت اني لجات لها من قبلSmile
لكن نسيتSad
توليد نص عشوائي ثم حذفه تلافيا للتكرار

(26-11-21, 11:12 AM)anasghost كتب : [ -> ]تمام جزاك الله قد اطلعت على اللعبة الخاصة بك وهي رائعة لكن المصفوفة لا استطيع استخدامها لانها في كل مرة تعطي بفس القيمة للbtn لا يوجد عشوائية المختصر اني اريد عشوائية بالتوزيع ويكون كل btn ياخذ رقم واحد وبدون ان يتكرر الرقم في btn ثانية وعليه تكون احدى btn ال 9 فارغة

باذن الله احاول في تطبيق الفكرة.
(26-11-21, 02:09 PM)سعود كتب : [ -> ]
إقتباس :ثم تحذف عنصر المصفوفة الذي اخذت منه القيمة

وهكذا تضمن انه لن يتم تكرار قيمة text احدالازار في زر اخر
تذكرت اني لجات لها من قبلSmile
لكن نسيتSad
توليد نص عشوائي ثم حذفه تلافيا للتكرار

(26-11-21, 11:12 AM)anasghost كتب : [ -> ]تمام جزاك الله قد اطلعت على اللعبة الخاصة بك وهي رائعة لكن المصفوفة لا استطيع استخدامها لانها في كل مرة تعطي بفس القيمة للbtn لا يوجد عشوائية المختصر اني اريد عشوائية بالتوزيع ويكون كل btn ياخذ رقم واحد وبدون ان يتكرر الرقم في btn ثانية وعليه تكون احدى btn ال 9 فارغة

باذن الله احاول في تطبيق الفكرة.
ربي يجزيك بالخير انا في انتظارك خذ الملف المرفق وعدل عليه لو سمحت
كلمة مرور فك الضغط:vb4arb
المثال مرفق والتغيير فقط للنص الظاهر على الزر فقط 
(26-11-21, 04:01 PM)سعود كتب : [ -> ]
كلمة مرور فك الضغط:vb4arb
المثال مرفق والتغيير فقط للنص الظاهر على الزر فقط 

جزاك الله خير بارك الله فيك اقدر لك تعبك واسال الله ان يجعلها في ميزان حسناتك Heart
(27-11-21, 06:30 PM)anasghost كتب : [ -> ]
(26-11-21, 04:01 PM)سعود كتب : [ -> ]
كلمة مرور فك الضغط:vb4arb
المثال مرفق والتغيير فقط للنص الظاهر على الزر فقط 

جزاك الله خير بارك الله فيك اقدر لك تعبك واسال الله ان يجعلها في ميزان حسناتك Heart

واياك وكل قاريء لهذا الكلام.
(26-11-21, 02:09 PM)سعود كتب : [ -> ]
إقتباس :ثم تحذف عنصر المصفوفة الذي اخذت منه القيمة

وهكذا تضمن انه لن يتم تكرار قيمة text احدالازار في زر اخر
تذكرت اني لجات لها من قبلSmile
لكن نسيتSad
توليد نص عشوائي ثم حذفه تلافيا للتكرار

(26-11-21, 11:12 AM)anasghost كتب : [ -> ]تمام جزاك الله قد اطلعت على اللعبة الخاصة بك وهي رائعة لكن المصفوفة لا استطيع استخدامها لانها في كل مرة تعطي بفس القيمة للbtn لا يوجد عشوائية المختصر اني اريد عشوائية بالتوزيع ويكون كل btn ياخذ رقم واحد وبدون ان يتكرر الرقم في btn ثانية وعليه تكون احدى btn ال 9 فارغة

باذن الله احاول في تطبيق الفكرة.

تمام عليك اخوي سعود Smile
(26-11-21, 11:12 AM)anasghost كتب : [ -> ]تمام جزاك الله قد اطلعت على اللعبة الخاصة بك وهي رائعة لكن المصفوفة لا استطيع استخدامها لانها في كل مرة تعطي بفس القيمة للbtn لا يوجد عشوائية المختصر اني اريد عشوائية بالتوزيع ويكون كل btn ياخذ رقم واحد وبدون ان يتكرر الرقم في btn ثانية وعليه تكون احدى btn ال 9 فارغة

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

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

كود :
  Sub randomizeIt()

        'اولا نعلن عن مصفوفة نحفظ فيها الارقام الازرار
        Dim myArray As New ArrayList

        'نضيف عنصر الى المصفوفة له قيمة فارغة
        myArray.Add("")

        'نملأ بقية عناصر المصفوفة بارقام الازرار
        For a As Integer = 1 To 8
            myArray.Add(a)
        Next

        'متغير نستخدمه ليكون انديكس (الفهرس) لعنصر المصفوفة الذي تم اختياره عشوائيا
        Dim value As Integer
        Randomize()
        value = CInt(Int((myArray.Count * Rnd()) + 1))
        'نعطي الزر الاول قيمة عنصر المصفوفة الذي تم اختياره عشوائيا
        btn1.Text = myArray(value - 1)
        'نحذف عنصر المصوفة
        myArray.Remove(myArray(value - 1))
        'نعيد تحجيم المصفوفة
        myArray.TrimToSize()

        ' يتم تكرار نفس الخطوات
        Randomize()
        value = CInt(Int((myArray.Count * Rnd()) + 1))
        btn2.Text = myArray(value - 1)
        myArray.Remove(myArray(value - 1))
        myArray.TrimToSize()

        Randomize()
        value = CInt(Int((myArray.Count * Rnd()) + 1))
        btn3.Text = myArray(value - 1)
        myArray.Remove(myArray(value - 1))
        myArray.TrimToSize()

        Randomize()
        value = CInt(Int((myArray.Count * Rnd()) + 1))
        btn4.Text = myArray(value - 1)
        myArray.Remove(myArray(value - 1))
        myArray.TrimToSize()

        Randomize()
        value = CInt(Int((myArray.Count * Rnd()) + 1))
        btn5.Text = myArray(value - 1)
        myArray.Remove(myArray(value - 1))
        myArray.TrimToSize()

        Randomize()
        value = CInt(Int((myArray.Count * Rnd()) + 1))
        btn6.Text = myArray(value - 1)
        myArray.Remove(myArray(value - 1))
        myArray.TrimToSize()

        Randomize()
        value = CInt(Int((myArray.Count * Rnd()) + 1))
        btn7.Text = myArray(value - 1)
        myArray.Remove(myArray(value - 1))
        myArray.TrimToSize()

        Randomize()
        value = CInt(Int((myArray.Count * Rnd()) + 1))
        btn8.Text = myArray(value - 1)
        myArray.Remove(myArray(value - 1))
        myArray.TrimToSize()

        Randomize()
        value = CInt(Int((myArray.Count * Rnd()) + 1))
        btn9.Text = myArray(value - 1)
        myArray.Remove(myArray(value - 1))
        myArray.TrimToSize()
    End Sub

وهذا مشروعك المعدل

[attachment=27355]

بالتوفيق
الصفحات : 1 2