اذهب الي المحتوي
أوفيسنا

اختيار عشوائي للحروف دون تكرار


hougar
إذهب إلى أفضل إجابة Solved by jjafferr,

الردود الموصى بها

وعليكم السلام أخي @hougar 🙂 

تكرما .. إشرح الفكرة كاملة لكي تتضح الطريقة المطلوبة .. ( كأنك تحاول تصميم لعبة أو مسابقة من نوع ما ؟! ) ..
ما هي الآلية التي تريدها ؟

كم عدد الحروف التي ستظهر كل مرة ؟

وماذا بعد ظهور الحروف ؟

تم تعديل بواسطه Moosak
رابط هذا التعليق
شارك

37 دقائق مضت, Moosak said:

وماذا بعد ظهور الحروف ؟

بعد ظهور الحروف ستلاحظ أنه عند النقر على خانة حرف ما يتم اختياره وتظهر حانات جديدة وعند النقر على Command8 تتشكل كلمة

رابط هذا التعليق
شارك

  • أفضل إجابة

وعليكم السلام 🙂

 

وهذه طريقتي :

image.png.5cee803fcc7b28da68e481865c82140d.png

.

وهذه محركات العمل :

Option Compare Database

    Dim Number_Exists As String
    Dim i As Long
'

Sub Rnd_Number()

    Dim Max_Number As Long, Rnd_Number As Long
    
    Max_Number = DCount("*", "Char")
    
    
    For i = 1 To 5
    
    
Start_Over:

        Randomize
        Rnd_Number = Int((Max_Number * Rnd) + 1)
    
        'check if this number was used
        If InStr(Number_Exists, Rnd_Number) > 0 Then
    
            'this number exists, get another one
            GoTo Start_Over
    
        Else
        
            'its a new number, add it
            Number_Exists = Number_Exists & Rnd_Number
        
        End If
    
        
        'use the number, get the Char
        Me("T" & i - 1) = DLookup("Cha1", "Char", "IDW=" & Rnd_Number)
    
    Next i
    
End Sub


Private Sub cmd_Fresh_Sart_Click()

    Number_Exists = ""
    
    Call Clear_Fields
    Call Rnd_Number
End Sub


Private Sub Form_Load()

    Call Clear_Fields
    Call Rnd_Number
End Sub

Sub Clear_Fields()

    'clear the lower fields
    For i = 1 To 5
        Me("ch" & i) = ""
    Next i
    
    Me.Word0 = ""
    
End Sub

 

جعفر

1525.GAME WORD.accdb.zip

  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

16 ساعات مضت, husamwahab said:

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

بارك الله فيك وشكرا على الإجابة الوافية .... وطريقتك في الكود بسيطة لكنها لا تمنع تكرار ظهور الحرف.

شكرا لك وألف شكرا فمنكم نتعلم

  • Like 1
رابط هذا التعليق
شارك

9 ساعات مضت, jjafferr said:
Start_Over:

        Randomize
        Rnd_Number = Int((Max_Number * Rnd) + 1)
    
        'check if this number was used
        If InStr(Number_Exists, Rnd_Number) > 0 Then
    
            'this number exists, get another one
            GoTo Start_Over
    
        Else
        
            'its a new number, add it
            Number_Exists = Number_Exists & Rnd_Number
        
        End If

شكرا جزيلا كفيت وزيادة عنما طلبته

ولآنني أتعلم منكم أسألك أحي جعفر هل هذا هو الكود الذي يمنع التكرار

وشكرا جزيلا مرة أخرى

رابط هذا التعليق
شارك

اليك الشرح كاملا :

 

image.png.feb67fd536d91eb8e7bf7550a8a8cb0a.png

1. عدد سجلات الجدول ،

2. استخراج رقم عشوائي بين الرقمين 1 وعدد السجلات ،

3. هل الرقم العشوائي موجود في المتغير Number_Exists :

4. نعم موجود ، اذن ارجع لإختيار رقم آخر ،

5. لا ، غير موجود ، اذن اضفه الى المتغير Number_Exists .

 

جعفر

  • Thanks 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information