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

نسخة كاملة : تصميم لعبة بال VB
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم..
لما اصمم لعبة ب VB ، وهي لعبة اسئلة واختار الاجابة الصحيحة
كيف اجعل الاجابة الصحيحة يتغير مكانها ؟
لان اذا كان الاجابة مثلا ع اليمين اللاعب سيعرف ان كل ما يوجد بهذا المكان هو الاجابة الصح بدون ان يحل السؤال !!
وشكرًا ?
السلام عليكم ورحمة الله وبركاته

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




كود :
Dim Ans As String = "Ans1-Ans2-Ans3-Ans4"
   Dim arr As New List(Of Integer)
   Dim q As Object
   Dim Rand As New Random
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       ListBox1.Items.Clear()
       q = From a As String In Ans.Split("-")
       Do Until arr.Count = Ans.Split("-").Count
           Dim n As Integer = Rand.Next(0, Ans.Split("-").Count)
           If Not arr.Contains(n) Then
               arr.Add(n)
               ListBox1.Items.Add(Ans.Split("-")(n))
           End If
       Loop
       arr.Clear()
   End Sub
وعليك السلام saharEzz
هذا يعتمد على تصميمك للبرنامج
لكن أعتقد انك تريد ان تكون الاجابات في خانات مرقمه 1و2و3...
او بالاحرف أ,ب,ج,د 

اتمنى ينفع هذا الكود

كود :
Public Class Form1
   Dim answer(3) As String
   Dim correctAnswer As String
   Dim AnswerLabel(3) As Label
   Dim answerArraylist As New ArrayList

   Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

       Quiz()

   End Sub


   Sub Quiz()

       For a As Integer = 0 To 3
           answerArraylist.Add(a)
       Next



       Dim myQuestion As String = "ماذا تسمى عملة الكويت؟"
       lblQuestion.Text = myQuestion

       correctAnswer = "دينار"

       answer(0) = "دينار"
       answer(1) = "ليرة"
       answer(2) = "ريال"
       answer(3) = "جنيه"

       AnswerLabel(0) = New Label
       AnswerLabel(1) = New Label
       AnswerLabel(2) = New Label
       AnswerLabel(3) = New Label

       For a As Integer = 0 To 3

           Randomize()
           Dim value As Integer = CInt(Int((answerArraylist.Count * Rnd()) + 1))
           AnswerLabel(answerArraylist(value - 1)).Text = answer(a)
           answerArraylist.Remove(answerArraylist(value - 1))

       Next



       Label1.Text = AnswerLabel(0).Text
       Label2.Text = AnswerLabel(1).Text
       Label3.Text = AnswerLabel(2).Text
       Label4.Text = AnswerLabel(3).Text

   End Sub

   Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

       Quiz()

   End Sub

 
   Private Sub Label1_Click(sender As System.Object, e As System.EventArgs) Handles Label4.Click, Label3.Click, Label2.Click, Label1.Click

       If sender Is Label1 Then

           If Label1.Text = correctAnswer Then
               MsgBox("إجابة صحيحة")
           Else
               MsgBox("إجابة خاطئة")
           End If


       ElseIf sender Is Label2 Then

           If Label2.Text = correctAnswer Then
               MsgBox("إجابة صحيحة")
           Else
               MsgBox("إجابة خاطئة")
           End If

       ElseIf sender Is Label3 Then

           If Label3.Text = correctAnswer Then
               MsgBox("إجابة صحيحة")
           Else
               MsgBox("إجابة خاطئة")
           End If

       ElseIf sender Is Label4 Then

           If Label4.Text = correctAnswer Then
               MsgBox("إجابة صحيحة")
           Else
               MsgBox("إجابة خاطئة")
           End If

       End If



   End Sub
End Class