Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Randomize Timer + ForNext Problem

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 08.07.2006, 16:24    Titel: Randomize Timer + ForNext Problem Antworten mit Zitat

Hallo,

Ich hab nen Problem. Ich und nen Kumpel haben ein kleines Quiz in QB geschrieben, welches mit RND die z.Z. 10 versch. Fragen zufällig wiedergeben soll. Dieses soll aber nur 20mal durchlaufen werden. Mit einer ForNext Schleife geht es iwie net und ich finde den Fehler nicht. Kann mir jmd schreiben was ich falsch mache? Und bitte ignoriert die Spagettiprogrammierung mit den Augen rollen

Edit: Sry happy Es geht um genau diese Stelle hier


Code:

FOR wdh = 1 TO 20
RANDOMIZE TIMER
auswahl% = INT(RND * 10) + 1
NEXT




Code:

start:

CLS

PRINT tab(30)"Ärzte Quiz"
?
?

PRINT "bitte Taste drücken um zu beginnen"



DO UNTIL INKEY$ <> ""
LOOP

auswahl:

FOR wdh = 1 TO 20
RANDOMIZE TIMER
auswahl% = INT(RND * 10) + 1
NEXT
SELECT CASE auswahl%
CASE 1: GOTO frage1
CASE 2: GOTO frage2
CASE 3: GOTO frage3
CASE 4: GOTO frage4
CASE 5: GOTO frage5
CASE 6: GOTO frage6
CASE 7: GOTO frage7
CASE 8: GOTO frage8
CASE 9: GOTO frage9
CASE 10: GOTO frage10
'CASE 11: GOTO frage11
'CASE 12: GOTO frage12
'CASE 13: GOTO frage13
'CASE 14: GOTO frage14
'CASE 15: GOTO frage15
'CASE 16: GOTO frage16
'CASE 17: GOTO frage17
'CASE 18: GOTO frage18
'CASE 19: GOTO frage19
'CASE 20: GOTO frage20
'CASE 21: GOTO frage21
'CASE 22: GOTO frage22
'CASE 23: GOTO frage23
'CASE 24: GOTO frage24
END SELECT


auswertung:

SELECT CASE x%
CASE 0: GOTO f
CASE 1: GOTO f
CASE 2: GOTO f
CASE 3: GOTO f
CASE 4: GOTO f
CASE 5: GOTO f
CASE 6: GOTO e
CASE 7: GOTO e
CASE 8: GOTO e
CASE 9: GOTO e
CASE 10: GOTO e
CASE 11: GOTO d
CASE 12: GOTO d
CASE 13: GOTO d
CASE 14: GOTO d
CASE 15: GOTO c
CASE 16: GOTO c
CASE 17: GOTO c
CASE 18: GOTO b
CASE 19: GOTO b
CASE 20: GOTO a
END SELECT

a:

LOCATE 10, 30
PRINT "Tzzzycho, du hast die max. Punktzahl!!!!!"
DO UNTIL INKEY$ <> ""
LOOP
GOTO ende

b:

LOCATE 10, 30
PRINT "Schade fast perfekt!"
DO UNTIL INKEY$ <> ""
LOOP
GOTO ende

c:

LOCATE 10, 30
PRINT "Schade einige Fehler!"
DO UNTIL INKEY$ <> ""
LOOP
GOTO ende

d:
LOCATE 10, 30
PRINT "Naja mehr schlecht als recht...!"
DO UNTIL INKEY$ <> ""
LOOP
GOTO ende

e:

LOCATE 10, 30
PRINT "5...Mensch Ali was machst du denn hier?!"
DO UNTIL INKEY$ <> ""
LOOP
GOTO ende

f:

LOCATE 10, 30
PRINT "Das geht ja jar'net"
DO UNTIL INKEY$ <> ""
LOOP
GOTO ende

ende:
END

frage1:

PRINT "Wie heiát der Ober-Arzt?"
INPUT "1) Bela B., 2) Rod, 3) Farin Urlaub, 4) Sahine ", a%

SELECT CASE a%
CASE 3: x% = x% + 1
CASE ELSE: x% = x% + 0
END SELECT

wdh= wdh+1

GOTO auswahl

frage2:

PRINT "Von welchem Album ist Leichenhalle?"
INPUT "1) Le Friseur, 2) Runter mit den Spendierhosen, Unsichtbarer, 3) Ger„usch, 4) Uns gehts prima ", b%

SELECT CASE b%
CASE 2: x% = x% + 1
CASE ELSE: x% = x% + 0
END SELECT

GOTO auswahl


frage3:

PRINT "Welches Lied ist nicht von die Žrzte?"
INPUT "1) Die kl?gsten M„nner der Welt, 2) Dir, 3) Rebell, 4) Gl?cklich ", c%

SELECT CASE c%
CASE 4: x% = x% + 1
CASE ELSE: x% = x% + 0
END SELECT
wdh= wdh+1
GOTO auswahl

frage4:

PRINT "Was sind die Žrzte?"
INPUT "1) Punk-Rocker, 2) Mediziner, 3) Operns„nger, 4) Satanisten ", d%

SELECT CASE d%
CASE 1: x% = x% + 1
CASE ELSE: x% = x% + 0
END SELECT
wdh= wdh+1
GOTO auswahl

frage5:

PRINT "Wer ist das neuste Mitglied der Band?"
INPUT "1) Farin Urlaub, 2) Rod, 3) Bela B., 4) Hagen Liebing ", e%

SELECT CASE e%
CASE 2: x% = x% + 1
CASE ELSE: x% = x% + 0
END SELECT
wdh= wdh+1
GOTO auswahl

frage6:

PRINT "Wo ist der Gr?ndungsort der Žrzte?"
INPUT "1) Berlin, 2) D?sseldorf, 3) Mannheim, 4) Hannover ", f%

SELECT CASE f%
CASE 1: x% = x% + 1
CASE ELSE: x% = x% + 0
END SELECT
wdh= wdh+1
GOTO auswahl

frage7:

PRINT "Wann kam die Single 'Teenager Liebe' auf den Markt?"
PRINT "Tipp: Das Geburtsjahr des Programmierers."
INPUT "1) 1987, 2) 1988, 3) 1989, 4) 1990 ", g%


SELECT CASE g%
CASE 3: x% = x% + 1
CASE ELSE: x% = x% + 0
END SELECT
wdh= wdh+1
GOTO auswahl


frage8:

PRINT "Wie ist ein Spitzname von Die Žrzte?"
INPUT "1) Die Doktoren, 2) Die beste Band der Welt, 3) Die schlechteste Band der Welt, 4) Die Sanit„ter ", h%


SELECT CASE h%
CASE 2: x% = x% + 1
CASE ELSE: x% = x% + 0
END SELECT
wdh= wdh+1
GOTO auswahl


frage9:

PRINT "Wie heiát das derzeit letzte Album?"
INPUT "1) Planet Punk, 2) Ger„usch, 3) Devil, 4) Rock'n'Roll Realschule ", i%


SELECT CASE i%
CASE 3: x% = x% + 1
CASE ELSE: x% = x% + 0
END SELECT
wdh= wdh+1
GOTO auswahl

frage10:

PRINT "Welches ist der erfolgreichste Song von Die Žrzte?"
INPUT "1) Manchmal haben Frauen, 2) Unrockbar, 3) M„nner sind Schweine, 4) Schrei nach Liebe ", j%


SELECT CASE j%
CASE 3: x% = x% + 1
CASE ELSE: x% = x% + 0
END SELECT
wdh= wdh+1
GOTO auswahl


_________________
<xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 08.07.2006, 17:05    Titel: Antworten mit Zitat

Ähm.

Nein, ich ignoriere deine Spagettiprogrammierung NICHT, denn den code, den du hast, kann man nicht nur 10mal einfacher machen zwinkern

Lege textdateien mit den fragen an, speicher dort auch die richtige antwort.

Nacher musst du das dann alles einfach wieder einlesen, und dann ausgeben. So kannst du fragen hinzufügen und entfernen ohne deinen Code zu verändern. Wenn du fragen hast, frag nach, aber ich geb dir schon mal ein paar hilfen:

Das ist die textdatei Fragen.txt
Code:

Was sind die Žrzte?
Punk-Rocker
Mediziner
Operns„nger
Satanisten
1

Wann kam die Single 'Teenager Liebe' auf den Markt?
1987
1988
1989
1990
3


Wie du siehst, in der 1. Zeile steht die Frage, danach die 4 Antoworten und darunter die richtige Nummer.

Jetzt die Frage einlesen:

Code:

Dim text As String
Dim As Integer i,auswahl

Open "Fragen.txt" For Input As #1

Do Until eof(1)
   Cls
   Line input #1, text
   Print text
   For i = 1 to 4              '4mal durchlaufen, da 4 antworten
      Line Input #1,text  'eine zeile der datei einlesen
      Print i;") ";text         'ausgeben
   Next i
   Do
      Input "", auswahl
      If auswahl<1 And auswahl>4 Then
         Print "Sie müssen 1,2,3 oder 4 eingeben."
      Else
         Exit Do   'die schleife verlassen
      End If
   Loop
   Line Input #1,text
   If auswahl=Val(text) Then     'Überprüfen, ob richtig beantwortet wurde
      Print "Richtig!"
   Else
      Print "Falsch!"
   End If
   Sleep 3            '3 sekunden warten
Loop


Sollte reichen, wenn befehle unklar sind, frag einfach nach.

Wenn du die Fragen zufällig wiedergeben willst, dann kannst du die Datei komplett einlesen und dann durch zufall eine Frage auswählen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 08.07.2006, 18:06    Titel: Antworten mit Zitat

Ja ich hab es mehr oder weniger verstanden mit den Augen rollen Ich werde es mal testen^^ NUr bin ich halt ein Anfänger durchgeknallt Autsch!
Gibbet keine Möglichkeit das was ich verbrochen hab halbwegs zu behalten?happy Hab z.Z. keine Zeit viel zu proggen. Also einfach mal aus diesem schönen unendlich Quiz peinlich eines machen was aufhört

MfG

Matze
_________________
<xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dominik



Anmeldungsdatum: 22.12.2004
Beiträge: 172

BeitragVerfasst am: 10.07.2006, 12:46    Titel: Antworten mit Zitat

In diesem Fall möchte ich dir ans Herz legen, besser zu warten, bis du wieder etwas mehr Zeit hast, da du das Quizprogramm, wenn du es verbessern willst, sowieso nochmal komplett neu schreiben musst.

Ich stimme programmierer voll und ganz zu, da man die Spagettiprogrammierung in diesem _krassen_ Fall nicht einfach ignorieren kann.

Versuch es besser gleich richtig zu machen, anstatt irgendetwas dahin zu schmieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 10.07.2006, 15:59    Titel: Antworten mit Zitat

Kann mich den beiden nur anschließen. Als Übergangslösung kannst du dir ja einen individuellen Fragenkatalog fürs Cargu-Quiz mit Ärztefragen erstellen und den so lange spielen, bis dein Quiz wohl strukturiert fertig ist. lächeln
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 10.07.2006, 23:04    Titel: Antworten mit Zitat

ok dann hat sich das hier erstmal erledigt...ma schaun wann ich Zeit finde und danke für die Antworten...
_________________
<xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz