Diskuze: Quiz Software - Vygenerování náhodné otázky

C# .NET .NET (C# a Visual Basic) Quiz Software - Vygenerování náhodné otázky American English version English version

Avatar
alien8k
Člen
Avatar
alien8k:

Dobrý den,
vytvářím quíz a zasekl jsem se. Chtěl bych vás poprosit o pomoc s úpravou kódu.
Abych popsal jak to má vypadat:
Na formu mám 4 labely (pro otázku a 3 možnosti odpovědi), 3 radio buttony (pro výběr odpovědi) a dva buttony se kterými potřebuji pomoct. Teda, momentálně tam mám jen jeden, protože nemám vyřešený kód, ale chtěl bych abych s jedním buttonem zapnul kvíz a zrovna vygeneroval do labelu náhodou otázku (ten button se poté hned skryje) a druh, který bude pokračovat v roli generování náhodných otázek a obsahovat podmínku pro správnou odpověď zároveň s podmínkou, že po 10ti otázka zobrazí další form kde se zobrazí proměnná X, což je počet správných odpovědí z deseti otázek.
Dal jsem dohromady nějaké zkušenosti, ale opravdu nevím zda-li jsme na správné cestě či úplně vedle.

Tady je ukázka zápisu textového souboru. Mám v něm 50 otázek z nichž chci náhodně generovat.

//Question|Answer1|Answer2|Answer3|right answer(a,b,c)

Question 1?|Answer1|Answer2|RightAnswer3|c
Question 2?|continue|vfvfvfvfv|gtgtgtgg|a
Question 3?|njmbnmb|right answer|right!|b
Question 4?|wasdw|cdcdc|right!|c
Question 5?|good!|fefefef|frfrfrfrf|a

A tady je kód:
http://oi60.tinypic.com/20pbtjo.jpg (Screen kódu a chyby v syntaxy.)

Public Class Form2

    Dim q1(10), a1(10), a2(10), a3(10), ca(10) As String
    Dim value As Integer
    Dim x As Integer //proměnná pro výsledný počet správných odpovědí.

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

        Dim soubor As New IO.StreamReader("textfile1.txt")
        While Not soubor.EndOfStream
            Dim txtline() As String = soubor.ReadLine().Split("|")
            Dim question As String = txtline(0)
            Dim ans1 As String = txtline(1)
            Dim ans2 As String = txtline(2)
            Dim ans3 As String = txtline(3)
            Dim rightanswer As String = txtline(4)
        End While

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim selectedanswer As String = ""

        If RadioButton1.Checked = True Then selectedanswer = "a"
        If RadioButton2.Checked = True Then selectedanswer = "b"
        If RadioButton3.Checked = True Then selectedanswer = "c"

        If selectedanswer = ca(value) Then x = x + 1
        loadquestions()
    End Sub

    Public Sub loadquestions()


        Randomize()

        value = CInt(Int((10 * Rnd()) + 1))
        Label1.Text = q1(value).ToString
        Label2.Text = a1(value).ToString
        Label3.Text = a2(value).ToString
        Label4.Text = a3(value).ToString

    End Sub

End Class
Editováno 13.4.2015 17:37
 
Odpovědět 13.4.2015 17:35
Avatar
Odpovídá na alien8k
Michal Štěpánek:

V té chybě ti to píše...Chybí ti instance.
Mrkni se, jak se používá generování náhodných čísel
https://msdn.microsoft.com/….random.aspx
A tady na webu je toho taky dost... Dej si tady vyhledat slovo "Random" a inspiruj se v diskusích...

Editováno 14.4.2015 7:53
Nahoru Odpovědět 14.4.2015 7:52
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.