Problem mit "Repeat"

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

CyRan

Betreff: Problem mit "Repeat"

BeitragMi, März 28, 2007 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute bin noch ein Blutanfänger...hab die Tutorials schon druchgearbeitet aber irgendwie verstehe ich das nicht. Ich habe mal veruscht ein Textadventure zu machen und jetzt hänge ich hier:
Code: [AUSKLAPPEN]
Name$ = Input("Dein Name:")
Koenigreich$ = Input("Dein Koenigreich:")
Alter$ = Input("Dein Alter: ")
Bauer$ = 100

Color 255, 0, 0 Print"Deine Anzahl von Bauern betraegt " Color 255,255,255 Print Bauer$

Soldaten$ = Input("Wie viele Soldaten willst du ausbilden?: ")

If Soldaten$ = <100

Then Print"Du hast erfolgreich deine Soldaten ausgebildet!"

Else Repeat Print " Du hast nur 100 Bauern zur Verfügung" Until Soldaten$ = <100



Was mach ich falscH? ich will das wenn man über 100 eingibt bei Soldaten$ das die Frage mit wie viel blaba willst du ausbilden nochmal kommt also das der Spieler die Chance bekommt das ganze nochmal zu machen falls es zu viele sind, jedoch funktioniert das anscheinend net. Bitte um Hilfe und verbesserung

BladeRunner

Moderator

BeitragMi, März 28, 2007 21:08
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.


Ich möchte Dich auf die verschiedenen Variablentypen hinweisen. Du speicherst alles als Zeichenkette, aber bauer und soldat wären Kandidaten für Integer (Ganzzahlvariablen).

Zu deinem repeat-problem:
Du musst innerhalb der repeat-until-Schleife dein input haben, sonst kann ja nie eine Änderung der Soldatenzahl eintreten.
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
 

CyRan

BeitragMi, März 28, 2007 21:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry was meinst du mit ganzzahl variablen?

Also muss ich nach Repeat das mit Input wieder reinmachen ?

BladeRunner

Moderator

BeitragMi, März 28, 2007 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau Dir bitte die Onlinehilfe / die Robsite-Tutorials nochmal an, da werden Variablentypen sehr früh erklärt.
Kurz zusammengefasst:
$ (string) : Zeichenkette: Enthält Buchstaben und Zahlen, man kann nicht mit ihnen Rechnen, sie nur per + verbinden.
%(integer, ganzzahl) speichert natürliche Zahlen, d.h. keine Brüche. Man kann mit ihnen alle Rechenoperationen machen.
# (float, Gleitkommazahl) Brüche mit nachkommastellen. s.o.

Beispiele:
name$ = "Peter"
zahl% = 5
kommazahl# = 1.234
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

StepTiger

BeitragMi, März 28, 2007 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Jep.
Zitat:
Color 255, 0, 0 Print"Deine Anzahl von Bauern betraegt " Color 255,255,255 Print Bauer$

Color ist übrigens ein eigener Befehl, muss also in einer eigenen Zeile stehen. Um das zu umgehen, kannst du auch einen ":" setzen.
Code: [AUSKLAPPEN]
Color 255,0,0
write "Deine Anzahl von Bauern beträgt "
color 255,255,255
print bauer

Oder statt einer neuen Zeile einen Doppelpunkt setzen. Das wird erst bei if then kompliziert!
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

CyRan

BeitragDo, März 29, 2007 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die wichtigen Tipps, aber was muss ich jetzt genau mit dem Repeat machen ?

Silver_Knee

BeitragDo, März 29, 2007 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuchs mal mit diesem Code: [AUSKLAPPEN]
Repeat
soldaten=Input("EINTIPPEN")
if soldaten>bauern
  PRINT "DU HAST ZU WENIG BAUERN!! SIEHST DU DAS NICHT"
else
  Print "HURRA, Du dast soldaten: Mach alles kaputt"
endif
until soldaten<=bauern
 

DerSatan

Gast

Betreff: Re: Problem mit "Repeat"

BeitragDo, März 29, 2007 14:12
Antworten mit Zitat
Also, nochmal zum mitschreiben: Du hast das Problem, dass (das?) es in deiem Textadventure probleme gibt. Soweit ich das sehe, gab es folgende Vorschläge:
1. In deine Repeat-Schleife noch ein Input setzten (was wohl die Lösung wäre, denke ich)
2. Die Anzahl von Bauern und Soldaten in "Ganzzahlen"-Variablen (Integer) speichern.
Vorher:
Code: [AUSKLAPPEN]
Name$ = Input("Dein Name:")
Koenigreich$ = Input("Dein Koenigreich:")
Alter$ = Input("Dein Alter: ")
Bauer$ = 100

Color 255, 0, 0 Print"Deine Anzahl von Bauern betraegt " Color 255,255,255 Print Bauer$

Soldaten$ = Input("Wie viele Soldaten willst du ausbilden?: ")

If Soldaten$ = <100

Then Print"Du hast erfolgreich deine Soldaten ausgebildet!"

Else Repeat Print " Du hast nur 100 Bauern zur Verfügung" Until Soldaten$ = <100


Nachher also:
Code: [AUSKLAPPEN]
Name$ = Input("Dein Name:")
Koenigreich$ = Input("Dein Koenigreich:")
Alter$ = Input("Dein Alter: ")
Bauer% = 100

Color 255, 0, 0 Print"Deine Anzahl von Bauern betraegt " Color 255,255,255 Print Bauer%

Soldaten% = Input("Wie viele Soldaten willst du ausbilden?: ")

If Soldaten% = <100

Then Print"Du hast erfolgreich deine Soldaten ausgebildet!"

Else
Repeat
Print " Du hast nur 100 Bauern zur Verfügung"
Soldaten% = Input("Wie viele Soldaten willst du ausbilden? ")
Until Soldaten% = <100


Das dürfte wohl passen... nur mal so am Rande...
 

CyRan

BeitragDo, März 29, 2007 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Der sagt bei mir immer das EndIf fehlt obwohl es nicht fehlt...

Der Comamnd ist doch If keyhit(32) then print blalbal else blalala endif
 

Beatenvoy

BeitragDo, März 29, 2007 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne Code nix los Wink

BladeRunner

Moderator

BeitragDo, März 29, 2007 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn Du deinen Code betrachtest ( und ihn vielleicht mal vernünftig einrückst) wirst Du sehen dass da durchaus noch ein if offen ist...
(auch das else ist teil des ifs, schliesst es aber nicht ab Wink )
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
 

CyRan

BeitragDo, März 29, 2007 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier der Code

Code: [AUSKLAPPEN]
If KeyHit (2)
 Then Write "Deine Bauern ziehen aus um den Feind anzugreifen!"Print "Deine Bauern haben die Barbaren vertrieben..." Print Bauern% - Barbaren% Write"Bauern sind zurueck gekehrt!"
ElseIf KeyHit (<3) Then Print"Druecke entwerder 1 oder 2! )
 ElseIf KeyHit (3) Then Print"Du hast Glueck deine Gebete wurden erhoert, die Barbaren fliehen!..Was sie wohl verscheucht hat?"
EndIf

Silver_Knee

BeitragFr, März 30, 2007 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
möchtest du mit KeyHit(<3) ausdrücken das der key der größer als 3 ist gedrückt wurde???
Wenn ja hast du einen Syntaxfehler begangen! Das gibt dir Villeicht hilfe Code: [AUSKLAPPEN]
scancode=WaitScan()
If scancode=2
  ...
Elsif scancode>3
  ...
ElseIf scancode=3
EndIf

DIE WAITSCAN()-Funktion gibts HIER

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group