Quiz

  • VB6

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Maltevb.

    Hallo, ich muss in der Schule ein beliebiges Programm programmieren. Ich habe mich für ein Quiz entschieden. Dafür hat jemand anderes in einem anderen Forum schon mal den Grundlegenden Quellcode gepostet (Damit Fragen angezeigt werden etc.). Nun möchte ich, wenn die Antwort richtig ist. Das auf der rechten Seite ein balken immer weiter nach oben geht. Nur wie mache ich das?



    Da auf der rechten Seite sind alle Labels.

    Ein weiteres Problem ist, dass er sagt die Antwort ist richtig, obwohl die Antwort Falsch ist.

    Quellcode

    1. Option Explicit
    2. Dim Datei As String
    3. Dim i, n, r As Integer
    4. Dim Frage(200) As String
    5. Dim Antwort(200, 4) As String
    6. Dim Richtig(200) As Integer
    7. Private Sub Command1_Click(Index As Integer)
    8. If Index + 1 = Richtig(r) Then
    9. Label3.Caption = "richtig"
    10. Else
    11. Label3.Caption = "falsch"
    12. End If
    13. If Label3.Caption = "falsch" Then
    14. tmr1.Enabled = False
    15. Command1(0).BackColor = vbRed
    16. tmr2.Enabled = False
    17. Command1(1).BackColor = vbRed
    18. tmr3.Enabled = False
    19. Command1(2).BackColor = vbRed
    20. tmr4.Enabled = False
    21. Command1(3).BackColor = vbRed
    22. Else: Label3.Caption = "richtig"
    23. End If
    24. If Label3.Caption = "richtig" Then
    25. tmr1.Enabled = False
    26. Command1(0).BackColor = vbGreen
    27. tmr2.Enabled = False
    28. Command1(1).BackColor = vbGreen
    29. tmr3.Enabled = False
    30. Command1(2).BackColor = vbGreen
    31. tmr4.Enabled = False
    32. Command1(3).BackColor = vbGreen
    33. Else: Label3.Caption = "falsch"
    34. End If
    35. End Sub
    36. Private Sub Command2_Click()
    37. If Label3.Caption = "richtig" Then
    38. Label4(0).BackColor = vbGreen
    39. End If
    40. With Me
    41. .tmr1.Enabled = False
    42. .Command1(0).BackColor = &HC0C0C0
    43. .tmr2.Enabled = False
    44. .Command1(1).BackColor = &HC0C0C0
    45. .tmr3.Enabled = False
    46. .Command1(2).BackColor = &HC0C0C0
    47. .tmr4.Enabled = False
    48. .Command1(3).BackColor = &HC0C0C0
    49. End With
    50. Label3.Caption = "Falsch oder Richtig"
    51. tmr1.Enabled = True
    52. End Sub
    53. Private Sub Form_Load()
    54. Datei = "H:\ALG\Quizz\Fragen.txt"
    55. Open Datei For Input As #1
    56. Do While Not EOF(1)
    57. i = i + 1
    58. Line Input #1, Frage(i)
    59. For n = 0 To 3
    60. Line Input #1, Antwort(i, n)
    61. Next
    62. Input #1, Richtig(i)
    63. Loop
    64. Close #1
    65. Frage_Stellen
    66. With Me
    67. .tmr1.Enabled = False
    68. .tmr2.Enabled = False
    69. .tmr3.Enabled = False
    70. .tmr4.Enabled = False
    71. End With
    72. End Sub
    73. Private Sub Frage_Stellen()
    74. r = Int(Rnd(1) * i) + 1
    75. Label1.Caption = Frage(r)
    76. For n = 0 To 3
    77. Label2(n).Caption = Antwort(r, n)
    78. Next
    79. End Sub
    80. Private Sub Label5_Click(Index As Integer)
    81. End Sub
    82. Private Sub tmr1_Timer()
    83. Command1(0).BackColor = vbGreen
    84. Command1(3).BackColor = &HC0C0C0
    85. tmr4.Enabled = False
    86. tmr2.Enabled = True
    87. End Sub
    88. Private Sub tmr2_Timer()
    89. tmr3.Enabled = True
    90. Command1(0).BackColor = &HC0C0C0
    91. Command1(1).BackColor = vbGreen
    92. tmr1.Enabled = False
    93. End Sub
    94. Private Sub tmr3_Timer()
    95. tmr4.Enabled = True
    96. Command1(1).BackColor = &HC0C0C0
    97. Command1(2).BackColor = vbGreen
    98. tmr2.Enabled = False
    99. End Sub
    100. Private Sub tmr4_Timer()
    101. tmr1.Enabled = True
    102. Command1(2).BackColor = &HC0C0C0
    103. Command1(3).BackColor = vbGreen
    104. tmr3.Enabled = False
    105. End Sub


    Der Text ist noch ohne Kommentare und da ich auch nicht der King in vb bin, sind an manchen stellen sicherlich auch nocht schlecht programmierte Zeilen.

    Ich bitte aber nur das wesentliche zu beachten und mir zu helfen :)

    Achso eine Frage habe ich noch :) wie kann man in der mitte einen Countdown machen? Der jetzt in dem Bild zu sehen ist, ist im Hintergrund also in der Grafik drinnen. Ich würde denn dann wegmachen und mir irgendwie einen in Visual Basic zu programmieren.

    Bitte kein Komplettlösung, sondern nur Hilfen :) Weil sonst könnt ihr das ja gleich für mich schreiben :D

    Ich danke euch schonmal im voraus.

    Mit freundlichen Grüßen

    Malte Schneider


    *Topic verschoben*

    ________________________________

    Hallo, den Countdown habe ich gerade selber hinbekommen. Jetzt bleiben noch die anderen fragen übrig.

    Mit freundlichen Grüßen

    Malte Schneider
    ________________________________

    Ich habe das jetzt mit den Fragen hinbekommen. Bleibt nur noch die Frage, wie ich das mit den grünen Balken hinbekommen, der bei jeder richtigen Fragen einen nach oben geht?

    Kann man das irgendwie machen, dass der sich bewegt also ka koordinaten ändern oder so?

    Habe das jetzt noch mti Label, die den Hintergrund wechseln sollen. Aber funktioniert nur bei dem ersten Label, weil ich nicht weiß wie das geht, dass er immer das Label über dem grünen Label grün machen soll :)

    Mit freundlichen Grüßen

    Malte

    Edit By Agent: Keine dreifach-Posts! Es gibt eine Bearbeiten-Funktion! -> Posts zusammengefügt

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Agent“ ()

    Du könntest z.B. ein Shape nehmen. Hier mal ein kleines Beispiel.

    Visual Basic-Quellcode

    1. Private Sub Balken_Hoch()
    2. If Shape1.Height < 1000 Then
    3. Shape1.Height = Shape1.Height + 50
    4. Shape1.Top = 1000 - Shape1.Height
    5. End If
    6. End Sub
    7. Private Sub Balken_reset()
    8. Shape1.Left = Me.Width - Shape1.Width - 150
    9. Shape1.Top = 1000
    10. Shape1.Height = 0
    11. Shape1.BackColor = vbGreen
    12. Shape1.BackStyle = 1
    13. End Sub
    14. Private Sub Command1_Click()
    15. Balken_Hoch
    16. End Sub
    17. Private Sub Form_Load()
    18. Balken_reset
    19. End Sub
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Ich habe jetzt ein Sharp und möchte, dass es jedesmal wenn Label4.Caption = "richtig" ist soll es 20 px oder halt ensprechenden wert nach oben gehen? wie macht man das?

    Also es soll beim clicken auf einen Button geprüft werden, ob die Caption von einem Label = "richtig" ist und dann soll er, sofern die Bedingung erfüllt wird ein Shape einmal um 20 pixel nach oben und da stehen lassen. Beim nächsten mal falls die Bedinung erfüllt ist, soll das Shape wieder 20 pixel nach oben bewegen.

    Mit freundlichen Grüßen

    Malte Schneider
    Ich habe nochmal eine Frage unzwar ... hab eich das quiz soweit fertig er nimmt auch zufällige fragen aber diese fragen sind immer in der gleich rein folgen.

    also wenn man das quiz startet nimmt er immer

    z.B. Frage 1,4,6,3,2,3,4....
    und wenn man dann das Quiz nochmal aufmacht, dann nimmt er wieder diese Fragen.

    Ich muss das morgen abgeben und wäre nett wenn mir noch jemand schnell sagen könnte wie man machen, kann das er auch unterschiedliche fragen nimmt.


    den grundlegenden Quellcode könnt ihr in meinem ersten Code sehen.

    hängt da mit

    Quellcode

    1. Option Explicit
    2. Dim Datei As String
    3. Dim i, n, r As Integer
    4. Dim Frage(200) As String
    5. Dim Antwort(200, 4) As String
    6. Dim Richtig(200) As Integer
    7. Private Sub Form_Load()
    8. Datei = "C:\Quizz\Fragen.txt"
    9. Open Datei For Input As #1
    10. Do While Not EOF(1)
    11. i = i + 1
    12. Line Input #1, Frage(i)
    13. For n = 0 To 3
    14. Line Input #1, Antwort(i, n)
    15. Next
    16. Input #1, Richtig(i)
    17. Loop
    18. Close #1
    19. Private Sub Frage_Stellen()
    20. 'Frage und Antworten werden ausgelesen
    21. r = Int(Rnd(1) * i) + 1
    22. Label1.Caption = Frage(r)
    23. For n = 0 To 3
    24. Label2(n).Caption = Antwort(r, n)
    25. Next
    26. End Sub


    das dürften die wichtigen Codeteile sein.

    Mit freundlichen Grüßen

    Malte

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Maltevb“ ()

    Visual Basic-Quellcode

    1. Private Sub Frage_Stellen()
    2. 'Frage und Antworten werden ausgelesen
    3. randomize timer
    4. r = Int(Rnd(1) * i) + 1
    5. Label1.Caption = Frage(r)
    6. For n = 0 To 3
    7. Label2(n).Caption = Antwort(r, n)
    8. Next
    9. End Sub
    Gruß
    Peterfido

    Keine Unterstützung per PN!