Frage zu Programm
Übersicht

MichaelD1Betreff: Frage zu Programm |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Graphics 640,480,32,2
SetBuffer BackBuffer() ;---------------------------------------------------- Dim Uebersetzung$(10) Uebersetzung$(1)="1" Uebersetzung$(2)="2" Uebersetzung$(3)="3" Uebersetzung$(4)="4" Uebersetzung$(5)="5" Uebersetzung$(6)="6" Uebersetzung$(7)="7" Uebersetzung$(8)="8" Uebersetzung$(9)="9" Uebersetzung$(10)="10" KAnzahl=10 Dim gesehen(KAnzahl) Dim KBild(KAnzahl) For i= 1 To KAnzahl KBild(i)=LoadImage("Kanji"+i+".bmp") Next Menu=True Eingabee=False Global wahl = Rand(KAnzahl) gesehen(wahl) = 1 Repeat Cls If Menu=True Then Gosub TrainerMenuGosub EndIf If KeyDown(57) Then Menu=False Eingabee=True EndIf If Eingabee=True Then Menu=False Gosub TrainerStart EndIf If KeyDown(1) Then End ;---------------------------------------------------- Until KeyDown(1) .EingabeGosub Text 100,100,"Name: " A=GetKey() If A > 31 Then Name$ = Name$+Chr$(A) If A=8 And Len(Name$) > 0 Then Name$=Left$(Name$,Len(Name$)-1) Text 150,100,Name$+"_" If KeyDown(28) Then If Uebersetzung$(wahl)=Name$ Then Text 100,300,"Richtig" If Uebersetzung$(wahl)<>Name$ Then Text 100,300,"falsch" EndIf Flip Return .TrainerMenuGosub Text 10,10," Leertaste um Trainer zu starten" Text 10,20," Esc um zu Trainer zu beenden" Flip Return .Trainerstart Text 10,10,"Maus 1 um neues Kanji zu waehlen" Text 10,20," Eingabe um Uebersetzung zu bestätigen" Gosub EingabeGosub DrawBlock KBild(wahl),512-ImageWidth(KBild(wahl))/2,130 If MouseHit(1) Then wahl = 0 ; sind alle Kanjis angesehen? For i = 1 To KAnzahl If gesehen(i) = 0 Then ; nein, denn es gibt noch eins Repeat wahl = Rand(KAnzahl) If gesehen(wahl) = 1 Then wahl = 0 ; nochmal Zufallsauswahl Else gesehen(wahl) = 1 EndIf Until wahl > 0 Exit EndIf Next If wahl = 0 Then ; keins mehr da Text 10,10,"Das war das letzte. Ende: ESC, nochmal: Leertaste." Flip WaitKey() For i = 1 To KAnzahl gesehen(i) = 0 Next ; Neustart wahl = Rand(KAnzahl) gesehen(wahl) = 1 EndIf EndIf Flip Return Warum gibt er mir immer falsch an , obwohl die Antwort richtig sein müßte, als ich es daß erste mal geschrieben habe hat es funktioniert dann nicht mehr. Warum funktioniert diese einfache Bedingung nicht |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Rücke Deinen Code bitte ein und verwende die Code-Tags. Ich habs eben mal in den Editor kopiert, aber das quält echt meine Augen ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Slayer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Fehler ist hier:
Code: [AUSKLAPPEN] Dim Uebersetzung$(10) ;<<<--------
Uebersetzung$(1)="1" Uebersetzung$(2)="2" Uebersetzung$(3)="3" Uebersetzung$(4)="4" Uebersetzung$(5)="5" Uebersetzung$(6)="6" Uebersetzung$(7)="7" Uebersetzung$(="8" Uebersetzung$(9)="9" Uebersetzung$(10)="10" Du erstellst ein Array mit 10 Felder, das ist soweit auch richtig. Aber wenn Du die einzelnen einträge machst musst Du von 0 anfangen und bei 9 aufhören. (0 - 9 == 10) Oder mach ein Dim Uebersetzung$(11) ![]() |
||
AMD2500XP, SB5.1, DX9, 512MB DDR333,
XPPro SP1a,ATI 9800SE 256bit 128MB,B3B, B+ immer die neue Version |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Slayer: Hä? Möglich das ich nicht verstehe wie Du das meinst, aber wenn ich ein Feld dimensioniere, kann ich auch auf das letzte Feld zugreifen. Beispiel:
Code: [AUSKLAPPEN] Dim feld(10)
feld(0)=100 ; erstes Feld feld(10)=200 ; letztes Feld |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Slayer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hubsi hat Folgendes geschrieben: @Slayer: Hä? Möglich das ich nicht verstehe wie Du das meinst, aber wenn ich ein Feld dimensioniere, kann ich auch auf das letzte Feld zugreifen. Beispiel:
Code: [AUSKLAPPEN] Dim feld(10)
feld(0)=100 ; erstes Feld feld(10)=200 ; letztes Feld An denn Kopflangundindieeckestell. Klar geht das, Du hast recht, war ein Denkfehler meinerseits. |
||
AMD2500XP, SB5.1, DX9, 512MB DDR333,
XPPro SP1a,ATI 9800SE 256bit 128MB,B3B, B+ immer die neue Version |
MichaelD1 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
funktioniert meins bei euch | ||
![]() |
Slayer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lade mal die bilder hoch, dann kann mans testen. | ||
AMD2500XP, SB5.1, DX9, 512MB DDR333,
XPPro SP1a,ATI 9800SE 256bit 128MB,B3B, B+ immer die neue Version |
![]() |
DivineDominion |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vorschlag:
DebugLog. Musst Debug Mode im Menü einschalten und kannst dann im Log nachsehen,w as ausgegeben wird (BEi alten versionen mit F9 in der IDE, bei neueren Versionen kommt der Debugger als extra Fenster unten). Prüf' damit mal den Wert von "Wahl", den Inhalt von "Name$" und "Uebersetzung$(wahl)". Vielleicht findest du irgendwelche Fehler, z.B. dieses "Chr$(A)", was ich nicht verstehe ![]() |
||
MichaelD1 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab ich mit Text schon gemacht , der wert war immer der richtige. Auch wenn ich ein reines textbasiertes Abfragesystem schreibe funktioniert diese Zeile nicht if Vokabeln$(wahl)=Abgefragt$ | ||
MichaelD1 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nehmt doch anstelle der Bilder kleine BMP 50 mal 50 die unterschiedlich aussehen | ||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem ist folgendes:
Dein Startbuchstabe (blank) aus der Aufforderung: 'zum Starten Leertaste drücken' wird durch das folgende A=Getkey() in deine Variable Name$ übernommen. Im Namen steht also immer vorne eine Leerstelle. Das siehst du wenn du erst ein Backspace machst und dann deine Eingabe. Mit deinen gosubs und diversen Flips flackerts bei mir übrigens. |
||
MichaelD1 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bei mir flakerts auch | ||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wirf alle Flip raus und mach nur ein einziges Flip in deiner Hauptschleife vor Until Keydown(1).
Und mach nach: if mousehit(1) then... noch den Namen wieder leer: Name$ = "" |
||
MichaelD1 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke es funktioniert jetzt | ||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ohne Seedrnd Millisecs() am Anfang kommt nach dem Programmstart immer die gleiche Zufallsfolge. Das fehlt noch... | ||
MichaelD1 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
habs mir schon gedacht das was fehlt, danke | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group