geht nicht, wieso???
Übersicht

![]() |
matzBetreff: geht nicht, wieso??? |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo!
![]() seit 3-4 tagen beschäftige ich mich mit bb und habe jetzt ein kleines quiz geschrieben. am ende des quiz's (ist DAS richtig???) habe ich eine auswahl zwischen dem neustart oder dem beenden des programms eingebaut, welche allerdings nicht funktioniert! könnt ihr mir sagen wieso? Code: [AUSKLAPPEN] .label2
ende = input("type:") ;neu für neustart und quit für beenden! select ende ;neustart case neu cls gosub label1 ;label 1 ist weiter oben! ;beenden case quit gosub endpunkt ;falsche eingabe default cls gosub label2 end select .endpunkt end beim eingeben von quit und einer fehleingabe wird man trotzdem zu label1 weitergeleitet! wo ist mein fehler und könnte man den code auch einfacher oder besser gestalten? vielen dank für jede antwort/hilfe !!! cu matz |
||
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ende muss mit einem $ als String_Variable deklariert werden!
Und neu und quit müssen in Anführungszeichen stehen! Ausserdem solltest du bei diesem Sprung Goto statt Gosub benutzen! Code: [AUSKLAPPEN] .label2 ende$ = input("type:") ;neu für neustart und quit für beenden! select ende$ ;neustart case "neu" cls goto label1 ;beenden case "quit" goto endpunkt ;falsche eingabe default cls goto label2 end select .endpunkt end |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
GoSub ist dafür da das nach einem Return der Code nach dem
Aufruf weiter ausgeführt wirt . Sub ist also eine Unterroutine . Wenn nicht dann Goto benutzen . GoSub Bla GoSub BlaBla End .Bla ;Mach was return .BlaBla ;Mach auch was return |
||
![]() |
matz |
![]() Antworten mit Zitat ![]() |
---|---|---|
vielen dank für die schnelle antwort!
hätte da noch ne frage: wie kann ich die mit rand generierte zahl automatisch hinter goto setzen, sodass das programm zufällig zu einer sprungmarke springt? ...oder muss ich das mit if/then machen, wenn ja wie? danke! matz |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
x= Rand(0,2)
select x Case 0 : gosub bbla0 Case 1 : gosub bbla1 Case 2 : gosub bbla2 Case 3 : gosub bbla3 end select |
||
[BB2D | BB3D | BB+]
|
![]() |
matz |
![]() Antworten mit Zitat ![]() |
---|---|---|
nochmals danke!
und wie mach ich es jetzt, dass die bereits generierten zahlen nicht nocheinmal generiert werden? ...sprich, jede frage soll nur einmal drankommen... grüße matz |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Speicher die Fragen in Arrays, dann ist die Zufallssache auch nicht mehr so aufwendig. Dazu noch ein zweites Array mit den Antworten zum vergleichen und schlussendlich ein drittes Array der einfach nur True oder False ist, je nachdem ob die Frage schon dran war. Ist er True neue Zufallszahl generieren. Das ganze dann als Beispiel:
Code: [AUSKLAPPEN] Dim frage$(3),antwort$(3),gestellt(3)
frage(0)="Was kommt im Fernsehen?" frage(1)="Wie ist das Wetter?" frage(2)="Was machst Du gerade?" frage(3)="Fällt Dir auch nichts mehr ein?" antwort(0)="Nur Mist" antwort(1)="Sonnig" antwort(2)="Coden" antwort(3)="Nö" Repeat ; Alles wiederholen Repeat ; Hier solange wiederholen n=Rand(0,3) Until gestellt(n)=False ; bis Frage nicht gestellt wurde Print frage(n) ant$=Input$("-> ") If ant$=antwort(n) gestellt(n)=True Print "Schlaumann, hä?" zaehler=zaehler+1 Else Print "Du Pflaume :P" EndIf Until zaehler=4 Or KeyHit(1) ; bis 4 Fragen gekommen sind ; oder Esc gedrückt End |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
matz |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() das blöde daran ist aber noch, dass das Programm zwischen GROSS- und kleinschreibung unterscheidet. kann man das auch noch abstellen? |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
das mit gross und klein kannste mit upper abstellen, macht dann alles auf Gross!
Lower geht natürlich auch Beispiel:Code: [AUSKLAPPEN] if upper(antwort) = upper (eingabe) then.....
|
||
[BB2D | BB3D | BB+]
|
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
aber Vorsicht ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
ähnliches Problem wären Leerzeichen und Schreibfehler | ||
[BB2D | BB3D | BB+]
|
![]() |
matz |
![]() Antworten mit Zitat ![]() |
---|---|---|
...will mich ja nicht beschweren aber der zufall ist garnicht so zufällig!
und zwar ist ist die reihenfolge immer 2,3,1,4 , egal wie oft man das programm neu startet! woran kann das liegen? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
benutz zu Beginn des Programms Seedrnd(Millisecs()).
Das verändert den "Samen" für die Zufallsfunktion in Abhängigkeit von der Laufzeit deines Rechners. Sollte für "echten" Zufall genügen. Wird aber auch in der OnlineHilfe erklärt... |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
matz |
![]() Antworten mit Zitat ![]() |
---|---|---|
danke an alle, die mir helfen konnten!
hier eine erste testversion! EDITCode: [AUSKLAPPEN] AppTitle("Matzes Quiz")
/EDIT
Graphics 900, 200 ,16,2 ;,2 für fenstermodus! clscolor 92,0,0 cls .start ; Die Musik doormusic = playmusic("door.mid") ; Die Schrift schrift = loadfont("Calligraphic",20,1,0,0) setfont schrift ;Schrift setzten color 232,185,98 ;Schriftfarbe Seedrnd Millisecs() ; verändert den "Samen" für die Zufallsfunktion ; in Abhängigkeit von der Laufzeit des Rechners. ; Sollte für "echten" Zufall genügen. ;Fragen und Antworten Dim frage$(3),antwort$(3),gestellt(3) frage(0)="was heißt FTP? a) File Transfer Protocol b) Float Traffic Protocol c) FTP hat keine Bedeutung!" frage(1)="Wovon ist Stockholm die Hauptstadt? a) Norwegen b) Schweden oder c) Polen" frage(2)="Wie lange dauerte der 100 jährige Krieg ? a) 323 Wochen b)52560000 Minuten c) 365 Monate" frage(3)="Wofür steht ALDI? a) Allgemeine durchschnitts Instanz b) Allzweck-Discount c) Albrecht Discount" antwort(0)="a" antwort(1)="b" antwort(2)="b" antwort(3)="c" Repeat ; Alles wiederholen Repeat ; Hier solange wiederholen n=Rand(0,3) Until gestellt(n)=False ; bis Frage nicht gestellt wurde print frage(n) ant$=Input$("a,b oder c? Antwort:") If ant$=antwort(n) gestellt(n)=True Print "Na geht doch!" Print() zaehler=zaehler+1 Else gestellt(n)=True zaehlerfalsch=zaehlerfalsch+1 Print "Altes Toastbrot! ...mehr Glück beim nächsten mal!" print() EndIf Until zaehler=3 Or zaehlerfalsch=3 KeyHit(1) ; bis 3 Fragen gekommen sind oder Esc gedrückt cls text 0,0, "Du hast" text 80,0, zaehler text 100,0, "von 3 Fragen richtig beantwortet!" text 0,30, "nochmal?" .re1 text 0,60, "Fürs neustarten j eintippen" locate 0,90 endmenu = Input("_") Select endmenu case j cls goto start default cls gosub re1 End Select ;repeat ;Until Keyhit(1) End |
||
- Zuletzt bearbeitet von matz am So, Mai 30, 2004 17:43, insgesamt 2-mal bearbeitet
dubitat |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du kannst ja ach 4 antworten vorgeben und dann einfach vnach 1,2,3,4 gucken welche antwort richtig ist! dann braucht der user nur 1 oider 2 oder 3 oder 4 einzutippen und du hast das problem nicht mit groß und kleinschreibung! | ||
Erare humanum est - Irren ist Menschlich |
![]() |
matz |
![]() Antworten mit Zitat ![]() |
---|---|---|
jo hast recht! ![]() ...machmal hat man echt nen brett vorm kopp! ![]() |
||
![]() |
matz |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab den code aktuallisiert! | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group