Problem mit If - Struktur
Übersicht

halloBetreff: Problem mit If - Struktur |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi
Ich habe ein Problem mit einer If-Struktur; ich habe versucht ein kleines Quiz zu programmieren. Wenn ich das Programm starten will, erscheint die Nachricht "Function not found". Problem liegt in der Funktion PrintText mit dem Inhalt : If Loesungsvorschlag = Loesung(Nummer) Then Punkte = Punkte + 10 Code: [AUSKLAPPEN] AppTitle "Quiz" Graphics 640,480, 16,1 ;-------------------------------------------------------------------------------- ;"Unit" ;-------------------------------------------------------------------------------- ; ------------------------------------------------------------------------------ ;Hilfe Funktion ; ------------------------------------------------------------------------------ Function Help() Cls Bild = LoadImage ("C:\Dokumente und Einstellungen\Nora&Michel\Eigene Dateien\Nora\Blitzbasic und delphi\Hilfe.bmp") DrawImage Bild, 0,0 Color 255,255,255 Schrift1 = LoadFont("Comic Sans MS",40, True) SetFont Schrift1 Color 0,0,127 Text 200,20, "Hilfe" Schrift2 = LoadFont("Comic Sans MS", 20, True) SetFont Schrift2 Color 255,255,255 Text 50,100, "In diesem Quiz geht es darum, möglichst viele Fragen in kurzer Zeit " Text 50,120, "richtig zu beantworten.Für jede richtige Antwort gibt es 10 Punkte." Text 50,140, "Sobald die Frage auf dem Bildschirm erscheint Taste A oder 1 für " Text 50,160, "Antwort a, Taste 2 oder B für Antwort b und so weiter drücken." Text 50,180, "Um das Spiel zu starten drücke S. Viel Spaß!!!" Repeat If KeyDown(18) Then End Until KeyDown(31) Return 1 End Function ; ------------------------------------------------------------------------------ ; Readtext Funktion ; ------------------------------------------------------------------------------ Const Max = 9 Dim Frage$(Max) Function ReadText (Datei$) Fragtxt = ReadFile (Datei$) If Fragtxt = 0 Then Return 0 For i = 0 To 9 Frage$(i) = ReadLine (Fragtxt) Next CloseFile Fragtxt Return 1 End Function ; ------------------------------------------------------------------------------ ; Readanswer Funktion ; ------------------------------------------------------------------------------ Const Max2 = 39 Dim Antwort$(Max2) Function Readanswer (Datei2$) Antworttxt = ReadFile (Datei2$) If Antworttxt = 0 Then Return 0 For i = 0 To 9 Antwort$(i) = ReadLine (Antworttxt) Next CloseFile Antworttxt Return 1 End Function ; ------------------------------------------------------------------------------ ; PrintText Funktion ; ------------------------------------------------------------------------------ Function PrintText() Nummer = Rand(1,10) ;welche frage ausgegeben werden soll: dafür ist die variable nummer zuständig Schrift4 = LoadFont ("Comic Sans MS", 25,True) SetFont Schrift4 Color 255,255,255 Readanswer ("C:\Dokumente und Einstellungen\Nora&Michel\Eigene Dateien\Nora\Blitzbasic und delphi\Antwort.txt") Text 100, 170, Frage$(Nummer) f = (Nummer - 1) * 3 + Nummer Text 50,300, Antwort$(f) f = f + 1 Text 380,300, Antwort$(f) f = f + 1 Text 50,360, Antwort$(f) f = f + 1 Text 380,360, Antwort$(f) f = f + 1 ReadLoesung("C:\Dokumente und Einstellungen\Nora&Michel\Eigene Dateien\Nora\Blitzbasic und delphi\Hilfe.bmp") Loesungsvorschlag = 0 While Loesungsvorschlag = 0 If KeyDown(30) Then Loesungsvorschlag = 1 If KeyDown(48) Then Loesungsvorschlag = 2 If KeyDown(46) Then Loesungsvorschlag = 3 If KeyDown(32) Then Loesungsvorschlag = 4 If KeyDown(18) Then End Wend If Loesungsvorschlag = Loesung(Nummer) Then Punkte = Punkte + 10 Return Punkte End Function ; ------------------------------------------------------------------------------ ; Readloesung Funktion ; ------------------------------------------------------------------------------ Const Max3 = 9 Dim Loesung(Max3) Function ReadLoesung (Datei3$) Loesungtxt = ReadFile (Datei3$) If Loesungtxt = 0 Then Return 0 For i = 1 To 10 Loesung(i) = ReadLine (Loesungtxt) Next CloseFile Loesungtxt Return 1 End Function ;-------------------------------------------------------------------------------- ;"Unit" Ende ;-------------------------------------------------------------------------------- SeedRnd MilliSecs() ;Zufall BFont = LoadFont ("Comic Sans MS", 50,True) SetFont BFont Bild = LoadImage ("C:\Dokumente und Einstellungen\Nora&Michel\Eigene Dateien\Nora\Blitzbasic und delphi\Hilfe.bmp") DrawImage Bild, 0,0 Color 0,0,255 Text 320,10, "Hallo!!" BFont = LoadFont ("Comic Sans MS", 50,True) SetFont BFont Color 255,255,255 Text 50,160, "Die Hilfe erreichst du mit H. Text 50,280, "Beende mit E." Text 50,400, " Starte mit S." Repeat If KeyDown(35) Then Help() If KeyDown(18) Then End Until KeyDown(31) Hintergrund = LoadImage ("C:\Dokumente und Einstellungen\Nora&Michel\Eigene Dateien\Nora\Blitzbasic und delphi\Hintergrund.bmp") DrawImage Hintergrund, 0,0 Schrift3 = LoadFont ("Comic Sans MS", 50,True) SetFont Schrift3 Color 255,255,255 StartZeit = MilliSecs() Repeat Datei$ = "C:\Dokumente und Einstellungen\Nora&Michel\Eigene Dateien\Nora\Blitzbasic und delphi\Hauptstaedte.txt" ReadText (Datei$) Schrift4 = LoadFont ("Comic Sans MS", 25,True) PrintText () JetztZeit = MilliSecs() If KeyDown(18) Then End Until StartZeit - JetztZeit > 180000 Cls DrawImage Bild, 0,0 Text 320,240, "Deine Punktzahl:" + Punkte Repeat Until KeyDown(18) End |
||
- Zuletzt bearbeitet von hallo am Fr, März 21, 2008 22:17, insgesamt 3-mal bearbeitet
Tritium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Darf ich fragen, wo das Problem genau liegt? | ||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja und? Wenn du nicht sagst was nicht funktioniert, wie soll mal dir helfen?
Was mir beim überfliegen auffällt: Du solltest keine absoluten Pfadangaben machen, sondern relative. Außerdem Bilder nicht in Funktionen Laden, sondern vor der Hauptschleife - in globalen Variablen um sie in Funktionen benutzten zu können wenn nötig. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
TankbusterBetreff: Re: Problem mit If - Struktur |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo hat Folgendes geschrieben: Hi
Ich habe ein Problem mit einer If-Struktur; ich habe versucht ein kleines Quiz zu programmieren. Wenn ich das Programm starten will, erscheint die Nachricht "Function not found". Problem liegt in der Funktion PrintText mit dem Inhalt : If Loesungsvorschlag = Loesung(Nummer) Then Punkte = Punkte + 10 Function not found sagt doch alles. Die Funktion Loesung(Nummer) existiert nicht. |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das gehört nach oben im Code und nicht mitten drin
Code: [AUSKLAPPEN] Const Max3 = 9
Dim Loesung (Max3) da beim prüfen des Codes von Basic aus als erstes die Dim Anweisung stehen muß da sonst davon ausgegangen wird das Loesung eine Function ist ! |
||
[BB2D | BB3D | BB+]
|
hallo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay, danke.
Aber es funktioniert immer noch nicht richtig:Die Schleife wird nicht wiederholt. (Funktion PrintText) Loesungsvorschlag = 0 Repeat If KeyDown(30) Then Loesungsvorschlag = 1 If KeyDown(48) Then Loesungsvorschlag = 2 If KeyDown(46) Then Loesungsvorschlag = 3 If KeyDown(32) Then Loesungsvorschlag = 4 If KeyDown(18) Then End Until Loesungsvorschlag <> 0 ![]() Danke |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
nimm anstatt keydown keyhit
und dieses geht auch nicht Code: [AUSKLAPPEN] StartZeit = MilliSecs() Repeat JetztZeit = MilliSecs() Until StartZeit - JetztZeit > 180000 da die Startzeit kleiner ist wie die Jetztzeit! Wenn die Function PrintText aufgerufen wird dann muß die Schleife auch abgearbeitet werden! Vielleicht schreibst du mal ein Stop in die Schleife und überprüfst das mit dem Debugger ob es wirklich nicht geht! |
||
[BB2D | BB3D | BB+]
|
hallo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sorry, aber wie mach ich das? ![]() danke |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Debugmodus einschalten
bzw unter dem Menü Punkt Programm ein Haken vor Debug enable setzten dann im Code einfach Code: [AUSKLAPPEN] Loesungsvorschlag = 0
stop; hier bleibt das Programm stehen ....... Repeat If KeyDown(30) Then Loesungsvorschlag = 1 If KeyDown(48) Then Loesungsvorschlag = 2 If KeyDown(46) Then Loesungsvorschlag = 3 If KeyDown(32) Then Loesungsvorschlag = 4 If KeyDown(18) Then End Until Loesungsvorschlag <> 0 jetzt kannst du dir die Variablen ansehen im Debugger usw. |
||
[BB2D | BB3D | BB+]
|
Shark |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] startzeit = millisecs()
if Millisecs() - startzeit >= 18000 So würde ich es machen. bzw. Code: [AUSKLAPPEN] startzeit = Millisecs() repeat until millisecs()-startzeit >= 18000 mfg Shark |
||
hallo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, hat super geklappt.
![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group