تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] تصميم لعبة بال VB
#1
السلام عليكم..
لما اصمم لعبة ب VB ، وهي لعبة اسئلة واختار الاجابة الصحيحة
كيف اجعل الاجابة الصحيحة يتغير مكانها ؟
لان اذا كان الاجابة مثلا ع اليمين اللاعب سيعرف ان كل ما يوجد بهذا المكان هو الاجابة الصح بدون ان يحل السؤال !!
وشكرًا ?
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم ورحمة الله وبركاته

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




كود :
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
#3
وعليك السلام 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

الرد }}}
تم الشكر بواسطة: saharEzz



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم