Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

08.11.2011, 18:57

Okay werd ich ausprobieren... Hast du holz statt Holz eingegeben?

12

08.11.2011, 19:04

Um Schorchs Text nochmal ganz kurz darzustellen: Wenn man "exit" eingibt, dann ist die erste Bedingung (Input != "Exit") bereits wahr und damit wird das Spiel weiter ausgeführt. Die zweite Bedingung interessiert dann gar keinen mehr.

13

08.11.2011, 19:16

Hab Jetzt Einfach das kleine Exit rausgenommen..^^

14

08.11.2011, 19:29

Mach es doch anders.
Kratze dir eine boolesche Variable zusammen und schau bei jedem Durchgang ob die auf 1 ist.
Dann kannst du am Ende abfragen ob die Eingabe nun "exit" oder "Exit" mit simpler if-Bedingung und schließlich als Ausführung einfach den booleschen Wert auf 0.
Schwupps, so geht das! O.O

MfG
Check

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

15

08.11.2011, 19:39

Kleiner Tipp, da du wohl mit den Vergleichen auf Groß&Kleinschreibungsprobleme triffst. In C# gibt es diverse Möglichkeiten das zu vereinheitlichen:


C#-Quelltext

1
if (eingegebenerText.ToLower() == "exit")


bzw

C#-Quelltext

1
if(eingegebenerText.Equals("exit", StringComparison.OrdinalIgnoreCase))


bzw per switch case:

C#-Quelltext

1
2
3
4
5
6
7
switch (eingegebenerText.ToLower())
{
  case "exit":
    ...
    break;
  ...
}

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »DerMark« (08.11.2011, 20:16)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

16

08.11.2011, 19:41

Nein ich habe Holz eingegeben. Steht ja im Spiel auch, dass man das machen soll. Du könntest aber auch einfach input.ToLower().Equals("exit") nehmen. Vorteil von sowas ist, dass der Benutzer "Exit", "EXIT", "exit", "eXiT" und alle möglichen Konstellationen eingeben kann. Man sollte es dem Benutzer/Spieler möglichst einfach machen. Statt dem Equals kannst du natürlich auch mit input.ToLower() == "exit" benutzen, da == für Strings überladen ist. Dass das alles wirklich Sinn macht, siehst du ja hier in diesem Thread schon, da die Casesensitive Abfrage ja bereits Probleme bereitet.

edit: Zu spät:D
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

17

08.11.2011, 19:50

Okay werd das Ganze nochmal von vorne Anfang (Allein weil mein Code scheiße unübersichtlich ist o_o)

18

08.11.2011, 20:55

Ich hab das mal so gemacht

C#-Quelltext

1
2
3
4
            if (input.ToLower().Equals("story"))
            {
                einführung.StartStory();
            }
Aber das ging nicht!

19

08.11.2011, 21:07

Bei mir geht das problemlos.

Gewöhne dir das Debuggen an. Dort kannst du schauen, welcher Wert im Objekt input steckt. Mein Tipp: Leerzeichen davor oder danach. :) Die Methode Trim() hilft dir dann weiter.

Grüße

20

08.11.2011, 21:11

Das Hilft nem Anfänger viel....

PS: Debuggen F5 Mach ich immer...^^

Werbeanzeige