Quiz programmieren
Übersicht

SvolfBetreff: Quiz programmieren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kann mir jemand verraten , wie ich ein Quiz programmiere ohne Input oder mit Input aber im HIntergrund ein Bild oder Linien sich Befinden. Und wie mann dann von einer Aufgabe zur 2 kommt. | ||
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das mit dem Eintippen kannst du mit ql:getkey basteln. Den Hintergrund solltest du aber selbst hinkriegen. | ||
Svolf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich habe da mal ein Script geschrieben:
Code: [AUSKLAPPEN] Graphics 800,600,16,1 SetBuffer BackBuffer() Planetb=LoadImage("Bilder\Planetb.bmp") MaskImage Planetb, 255,255,255 Color 255,0,0 Punkte=0 Repeat Cls DrawImage Planetb, -120,-95 Color 0,255,0 Text 385,10, "Punkte" Color 255,0,0 Line 190,500,190,600 Line 190,500,610,500 Line 610,500,610,600 Line 160,300,160,350 Line 160,350,650,350 Line 650,350,650,300 Line 650,300,160,300 Line 360,30,460,30 Line 460,30,460,60 Line 460,60,360,60 Line 360,60,360,30 Color 0,255,0 Text 180,320 ,"Was ist ein Isotop?" Text 200,520, "a: Ein Haus" Text 200,550, "c: Ein Schrank" Text 420,520, "b: Ein Tisch" Text 420,550, "d: Ein Stuhl" x=GetKey() If x = 97 Then Punkte = Punkte + 1 ElseIf x = 98 Then Punkte = Punkte + 0 ElseIf x = 99 Then ; Ich will HIer zur Nacästen Aufgabe Punkte = Punkte + 0 ElseIf x = 100 Then Punkte = Punkte + 0 EndIf Locate 430,40 Print Punkte Flip Until KeyHit(1) Nur das Problem was ich noch habe ist, wenn man z.B. nun "a" drückt das er zu eine rnächsten Aufgabe geht und Punkte + 1 zählt sovern die Antwort richtig ist. Aber auch wenn eien Aufgabe falsch ist z.B. "b" drückt soll er zur nächsten Aufgabe gehen aber ebend keien PUnkte Zählen wie kann ich das jetzt an besten machen. MIt FUnktionen hab eich nie viel Ahnung. DAchte schon an Goto oder Include,..[/quote] |
||
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe mir deinen Code jetzt nicht wirklich angesehen, aber:
Du nimmst eine Variable für die Aufgabe, bei der man ist, und eine für die Punktzahl. Wenn die richtige Taste gedrückt wurde (KeyHit), dann werden beide Variablen erhöht. Wenn die falsche Taste gedrückt wurde, wird nur die Aufgabenvariable erhöht. In der Hauptschleife wird erst geprüft, welchen Wert die Aufgabenvariable hat und demnach entschieden, welche Frage angezeigt wird und welche Taste die richtige ist. |
||
Svolf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das mit dem Tastenabfragen weis ich ja,..
also: x=getkey if x = 97 then,... aber das Problem ist, wie ich das mit dem Fragen mache,..? also wenn nun 97 gedrückt wurde, dass er zur nächsten Aufgabe springt,...könntest dus mir anhang 3 Aufgaben zeigen wäre echt nett,.. Danke im vorraus,.... |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
HALLO? WIE OFT WILLST DU ES NOCH GEZEIGT HABEN? Wir haben es dir schon mindestens 5 mal erklärt wie es geht und du fragst immer wieder... Willst du uns verarschen oder was? ![]() Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
Svolf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sorry,..aber ihr habt mir nur eine Normale Select Case Anweisung gezeigt oder eine If,..then,..else aber nie wie ich von einer auf die andere komme und genau das liegt mein Problem,.. | ||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Auch das wurde dir erklärt: Indem du die Variable, die du Selectest einfach erhöhst...
Ich weiß ehrlich gesagt garnicht, warum ich dir überhaupt helfe ![]() Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
erstell eine Variable in welcher Du speicherst bei welcher Frage du bist.
dann überprüfst du in einem Select-Case anhand dieser Variablen und stellst die Frage. |
||
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 |
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-.-
So ungefähr in der Hauptschleife: Code: [AUSKLAPPEN] Select aufgabe
Case 1:Text x,y,"blabla":rightkey$="a" Case 2:Text x,y,"Zweite Aufgabe...":rightkey$="c" Case 3:Text x,y,"Dritte Aufgabe -.-":rightkey$="b" ... End Select key$=Chr$(GetKey()) If key$=rightkey$ Then aufgabe=aufgabe+1 punkte=punkte+100 ElseIf key$<>Null Then aufgabe=aufgabe+1 Endif Da ist nichts Besonderes dran. ![]() |
||
antome!!! gesperrt !!! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die selbe Antwort habe ich dir schonmal gegeben, ich habe jetzt nur 4 Kommentare hinzu gefügt.
Code: [AUSKLAPPEN] Global AufgabeIndex = 1 Repeat Select AufgabeIndex Case 1 Aufgabe1() Case 2 Aufgabe2() End Select Until AufgabeIndex = 0 Function Aufgabe1() Print "1" Print "2" Print "3" taste = Input("Gib eine Zahl ein ") If taste = 3 Then AufgabeIndex = 2 ;wenn 3 gedrückt wird springe zu Aufgabe2() If taste = 0 Then AufgabeIndex = 0 ;wenn 0 gedrückt wird ist das Programm zu Ende End Function Function Aufgabe2() Print "4" Print "5" Print "6" taste = Input("Gib eine Zahl ein ") If taste = 6 Then AufgabeIndex = 1 ;wenn 6 gedrückt wird springe zu Aufgabe1() If taste = 0 Then AufgabeIndex = 0 ;wenn 0 gedrückt wird ist das Programm zu Ende End Function |
||
antome |
Svolf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich darf ja lein Input verwenden, da ich ein Bild habe und Linien und Input nun mal, dass Programm aufhält.
Ich habs mit getkey versucht es sieht dann so aus: Code: [AUSKLAPPEN] Global AufgabeIndex = 1 Repeat Select AufgabeIndex Case 1 Aufgabe1() Case 2 Aufgabe2() End Select Until AufgabeIndex = 0 Function Aufgabe1() Print "ein Domm" Print "sdcdscsdc" Print "sdcdscwq" x=GetKey() If x = 97 Then Punkte = Punkte + 1 AufgabeIndex = 2 ElseIf x = 98 Then AufgabeIndex = 2 ElseIf x = 99 Then AufgabeIndex = 2 ElseIf x = 100 Then AufgabeIndex = 2 EndIf End Function Function Aufgabe2() Print "4" Print "5" Print "6" taste = Input("Gib eine Zahl ein ") If taste = 6 Then AufgabeIndex = 1 ;wenn 6 gedrückt wird springe zu Aufgabe1() If taste = 0 Then AufgabeIndex = 0 ;wenn 0 gedrückt wird ist das Programm zu Ende End Function Doch er schreibt mir dann nur die Prints auf. Hab enicht mal eine Tatse gedrückt,..=( Ich glaube ich bin zu doof dazu oder kann mir das eine für Getkey machen,...ich möchte doch nur ein Bild im HIntergrund und das man von einer Frage auf die nächste kommt und , dass er noch Punkte Zählt aber nichts geht,..=( |
||
antome!!! gesperrt !!! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Versuch es mal so:
Code: [AUSKLAPPEN] Global AufgabeIndex = 1 Global Punkte Repeat Select AufgabeIndex Case 1 Aufgabe1() Case 2 Aufgabe2() Case 3 Aufgabe3() End Select Until AufgabeIndex = 0 Function Aufgabe1() Print "Punkte " + Punkte Print "" Print "1: Maus" Print "2: Katze" Print "3: Hund" Print "" Print "Gebe die Nummer mit der richtigen Antwort ein, 9 beendet das Quiz" Repeat x=Chr$(GetKey() ) Until x > 0 If x = 1 Then Punkte = Punkte + 1 EndIf If x < 9 Then AufgabeIndex = 2 Else AufgabeIndex = 0 End Function Function Aufgabe2() Print "Punkte "+Punkte Print "" Print "1: Haus" Print "2: Hütte" Print "3: Stall" Print "" Print "Gebe die Nummer mit der richtigen Antwort ein, 9 beendet das Quiz" Repeat x=Chr$(GetKey() ) Until x > 0 If x = 3 Then Punkte = Punkte + 1 EndIf If x < 9 Then AufgabeIndex = 3 Else AufgabeIndex = 0 End Function Function Aufgabe3() ;.... usw End Function |
||
antome |
- Zuletzt bearbeitet von antome am Di, März 21, 2006 19:01, insgesamt 3-mal bearbeitet
Svolf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe mal dein Code Kopiert und es ist egal welche Tase ich drücke er springt nie zu Aufgabe 2,....
Es wird dann immer sofort beendet,...=( |
||
- Zuletzt bearbeitet von Svolf am Di, März 21, 2006 18:47, insgesamt einmal bearbeitet
antome!!! gesperrt !!! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Versuch es nochmal, hab es korrigiert
ausserdem sollte es das ja, das hast du in deinem Code auch so geschrieben, egal ob richtig oder nicht springe zur nächsten Aufgabe |
||
antome |
Svolf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jopp so würde es gehen nur wenn ich 1 drücke er zählt die Punkte nicht mit,..hm ich habe schon gesucht finde den Fehler aber nicht,..aber danke für deine HIlfe echt nett ![]() PS: Du hast ja ein Punktezähler drin, wenn man 1 drückt, dass es geht aber er zeigt nur 0 an =( |
||
antome!!! gesperrt !!! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mach Punkte noch Global, dann müsste es gehen | ||
antome |
Svolf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke,...es funktiniert,..danke für deine Hilfe,.. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group