|
| Autor |
Nachricht |
Analegrande_ Tutorial Leser

Anmeldedatum: 23.11.2007 Beiträge: 47
|
Hilfe für ein Quizprogramm
Verfasst am: 18.02.2008, 03:22 |
|
|
Morgen zusammen,
Ich habe mich mal entschieden ein Quiz-Programm zu coden.
(Nehme hier [http://dbhost.info/vbx/viewtopic.php?t=2182] trotzdem gern andere Vorschläge entgegen )
Die Fragen in einem Label zufällig abgefragt werden.
Ich habe also meine Fragen und möchte sie irgendwo gespeichert haben und sobald die Form öffnet, soll sich eine Zufällige Frage im Label befinden.
Das mit der Random Funktion ist erstmal nicht so wichtig. Ich möchte nur wissen welche Möglichkeiten es gibt die Fragen zu speichern ?
Datenbank? Varibalen? ....?
Ich bin so zu sagen noch ein blutiger Anfänger und der einfachste Weg wäre mir am liebsten. Damit meine ich nicht das mir jemand nen Source unter die Nase halten soll.
MFG |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 18.02.2008, 10:41 |
|
|
Also Datenbank wäre mal der beste Weg.
Wenn man es mal verstanden hat, geht es damit weit leichter als mit allem anderen.
Aber für dich wird es wohl leichter sein, wenn du die Fragen in einer Textdatei speicherst.
Und ich gehe mal davon aus, dass du die Antworten auch darin speicherst.
Jetzt mußt du dir nur überlegen wie dein Programm später weiß was Frage ist und was die richtige Antwort dazu ist.
Zeilenweise per "Line Input" wäre z.B. schonmal eine Möglichkeit.
Eine Zeile ist die Frage, die nächste die Antwort usw. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
Analegrande_ Tutorial Leser

Anmeldedatum: 23.11.2007 Beiträge: 47
|
Verfasst am: 18.02.2008, 11:50 |
|
|
Ich habe mir überlegt die Fragen und die Antworten direkt mit in den Code zu schreiben in Select Case vieleicht :/
Mit dem Arbeiten mit anderer Dateien hab ich mich noch nicht beschäftigt. Sollte sich bald ändern
Kann man Select Cases irgendwie per Zufall aussuchen lassen ? |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 18.02.2008, 12:43 |
|
|
Einfach Random Zahlen generieren lassen und dann per Select Case abfragen.
Also case 1, case 2 etc.
Suchfunktion hilft weiter. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
Bahamut_ « Moderator »

Anmeldedatum: 12.12.2006 Beiträge: 250
|
Verfasst am: 18.02.2008, 13:19 |
|
|
Ich finde aber, dass es nichtnur den Code unübersichtlich macht, sondern auch unflexibel ist.
Bei .txt-Datein könnte sich der User auch selber Fragen + Antworten reinschreiben oder an Freunde schicken. Der Nachteil ist, dass man alles nachschauen kann ^^
Außerdem würde ich einfach einen Trennstring für die Antwort benützen, so kann man leichter per Random eine Zeile sich aussuchen lassen und muss nicht darauf achten, dass es z.b eine gerade Zeile ist. Denn wenn einmal ein Fehler drinist, stellt er immer die Antwort und erwartet die Frage. Es könnte bei einer .txt Datei mit >1000 Zeilen lustig werden, den Fehler zu suchen ^^ VB.Net-Compiler: http://www.microsoft.com/germany/express/download/default.aspx
VB.Net-eBook: http://www.galileocomputing.de/openbook/visual_basic/ |
|
| |
|
 |
Analegrande_ Tutorial Leser

Anmeldedatum: 23.11.2007 Beiträge: 47
|
Verfasst am: 18.02.2008, 13:30 |
|
|
Hm... das verwirrt mich alles ein wenig Ihr müsst wissen das ich noch sehr am Anfang stehe und mir einige Begriffe noch nichtmal etwas sagen wo ich dann erstmal googeln muss^^
//edit:
Ich möchte zuerst mal das folgendes Random in einem Label ausgegeben wird:
Dim Frage(1 To 4) As String
Frage(1) = "Erste Frage"
Frage(2) = "Zweite Frage"
Frage(3) = "Dritte Frage"
Frage(4) = "Vierte Frage"
Vieleicht könnte mir jemand einen Beispielcode geben wie ich das umsetzen kann? Wie gesagt...blutiger Anfänger^^
Ich habe jetzt über 2 Stunden rumprobiert und bischen gegoogelt aber...nichts :/ |
|
| |
|
 |
Tix_ Tutorial Leser

Anmeldedatum: 08.06.2007 Beiträge: 51
|
Verfasst am: 18.02.2008, 15:46 |
|
|
so müsste es klappen, seeeehr umständlich, aber so gehts ^^
| Code: |
Public Function Rand(ByVal Low As Long, ByVal High As Long) As Long
Rand = Int((High - Low + 1) * Rnd) + Low
End Function
Private Sub Command1_Click()
Dim Antwort As String
txtFrage.Enabled = False
Command1.Enabled = False
Dim random_number As Integer
Randomize
random_number = Rand(1, 2)
Select Case random_number
Case Is = 1
txtFrage.Text = "1. ?"
Timer1.Enabled = True
Case Is = 2
txtFrage.Text = "2. ?"
Timer2.Enabled = True
End Select
End Sub
Private Sub Timer1_Timer()
If txtFrage.Text = "1. ?" Then
If Text2.Text = "richtig" Then
MsgBox "Winner"
Command1.Enabled = True
Else
MsgBox "Looser"
End If
End If
Command1.Enabled = True
Timer1.Enabled = False
End Sub
Private Sub Timer2_Timer()
If txtFrage.Text = "2. ?" Then
If Text2.Text = "falsch" Then
MsgBox "Winner"
Else
MsgBox "Looser"
End If
End If
Command1.Enabled = True
Timer2.Enabled = False
End Sub
|
Habs mit Timern gemacht, dann kannste z.B. Nen 30 Sekunden contdown machen usw, usw. ^^
müsste eig. leicht verständlich sein der code .. |
|
| |
|
 |
Bahamut_ « Moderator »

Anmeldedatum: 12.12.2006 Beiträge: 250
|
Verfasst am: 18.02.2008, 16:23 |
|
|
Total umständlich, bei 1000 Fragen braucht man ja 1000 Timer nach deiner Methode
| Zitat: | | Damit meine ich nicht das mir jemand nen Source unter die Nase halten soll. |
| Zitat: | | Vieleicht könnte mir jemand einen Beispielcode geben wie ich das umsetzen kann? |
Mh, jetzt hast aufjedenfall nen Source aber ich denke da lernst nix draus. Beschäftige dich doch mal mit Select Case oder Dateien auslesen, der Rest ist dann kann Problem mehr. VB.Net-Compiler: http://www.microsoft.com/germany/express/download/default.aspx
VB.Net-eBook: http://www.galileocomputing.de/openbook/visual_basic/ |
|
| |
|
 |
Analegrande_ Tutorial Leser

Anmeldedatum: 23.11.2007 Beiträge: 47
|
Verfasst am: 18.02.2008, 16:50 |
|
|
Jo der Code ist viel zu umständlcih und auch nicht ganz das was ich brauche.
| Zitat: | | Beschäftige dich doch mal mit Select Case oder Dateien auslesen, der Rest ist dann kann Problem mehr. |
Das werd ich dann mal machen  |
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 18.02.2008, 16:57 |
|
|
Das hier nimmst du zum Laden der Frage:
| Code: | ' Fragen deklarieren und definieren
Dim Frage(1 To 4) As String
Frage(1) = "Erste Frage"
Frage(2) = "Zweite Frage"
Frage(3) = "Dritte Frage"
Frage(4) = "Vierte Frage"
' Fragen deklarieren und definieren
Dim Antwort(1 To 4) As String
Antwort(1) = "Anwort für erste Frage"
Antwort(2) = "Anwort für zweite Frage"
Antwort(3) = "Anwort für dritte Frage"
Antwort(4) = "Anwort für vierte Frage"
' Generiert eine ganze Zahl von 1 bis 4
Randomize
Private Nummer as Integer
Nummer = Int((4 * Rnd) + 1)
' Frage anzeigen
LabelFrage.Caption = Frage(Nummer)
' Antwort versteckt anzeigen
LabelAntwort.Visible = False
LabelAntwort.Caption = Antwort(Nummer) |
Dann beim Abschicken der Antwort:
| Code: | ' Wenn richtige Anwort mit Eingegebener übereinstimmt
If LabelAntwort.Caption = txtAntwort.Text Then
' dann MsgBox, die "Richtig" ausgibt
MsgBox "Richtig"
Else
' wenn nicht, dann MsgBox, die "Falsch" ausgibt
MsgBox "Falsch"
End If |
Wenn du mehrere Fragen in einer Reihe machst, musst du einen Zähler hochzählen oder speichern, welche Fragen/Antworten schon beantwortet wurden.
Ich würde dir Ersteres empfehlen. Das machst du dann ungefähr so:
| Code: | ' Fragen deklarieren und definieren
Dim Frage(1 To 4) As String
Frage(1) = "Erste Frage"
Frage(2) = "Zweite Frage"
Frage(3) = "Dritte Frage"
Frage(4) = "Vierte Frage"
' Fragen deklarieren und definieren
Dim Antwort(1 To 4) As String
Antwort(1) = "Anwort für erste Frage"
Antwort(2) = "Anwort für zweite Frage"
Antwort(3) = "Anwort für dritte Frage"
Antwort(4) = "Anwort für vierte Frage"
' Die Zählervariable deklarieren und definieren
Private Zaehler as Integer
Zaehler = 1
' Maximalwert des Zählers deklarieren und definieren
Dim Max as Integer
Max = 4 ' entspricht der Nummer der letzten Frage/Antwort
If Zaehler = Max Then
' Das was du machen willst, wenn Fragen zuende
End If
' Frage anzeigen
LabelFrage.Caption = Frage(Nummer)
' Antwort versteckt anzeigen
LabelAntwort.Visible = False
LabelAntwort.Caption = Antwort(Nummer) |
Der Rest bleibt so. Hoffe du hast alles verstanden. =)
mfg Orbz |
|
| |
|
 |
Analegrande_ Tutorial Leser

Anmeldedatum: 23.11.2007 Beiträge: 47
|
Verfasst am: 18.02.2008, 17:39 |
|
|
Ich werds mir nachher mal anschaun aber sieht verständlich aus
Vielen Dank |
|
| |
|
 |
King of Chaos_ Coder

Anmeldedatum: 26.09.2007 Beiträge: 235
|
Verfasst am: 18.02.2008, 18:04 |
|
|
hab schon so ein spiel gemacht.
kannst dich ja mal per icq melden.
255539405 müsste den source noch haben
allerdings mit ner DB als .txt na und mir doch wurscht ob meine sig nervt du nervst auch -.-' |
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 18.02.2008, 18:08 |
|
|
| Analegrande hat Folgendes geschrieben: | | Ich bin so zu sagen noch ein blutiger Anfänger und der einfachste Weg wäre mir am liebsten. Damit meine ich nicht das mir jemand nen Source unter die Nase halten soll. |
|
|
| |
|
 |
King of Chaos_ Coder

Anmeldedatum: 26.09.2007 Beiträge: 235
|
Verfasst am: 18.02.2008, 18:10 |
|
|
ähm und wenn er nicht vollständig ist und ausserdem mit erklärungen ist ??  na und mir doch wurscht ob meine sig nervt du nervst auch -.-' |
|
| |
|
 |
Analegrande_ Tutorial Leser

Anmeldedatum: 23.11.2007 Beiträge: 47
|
Verfasst am: 20.02.2008, 10:36 |
|
|
Ich habe es nun ohne Datenbank gemacht sondern einfach nur mit in den Code.
Wenn ihr wollt könnt ihr es euch mal anschaun... ist noch lange nicht fertig aber Reinschaun kann man schonmal.
Hier der Link:http://uploaded.to/?id=w6ezjd
Es hat 10 Fragen bis jetzt (Ist bischen mühseelig die alle im Code unterzubringen
Fehler hat es keine. Es fehlt im nur ein wenig an Verbesserungen die ich als Anfänger nicht so leicht umgesetz kriege . das wären folgende:
- Die Fragen können sich wiederholen
- Fragen in einer Datenbank speichern
- Design ? :/
Aber im großen und ganzen bin ich schon recht stolz das ich es überhaupt "soweit" gebracht haben
naja schaut mal rein und vieleicht möchte der ein oder andere mir paar Tipps und Vorschläge per PN geben
MFG |
|
| |
|
 |