Mari: Kann mal jemand meine Fehler korrigieren?

Was mache ich hier falsch???

<body>  
<p class="title">Pok&eacute;mon-Waisenhaus<br/></p>  
<script type="text/javascript">  
function test(){alert('Herzlich willkommen bei Mari\'s Pokémon-Waisenhaus! Erst mal könnt ihr ein paar Fragen beantworten. Bitte beantwortet sie nur mit \"1\" oder \"2\"!');  
var a = prompt("Was möchtest du lieber? 1=Freunde haben 2=Champion werden.");  
var b = prompt("Ruhst du gerne aus? 1=Ja. 2=Nein, ich möchte schließlich trainieren.");  
var c = prompt("Was isst du am liebsten? 1=Obst und Gemüse. 2=Ein saftiges Steak.");  
var d = prompt("Kannst du es verkraften, wenn du verlierst? 1=Ja klar. 2=Nicht wirklich.");  
var e = prompt("Welche Art Pokémon bevorzugst du? 1=Stille Pokémon. 2=Hitzige Pokémon.")};  
function pruefen(){  
 case "1":  
  switch (c) {  
  case "1":  
   switch (d) {  
   case "1":  
    switch (e) {  
     case "1": var Pokemon = 152; var Name = "Endivie"; break;  
     case "2": var Pokemon = 172; var Name = "Pichu"; break;  
    }  
   case "2":  
    switch (e) {  
     case "1": var Pokemon = 446; var Name = "Mampfaxo"; break;  
     case "2": var Pokemon = 252; var Name = "Geckarbor"; break;  
    }  
   }  
  case "2":  
   switch (d) {  
   case "1":  
    switch (e) {  
     case "1": var Pokemon = 300; var Name = "Eneco"; break;  
     case "2": var Pokemon = 155; var Name = "Feurigel"; break;  
    }  
   case "2":  
    switch (e) {  
     case "1": var Pokemon = 431; var Name = "Charmian"; break;  
     case "2": var Pokemon = 052; var Name = "Mauzi"; break;  
    }  
   }  
  }  
 case "2":  
  switch (c) {  
  case "1":  
   switch (d) {  
   case "1":  
    switch (e) {  
     case "1": var Pokemon = 258; var Name = "Hydropi"; break;  
     case "2": var Pokemon = 236; var Name = "Rabauz"; break;  
    }  
   case "2"  
    switch (e) {  
     case "1": var Pokemon = 387; var Name = "Chelast"; break;  
     case "2": var Pokemon = 239; var Name = "Elekid"; break;  
    }  
   }  
  case "2":  
   switch (d) {  
   case "1"  
    switch (e) {  
     case "1": var Pokemon = 360; var Name = "Isso"; break;  
     case "2": var Pokemon = 240; var Name = "Magby"; break;  
    }  
   case "2"  
    switch (e) {  
     case "1": var Pokemon = 158; var Name = "Karnimani"; break;  
     case "2": var Pokemon = 009; var Name = "Schiggy"; break;  
    }  
   }  
  }  
 }  
case "2":  
 switch (b) {  
 case "1":  
  switch (c) {  
  case "1":  
   switch (d) {  
   case "1":  
    switch (e) {  
     case "1": var Pokemon = 439; var Name = "Wonneira"; break;  
     case "2": var Pokemon = 439; var Name = "Pantimimi"; break;  
    }  
   case "2":  
    switch (e) {  
     case "1": var Pokemon = 438; var Name = "Mobai"; break;  
     case "2": var Pokemon = 406; var Name = "Knospi"; break;  
    }  
   }  
  case "2":  
   switch (d) {  
   case "1":  
    switch (e) {  
     case "1": var Pokemon = 238; var Name = "Kussilla"; break;  
     case "2": var Pokemon = 393; var Name = "Plinfa"; break;  
    }  
   case "2":  
    switch (e) {  
     case "1": var Pokemon = 255; var Name = "Flemmli"; break;  
     case "2": var Pokemon = 001; var Name = "Bisasam"; break;  
    }  
   }  
  }  
 case "2":  
  switch (c) {  
  case "1":  
   switch (d) {  
   case "1":  
    switch (e) {  
     case "1": var Pokemon = 173; var Name = "Pii"; break;  
     case "2": var Pokemon = 174; var Name = "Fluffeluff"; break;  
    }  
   case "2":  
    switch (e) {  
     case "1": var Pokemon = 054; var Name = "Enton"; break;  
     case "2": var Pokemon = 390; var Name = "Panflam"; break;  
    }  
   }  
  case "2":  
   switch (d) {  
   case "1":  
    switch (e) {  
     case "1": var Pokemon = 458; var Name = "Mantirps"; break;  
     case "2": var Pokemon = 433; var Name = "Klingplim"; break;  
    }  
   case "2":  
    switch (e) {  
     case "1": var Pokemon = 298; var Name = "Azurill"; break;  
     case "2": var Pokemon = 004; var Name = "Glumanda"; break;  
    }  
   }  
  }  
 }  
}  
};  
  
function schreiben(){  
document.write("<p class=\"title\">Und dein Pok&eacute;mon heißt:<\/p><br\/><img src=\"http:\/\/files.pokefans.net\/sprites\/dp\/" + Pokemon + ".png\" alt=\"" + Name + "\"/><br\/><p class=\"text\">" + Pokemon + "scheint sich zu freuen.<\/p>");  
};  
  
function los(){  
test();  
pruefen();  
schreiben();  
};  
</script>  
<noscript><p>Bitte schalte Javascript ein und kehre <a href="#">zur&uuml;ck</a>.</noscript>  
  
  
<a href="javascript:los();"> Zu Professor Eich! </p>  
  
  
</body>
  1. Hallo,

    1. In diesem forum gehört ein freundliches Hallo und tschüss einfach dazu
    2. "Kann mal jemand meine Fehler korrigieren?" --> So läuft das hier überhaupt nicht. Fehler werden nur von DIR mit unserer HILFE gelöst. nicht umsonst heist das hier  >>SELF<< -html
    3. Wenn dir schon geholfen werden soll gehört eine möglichst detailierte Problembeschreibung dazu.
    4. Beschreibe deine Erwartungen

    versuchs nochmal!

    MfG. Christoph Ludwig

    --
    Wo die Sprache aufhört, fängt die Musik an...
    Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
    Go to this
    1. Hallo,

      1. In diesem forum gehört ein freundliches Hallo und tschüss einfach dazu
      2. "Kann mal jemand meine Fehler korrigieren?" --> So läuft das hier überhaupt nicht. Fehler werden nur von DIR mit unserer HILFE gelöst. nicht umsonst heist das hier  >>SELF<< -html
      3. Wenn dir schon geholfen werden soll gehört eine möglichst detailierte Problembeschreibung dazu.
      4. Beschreibe deine Erwartungen

      versuchs nochmal!

      MfG. Christoph Ludwig

      Hallo. Irgendwo muss ich ein Semikolon oder irgendwas vergessen haben, weshalb kein browser (opera, safari, chrome, firefox und ie) diesen script ausführt. Kann mich jemand bitte auf diesen fehler hinweisen? wär nett. danke.

      1. Hallo,

        Hallo. Irgendwo muss ich ein Semikolon oder irgendwas vergessen haben, weshalb kein browser (opera, safari, chrome, firefox und ie) diesen script ausführt. Kann mich jemand bitte auf diesen fehler hinweisen? wär nett. danke.

        da ist nichts mit Semikolon oder so ... werf den ganzen Code noch einmal weg und mach es neu. Aber diesmal mit einem RICHTIGEN switch-case-Syntax ...

        MfG. Christoph Ludwig

        --
        Wo die Sprache aufhört, fängt die Musik an...
        Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
        Go to this
        1. Hallo,

          Hallo. Irgendwo muss ich ein Semikolon oder irgendwas vergessen haben, weshalb kein browser (opera, safari, chrome, firefox und ie) diesen script ausführt. Kann mich jemand bitte auf diesen fehler hinweisen? wär nett. danke.

          da ist nichts mit Semikolon oder so ... werf den ganzen Code noch einmal weg und mach es neu. Aber diesmal mit einem RICHTIGEN switch-case-Syntax ...

          MfG. Christoph Ludwig

          Was ist an der Syntax FALSCH??
          Das mit if else war mir viel zu langsam...

          1. Hallo,

            Was ist an der Syntax FALSCH??

            alles ;)

            RICHTIGER Syntax:

            switch(variable)  
            {  
              case [Fall eins]:  
                Anweisung1;  
                Anweisung2;  
                break;  
              case [Fall zwei]:  
                Anweisung1;  
                Anweisung2;  
                break;  
              default:    //wenn kein Fall zutrifft  
                Anweisung1;  
                break;  
            }
            

            Anweisungen können natürlich beliebig viele sein...

            MfG. Christoph Ludwig

            --
            Wo die Sprache aufhört, fängt die Musik an...
            Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
            Go to this
            1. Hallo,

              Hier noch ein Link dazu...

              MfG. Christoph Ludwig

              --
              Wo die Sprache aufhört, fängt die Musik an...
              Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
              Go to this
          2. Was ist an der Syntax FALSCH??

            Du kennst die fehlerkonsole im Friefox? Da steht es.

            Das mit if else war mir viel zu langsam...

            Ich bezweifle, dass das spürbar langsamer ist (wenn überhaupt)

            Struppi.

          3. Was ist an der Syntax FALSCH??
            Das mit if else war mir viel zu langsam...

            vielleicht nicht falsch aber sehr ungünstig. 5fach switch() verschachteln hab ich noch nie gesehen wie wärs mit meinem Vorschlag (s.o.)
            http://forum.de.selfhtml.org/?t=178508&m=1177387

  2. function pruefen(){
    case "1":

    Hier fängst du direkt in der Funktion mit einem case an, ohne dass ein switch-Statement darum liegt. Vielleicht hast du
    switch (irgendwas) {
    davor vergessen?

    Außerdem stimmt etwas bei der Verschachtelung und Klammerung nicht. Die Funktion wird schon mittendrin durch ein } geschlossen. Am besten rückst du die Zeilen nochmal durchgängig korrekt ein (am besten mit Tabulatoren oder z.B. vier Leerzeichen), sodass du eine Übersicht hast, welche Klammer-Ebene wo geöffnet und geschlossen wird.

    switch (a) {
        case "1" :
            switch (c) {
                case "1" :
                    switch (d) {
                        case "1" :
                            ...
                        case "..." :
                            ...
                    }
                case "..." :
                    ...
            }
        case "..." :
            ...
    }

    usw.

    Mathias

  3. Hi,

    Was mache ich hier falsch???

    Neben dem bereits erwähnten:

    case "2": var Pokemon = 052; var Name = "Mauzi"; break;

    Willst Du hier wirklich Pokemon den Wert 42 zuweisen?

    case "1": var Pokemon = 054; var Name = "Enton"; break;

    und hier den Wert 44 ?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  4. diese verschachtelten switch() Anweisungen geraten recht kompliziert. Ich hätte es anders gemacht: Die Variablen a  bis e sind jeweils 1 oder 0, also quasi binär! also:

      
     var eingabewert = 2^a + 2^b + 2^c + 2^d + 2^e;
    

    so hat man einen Dezimalwert für den "5 bit" breiten Eingabevektor. *jetzt* kann man eleganter einen switch() durchführen:

      
    switch (eingabewert) {  
       case 1: Pokemon = xxx; Name = "Name des Pok"; break;  
       case 2: Pokemon = yyy; Name = "Name ....  
     ...  
       case 32: Pokemon..  
    }
    

    was heisst elegant.. mit 32 zeilen auch nicht mehr ganz so..
    Oder Du machst 2 Arrays:

      
      var Pokemons = ["hans","klaus",...]  
      var Pokemonwerte = ["123","456",...]  
     
    

    jeweils mit 32 Werten auf die Du dann mit  Pokemon = Pokemons[eingabewert]
    usw. zugreifen kannst. Man muss eben nur die jeweiligen Werte herausfinden und zuweisen. Erscheint mir aber übersichtlicher als 5fach verschachtelte switches O_o ...

    Die Variablen Pokemon und Name sollten global definiert werden, du hast
    sie im switch lokal definiert.

    1. ohjeh! das war leider Blödsinn sorry... hab mich vertan. und das mir 0_o. Kids don't try this at home
      es muss heissen:

      a--;b--; // wir brauchen 0,1 statt 1.2  
      var eingabewert = a*2^4 + b*2^3 + c*2^2 + d*2^1 + e*1^0;
      

      also

      var eingabewert = 16a + 8b + 4c + 2d + e;

      so bekommen wir zweifelsfrei einen Dezimawert aus der binären Eingabe. der Rest stimmt aber *Hand ins Feuer leg*. wer immer das noch liest hier...

      var eingabewert = 2^a + 2^b + 2^c + 2^d + 2^e;

      
      >   
      > so hat man einen Dezimalwert für den "5 bit" breiten Eingabevektor.