• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Kleines Spiel für Homepage

Lordsem

New member
Guten Morgen miteinander,

ich hab vor kurzem angefangen mich mal in Javascript einzuarbeiten. Ich bin auf eine Seite gestoßen (Codeacademy), die ich eigentlich ganz gut finde. Aber jetzt stell ich mir die Frage ob das doch nicht so ganz richtig war mich darauf einzulassen. Ich habe dort das Spiel "Stein, Schere, Papier", welches dort erklärt wird und man dort auch selber "mit"schreiben kann, etwas abgeändert. Es lautet jetzt "Stein, Papier, Schere, Echse, Spock", ja ich denke die meisten kennen diese Version.
Jetzt versuche ich dieses Script irgendwie auf einer html Seite einzubinden. Mein aktueller Stand ist, eine Auswahl Liste für den Nutzer und im Script ein Alert Fenster mit der Ergebnisausgabe.
Irgendwie will dies nixcht so funktionieren wie ich das gern hätte. Ich komme nicht mehr weiter. Kann mir da jemand helfen?

Code:
<!Doctype HTML>
<html>
<head>
<script type="text/javascript">

function auswahl() {
      userChoice = window.document.list.wahl.selectedIndex;
}

var computerChoice = Math.random();
if (computerChoice < 0.2) {
	computerChoice = "Stein";
} else if(computerChoice <= 0.4) {
	computerChoice = "Papier" ;
} else if (computerChoice <= 0.6) {
	computerChoice = "Schere" ;
} else if (computerChoice <= 0.8) {
	computerChoice = "Echse" ;
} else {
	computerChoice = "Spock" ;
}

var compare = function(choice1, choice2) {
    if (choice1 === choice2) {
            return "Unentschieden! Versuch es nochmal!";
    } else if (choice1 === "Stein") {
        if (choice2 === "Schere") {
            return "Stein schleift Schere. Du gewinnst!";
        } else if (choice2 === "Echse") {
            return "Stein zerquetscht Echse. Du gewinnst!";
        } else if (choice2 === "Papier") {
            return "Papier bedeckt Stein. Du verlierst!";
        } else {
            return "Spock verdampft Stein. Du verlierst!";
        }
    } else if (choice1 === "Papier") {
        if (choice2 === "Stein") {
            return "Papier bedeckt Stein. Du gewinnst!";
        } else if (choice2 === "Spock") {
            return "Papier widerlegt Spock. Du gewinnst!";
        } else if (choice2 === "Schere") {
            return "Schere schneidet Papier. Du verlierst!";
        } else {
            return "Echse frisst Papier. Du verlierst!";
        }
    } else if (choice1 === "Schere") {
        if (choice2 === "Papier") {
            return "Schere schneidet Papier. Du gewinnst!";
        } else if (choice2 === "Echse") {
            return "Schere köpft Echse. Du gewinnst!";
        } else if (choice2 === "Stein") {
            return "Stein schleift Schere. Du verlierst!";
        } else {
            return "Spock zertrümmert Schere. Du verlierst!";
        }
    } else if (choice1 === "Echse") {
        if (choice2 === "Papier") {
            return "Echse frisst Papier. Du gewinnst!";
        } else if (choice2 === "Spock") {
            return "Echse vergiftet Spock. Du gewinnst!";
        } else if (choice2 === "Schere") {
            return "Schere köpft Echse. Du verlierst!";
        } else {
            return "Stein zerquestscht Echse. Du verlierst!";
        }
    } else if (choice1 === "Spock") {
        if (choice2 === "Schere") {
            return "Spock zertrümmert Schere. Du gewinnst!";
        } else if (choice2 === "Stein") {
            return "Spock verdampft Stein. Du gewinnst!";
        } else if (choice2 === "Papier") {
            return "Papier widerlegt Spock. Du verlierst!";
        } else {
            return "Echse vergiftet Spock. Du verlierst!";
        }
    }
};

var result = compare(userChoice, computerChoice);

alert("Spieler: " + userChoice \n "Computer: " + computerChoice \n result);
</script>
</head>

<body>
<p>Stein, Papier, Schere, Echse, Spock</p>
<form name="list">
   <select name=”wahl” onChange=”auswahl()”>
      <option>Triff eine Auswahl:</option>
      <option value=”Stein”>Stein</option>
      <option value=”Papier”>Papier</option>
      <option value=”Schere”>Schere</option>
      <option value=”Echse”>Echse</option>
      <option value=”Spock”>Spock</option>
   </select>
</form>


</body>
</html>
 
*woooosh* ... how to rubbel die Katz?! *schnurrrrrrrr* ... ok ... langt ... es kommen gleich - mit Sicherheit - ein paar Forenuser, die Dich auf die Fehlerkonsole im Browser hinweisen werden. Diese hätte Dir verraten, dass ein paar Dinge "unglücklich kopiert" sind. :D

Korrigierte Hinweise ... vergleiche diese mit Deinem Source!

1. ... \n an falscher Stelle und ohne Fortsetzung der Konkatenation (schreibt man das in deutsch so? ^^)
Code:
alert("Spieler: " + userChoice + "\nComputer: " + computerChoice + "\n" + result);

2. ... check Deinen Editor bzgl. doublequotes ... !
Code:
<select name="wahl" onChange="auswahl()">
      <option>Triff eine Auswahl:</option>
      <option value="Stein">Stein</option>
      <option value="Papier">Papier</option>
      <option value="Schere">Schere</option>
      <option value="Echse">Echse</option>
      <option value="Spock">Spock</option>
   </select>

3. *rubbel am Forum* ... ich ruuuuufe kkapsner!! Verfechter alles Bösen, Mogul für blütenweißes JavaScript und Peiniger der globalen Variablen! :D Damit Du hier also keine Komplettlösung hast, hier mein Tipp: Wo steht userChoice, wäre es woanders erreichbar als Variable? Das sind Basics ... die müssten bereits sitzen! :D

Anders formuliert - Dein Ablauf ist absolut nicht sauber, JavaScript wird bereits vor "userChoice" ausgeführt und in compare() verglichen. :D Und nicht vergessen: So ist userChoice immer (!) undefined.

Ahhhhhrg ... KAFFEE-BARBAREN ... *fecht, kling, wehr ab*
 
... und Peiniger der globalen Variablen! :D
Nunja, die sind aber nicht wirklich gut und/oder vernünftig. In diesem Forum wurden schon oft Fehler beseitigt, die durch globale Variablen verursacht wurden. Ne Satistik wäre mal interessant, bei wie vielen Problemen eine globale Variale schuld oder mit schuld gewesen ist. *lach*
 
Es ist wie mit Alkohol: In kleiner Dosierung durchaus brauchbar wie nützlich ... übermäßiger Genuss aka Verwendung sorgt buchstäblich für den Tilt. :D

Aber ich gebe Dir recht: Die Statistik wäre lustig ... auch, wie oft die Fehlerkonsole empfohlen wurde. :D
 
Natürlich könnte man sich oft fragen, warum man denn jetzt hier keine globalen Variablen verwenden soll. Aber das hat mit Gewöhnung zu tun: Gerade JS-Neulinge sollten sich von vornherein einen sauberen Programmierstil - z.B. eben ohne globale Variablen - angewöhnen...
PS: noch am Rande bemerkt: es ist doch ein wenig witzlos, "Schere, Stein, Papier" im Browser zu spielen. Und zwar aus dem Grund, dass es meiner Meinung nach ja nicht einfach nur auf reines Glück ankommt, sondern man normalerweise - je nachdem, was der Gegner gespielt hat - sich dessen wahrscheinliche Reaktion und seine eigene überlegt.
 
Julian, Sinn und Unsinn von Übungsaufgaben ... ob das jetzt in einem Live-Betrieb Sinn ergäbe oder nicht - für die Übung langt es. ^^ Außerdem spielt man dieses Spiel nicht nacheinander ... *lach*. Aber man fängt eben irgendwo an, wenn man mit einer Sprache anfängt - und wenn es "Hallo, Welt!" heißt. Ich kenne aus mehreren Sprachen umständliche Einstiege - die Feinheiten kommen erst später oder im Dialog mit Leuten wie euch. Aber Evolution benötigt Raum ... sollten wir dem TO einräumen. ;)
 
Danke @SteelWheel für den Hinweis mit dem Absatz, vorlauter Code sieht man keine Zeichen mehr...

Habe es jetzt hinbekommen, allerdings ohne Auswahlliste, sondern mit Nutzereingabe.
Ist das gut so?
Hier mein Code:
Code:
<p>Lust auf ein Spiel?</p>
<input type=button value="Start" onclick="start();"/>

  <script type="text/javascript">

function start() {
var name = prompt('Wie ist dein Name? (Abbrechen zum Beenden)');
    if (name) {
        document.write('Hallo, ' + name + '<br><br>');
        document.write('Willkommen zu Stein, Papier, Schere, Echse, Spock.<br> Eine bekannte Abwandlung des Kultspieles aus der Serie The Big Bang Theory.<br>');
        document.write('Mit Klick auf OK geht es los. Falls dir die Lust vergangen ist reicht ein Klick auf Abbrechen.<br><br>');
} else {
        document.write('Abbruch.<br><br>');
        document.write('<a href="http://tools.salvas-welt.de/teschd.html">Zurück</a>');
        echo;
}

function check() {
  var r = confirm('Kann es losgehen? (Abbrechen zum Beenden)');
     if (r == true) {
        document.write('<br>Super, dann nochmal kurz die Finger kneten und los.<br><br>');
        spiel();
     } else {
        document.write('<br>Schade, dann ein anderes mal.<br><br>');
        document.write('<a href="http://tools.salvas-welt.de/teschd.html">Zurück</a>');
        echo;
     }
} check();


function spiel() {
    var userChoice = prompt('Bitte triff eine Auswahl: Stein, Papier, Schere, Echse, Spock');

    document.write('<strong>Auswahl:</strong><br>Spieler: ' + userChoice + '<br>');

    var computerChoice = Math.random();
              if (computerChoice < 0.2) {
        	computerChoice = "Stein";
         } else if(computerChoice <= 0.4) {
	        computerChoice = "Papier" ;
         } else if (computerChoice <= 0.6) {
	        computerChoice = "Schere" ;
         } else if (computerChoice <= 0.8) {
	        computerChoice = "Echse" ;
         } else {
	        computerChoice = "Spock" ;
         }
    document.write('Computer: ' + computerChoice + '<br><br>');

    var compare = function(choice1, choice2) {
        if (choice1 === choice2) {
                document.write("Unentschieden! Versuch es nochmal!<br>");
                spiel();
        } else {
             switch (choice1) {
                case "Stein":
                  if (choice2 === "Schere") {
                    document.write("Stein schleift Schere. Du gewinnst!<br>Nochmal?");
                    check();
                } else if (choice2 === "Echse") {
                    document.write("Stein zerquetscht Echse. Du gewinnst!<br>Nochmal?");
                    check();
                } else if (choice2 === "Papier") {
                    document.write("Papier bedeckt Stein. Du verlierst!<br>Nochmal?");
                    check();
                } else {
                    document.write("Spock verdampft Stein. Du verlierst!<br>Nochmal?");
                    check();
                }
                break;
                case "Papier":
                  if (choice2 === "Stein") {
                    document.write("Papier bedeckt Stein. Du gewinnst!<br>Nochmal?");
                    check();
                } else if (choice2 === "Spock") {
                    document.write("Papier widerlegt Spock. Du gewinnst!<br>Nochmal?");
                    check();
                } else if (choice2 === "Schere") {
                    document.write("Schere schneidet Papier. Du verlierst!<br>Nochmal?");
                    check();
                } else {
                    document.write("Echse frisst Papier. Du verlierst!<br>Nochmal?");
                    check();
                }
                  break;
                case "Schere":
                  if (choice2 === "Papier") {
                    document.write("Schere schneidet Papier. Du gewinnst!<br>Nochmal?");
                    check();
                } else if (choice2 === "Echse") {
                    document.write("Schere köpft Echse. Du gewinnst!<br>Nochmal?");
                    check();
                } else if (choice2 === "Stein") {
                    document.write("Stein schleift Schere. Du verlierst!<br>Nochmal?");
                    check();
                } else {
                    document.write("Spock zertrümmert Schere. Du verlierst!<br>Nochmal?");
                    check();
                }
                  break;
                case "Echse":
	          if (choice2 === "Papier") {
                    document.write("Echse frisst Papier. Du gewinnst!<br>Nochmal?");
                    check();
                } else if (choice2 === "Spock") {
                    document.write("Echse vergiftet Spock. Du gewinnst!<br>Nochmal?");
                    check();
                } else if (choice2 === "Schere") {
                    document.write("Schere köpft Echse. Du verlierst!<br>Nochmal?");
                    check();
                } else {
                    document.write("Stein zerquestscht Echse. Du verlierst!<br>Nochmal?");
                    check();
                }
                  break;
                case "Spock":
		  if (choice2 === "Schere") {
                    document.write("Spock zertrümmert Schere. Du gewinnst!<br>Nochmal?");
                    check();
                } else if (choice2 === "Stein") {
                    document.write("Spock verdampft Stein. Du gewinnst!<br>Nochmal?");
                    check();
                } else if (choice2 === "Papier") {
                    document.write("Papier widerlegt Spock. Du verlierst!<br>Nochmal?");
                    check();
                } else {
                    document.write("Echse vergiftet Spock. Du verlierst!<br>Nochmal?");
                    check();
                }
                  break;
                default:
	            document.write("Falsche Eingabe! Versuch es nochmal!<br>(Groß- und Kleinschreibung beachten!)<br><br>");
		    spiel();
	     }
        }
}

	compare(userChoice, computerChoice);
	
}
}

  </script>

Habe es zum Testen mal hochgeladen. Da könnt ihr es euch auch mal live anschauen.
Klick

Musste bei deiner ersten Antwort grinsen, echt klasse :D

@Julian
witzlos oder witzig, egal. Habe zum Üben einfach dieses Beispiel gewählt weils mir gefällt ;)
 
Also so langsam wirds. Danke @kkapsner für den Hinweis mit innerHTML. Hat mir sehr geholfen :)
Habe dem Code noch eine Punkteverteilung hinzugefügt. Bis 3 wird gezählt und dann der Gewinner angezeigt und wieder auf 0 gesetzt.
Auch habe ich etwas Farbe ins Spiel gebracht, sieht gleich etwas besser aus.
Komm gar nicht mehr weg von dem Code, will die ganze Zeit etwas noch besser machen... Aber es macht mir Spaß :D

Hier nochmal in Action: Mei RPSLS Schbil

Und hier nochmal der Code. Vielleicht habe ich ja wieder etwas anders geschrieben, als es normalerweise besser möglich wäre. :)
Habe auch schön brav die Fehlerkonsole im Chrome verwendet, hatte mir auch weitergeholfen ;)

Code:
function start() {
var name = prompt('Wie ist dein Name? (Abbrechen zum Beenden)');
    if (name) {
        document.getElementById("game").innerHTML = 'Hallo, ' + name + '<br><br>Willkommen zu <strong>Stein, Papier, Schere, Echse, Spock.</strong><br> Eine bekannte Abwandlung des Kultspieles aus der Serie The Big Bang Theory.<br>Mit Klick auf OK geht es los. Falls dir die Lust vergangen ist reicht ein Klick auf Abbrechen.<br>';;
} else {
	document.getElementById("game").innerHTML = 'Abbruch.<br><br>';
	return;
}

var plapoints = 0;
var compoints = 0;

function check() {
  var r = confirm('Weiter? (Abbrechen zum Beenden)');
     if (r == true) {
	document.getElementById("game").innerHTML += '<br>Super, dann nochmal kurz die Finger kneten und los.<br><br>';
        spiel();
     } else {
	document.getElementById("game").innerHTML += '<br>Schade, dann ein anderes Mal.<br><br>';
	return;
     }
} check();


function spiel() {

function pointcheck() {
       if (plapoints === 3) {
   	  document.getElementById("game").innerHTML = '<strong><i>Glückwunsch, du hast das Spiel gewonnen!</i></strong><br>Nochmal?';
	  document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
	plapoints = 0;
	compoints = 0;
   	return;
   } else if (compoints === 3) {
   	  document.getElementById("game").innerHTML = '<b>Du hast leider verloren!</b><br>Nochmal?';
	  document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
	plapoints = 0;
	compoints = 0;
   	return;
   } else {
   }
  }

    var userChoice = prompt('Bitte triff eine Auswahl: Stein, Papier, Schere, Echse, Spock');

    document.getElementById("game").innerHTML = '<strong>Auswahl:</strong><br>' + name + ': ' + userChoice + '<br>';

    var computerChoice = Math.random();
              if (computerChoice < 0.2) {
        	computerChoice = "Stein";
         } else if(computerChoice <= 0.4) {
	        computerChoice = "Papier" ;
         } else if (computerChoice <= 0.6) {
	        computerChoice = "Schere" ;
         } else if (computerChoice <= 0.8) {
	        computerChoice = "Echse" ;
         } else {
	        computerChoice = "Spock" ;
         }
    document.getElementById("game").innerHTML += 'Computer: ' + computerChoice + '<br><br>';

    var compare = function(choice1, choice2) {
        if (choice1 === choice2) {
		document.getElementById("game").innerHTML += "Unentschieden! Versuch es nochmal!<br>";
		document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
                spiel();
        } else {
             switch (choice1) {
                case "Stein":
                  if (choice2 === "Schere") {
			document.getElementById("game").innerHTML += "Stein schleift Schere. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else if (choice2 === "Echse") {
			document.getElementById("game").innerHTML += "Stein zerquetscht Echse. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else if (choice2 === "Papier") {
			document.getElementById("game").innerHTML += "Papier bedeckt Stein. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else {
			document.getElementById("game").innerHTML += "Spock verdampft Stein. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                }
                break;
                case "Papier":
                  if (choice2 === "Stein") {
			document.getElementById("game").innerHTML += "Papier bedeckt Stein. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else if (choice2 === "Spock") {
			document.getElementById("game").innerHTML += "Papier widerlegt Spock. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else if (choice2 === "Schere") {
			document.getElementById("game").innerHTML += "Schere schneidet Papier. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else {
			document.getElementById("game").innerHTML += "Echse frisst Papier. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                }
                  break;
                case "Schere":
                  if (choice2 === "Papier") {
			document.getElementById("game").innerHTML += "Schere schneidet Papier. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else if (choice2 === "Echse") {
			document.getElementById("game").innerHTML += "Schere köpft Echse. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else if (choice2 === "Stein") {
			document.getElementById("game").innerHTML += "Stein schleift Schere. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else {
			document.getElementById("game").innerHTML += "Spock zertrümmert Schere. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                }
                  break;
                case "Echse":
	          if (choice2 === "Papier") {
			document.getElementById("game").innerHTML += "Echse frisst Papier. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else if (choice2 === "Spock") {
			document.getElementById("game").innerHTML += "Echse vergiftet Spock. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else if (choice2 === "Schere") {
			document.getElementById("game").innerHTML += "Schere köpft Echse. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else {
			document.getElementById("game").innerHTML += "Stein zerquestscht Echse. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                }
                  break;
                case "Spock":
		  if (choice2 === "Schere") {
			document.getElementById("game").innerHTML += "Spock zertrümmert Schere. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else if (choice2 === "Stein") {
			document.getElementById("game").innerHTML += "Spock verdampft Stein. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else if (choice2 === "Papier") {
			document.getElementById("game").innerHTML += "Papier widerlegt Spock. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                } else {
			document.getElementById("game").innerHTML += "Echse vergiftet Spock. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			document.getElementById("game").innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                    	check();
                }
                  break;
                default:
			document.getElementById("game").innerHTML += "<b>Falsche Eingabe! Versuch es nochmal!<br>(Groß- und Kleinschreibung beachten!)</b><br><br>";
		    	spiel();
	     }
        }
 
}

	compare(userChoice, computerChoice);
	
}
}
 
Habe auch schön brav die Fehlerkonsole im Chrome verwendet, hatte mir auch weitergeholfen
Das ist schon mal sehr gut, denn die Konsole ist eines der wichtigsten Werkzeuge bei der Wegprogrammierung.
Einen größeren Verbesserungsvorschlag hätte ich noch: wenn man bei der Eingabe von Schere, Stein, Papier, etc. gar nichts eingibt, ein anderes Wort, oder auf abbrechen klickt, wird das Spiel nicht abgebrochen, sondern man gerät so lange in eine Dauerschleife, bis man eines der angegebenen Worte korrekt eingibt.
 
Also so langsam wirds. Danke @kkapsner für den Hinweis mit innerHTML. Hat mir sehr geholfen :)
Bitte - gern geschehen. Dafür bin ich ja hier.
Komm gar nicht mehr weg von dem Code, will die ganze Zeit etwas noch besser machen... Aber es macht mir Spaß :D
Dann bis du auf einem sehr guten Weg. Nur durch Übung und Spaß an der Sache wird man in etwas besser. Das ist auch beim Programmieren so.

Ich würde ja in dem Code jetzt so langsam von den prompts weg gehen. Die sehen nicht so schön aus, erfordern vom Spieler recht viel Interaktion und erzeugen bei dir sogar unerwünschtes Verhalten, wie Julian festgestellt hat.

Ich würde da einfach fünf <button>s machen, auf die der Spieler dann draufklicken kann.

PS: am Code stören mich noch ein bisschen die zwei globalen Variablen. Die könntest du durch einen Funktionsscope verhindern:
Code:
(function(){
	var plapoints = 0;
	var compoints = 0;
	
	...
}());
Eine Stufe höher wäre dann, dass du ein Spielobjekt erstellst, dass den ganzen Zustand deines Spiels speichert und die ganze Funktionalität als Methoden bereitstellt. Aber Eines nach dem Anderen.
 
Anstatt immer wieder das Zielelement mit document.getElementById("game") ... zu suchen, kannst du diese Referenz auch in einer Variable speichern var nodeGame = document.getElementById("game"); und dann diese benutzen nodeGame.innerHTML ...
 
Ich würde ja das HTML zuerst in einer Variablen zusammenbauen und dann am Ende der Funktion eine einzige Zuweisung an .innerHTML machen. Sollte noch etwas schneller sein.
 
Würde ich ja auch machen, wäre ja der nächste schritt. Zudem würde ich immer wiederkehremde "Festtexte" in einer Variable speichern, so wie "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
 
Hallo miteinander. Da bin ich wieder.
Ich bin ein kleinen Schritt weiter gekommen, aber wieder stecken geblieben.
Ich versuche mich gerade an kkapsners Tipp mit den Buttons für die Auswahl, anstatt Texteingabe.
Ich habe lange gegoogled und irgendwie werde ich nicht fündig was die Lösung meines Problemes angeht... Ich hoffe ihr könnt mir da helfen.

Die Fehlerkonsole bringt folgende Fehler:
- Maximum call stack size exceeded (Aufgeklappt kommt immer im wechsel (spiel, compare))
- Bei Klick auf einen der Auswahlbuttons kommt immer: choose is not defined (Aufgeklappt steht onclick dran)

Ich weis momentan nicht weiter. :(

Hier mein Code:
HTML:
<!DOCTYPE HTML>

<html>



<head>

<link type="text/css" rel="stylesheet" href="stylerps.css"/>

<script type="text/javascript" src="rpsls.js"></script>

<title>Stein, Papier, Schere, Echse, Spock</title>

</head>



<body>

<p>Stein, Papier, Schere, Echse, Spock!</p>

<input type="button" value="Neues Spiel" onclick="start();"/><br>

<input type="button" value="Stein" onclick="choose('Stein')"/>

<input type="button" value="Papier" onclick="choose('Papier')"/>

<input type="button" value="Schere" onclick="choose('Schere')"/>

<input type="button" value="Echse" onclick="choose('Echse')"/>

<input type="button" value="Spock" onclick="choose('Spock')"/>

<div id="game"></div>

</body>

</html>

Code:
function start() {

var game = document.getElementById("game");

var name = prompt('Wie ist dein Name? (Abbrechen zum Beenden)');

    if (name) {

        game.innerHTML = 'Hallo, ' + name + '<br><br>Willkommen zu <strong>Stein, Papier, Schere, Echse, Spock.</strong><br> Eine bekannte Abwandlung des Kultspieles aus der Serie The Big Bang Theory.<br>Mit Klick auf OK geht es los. Falls dir die Lust vergangen ist reicht ein Klick auf Abbrechen.<br>';;

} else {

	game.innerHTML = 'Abbruch.<br><br>';

	return;

}



var plapoints = 0;

var compoints = 0;



function check() {

  var r = confirm('Weiter? (Abbrechen zum Beenden)');

     if (r == true) {

	game.innerHTML += '<br>Super, dann nochmal kurz die Finger kneten und los.<br><br>';

        spiel();

     } else {

	game.innerHTML += '<br>Schade, dann ein anderes Mal.<br><br>';

	return;

     }

} check();





function spiel() {

// var pointprint = ("<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints);


function pointcheck() {

       if (plapoints === 3) {

   	  game.innerHTML = '<strong><i>Glückwunsch, du hast das Spiel gewonnen!</i></strong><br>Nochmal?';

	  game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

        game.innerHTML += '<br><input type="button" value="Neues Spiel" onclick="start();"/>';

	plapoints = 0;

	compoints = 0;

   	return;

   } else if (compoints === 3) {

   	  game.innerHTML = '<b>Du hast leider verloren!</b><br>Nochmal?';

	  game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

        game.innerHTML += '<br><input type="button" value="Neues Spiel" onclick="start();"/>';

	plapoints = 0;

	compoints = 0;

   	return;

   } else {

        spiel();

   }

  }



var userChoice;
function choose(choice) {
	if ('undefined') {
	return;
	} else {
	userChoice = choice;
	}
}


    game.innerHTML = '<strong>Auswahl:</strong><br>' + name + ': ' + userChoice + '<br>';





    var computerChoice = Math.random();

              if (computerChoice < 0.2) {

        	computerChoice = "Stein";

         } else if(computerChoice <= 0.4) {

	        computerChoice = "Papier" ;

         } else if (computerChoice <= 0.6) {

	        computerChoice = "Schere" ;

         } else if (computerChoice <= 0.8) {

	        computerChoice = "Echse" ;

         } else {

	        computerChoice = "Spock" ;

         }

    game.innerHTML += 'Computer: ' + computerChoice + '<br><br>';



    var compare = function(choice1, choice2) {

        if (choice1 === choice2) {

		game.innerHTML += "Unentschieden! Versuch es nochmal!<br>";

		game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

                spiel();

        } else {

             switch (choice1) {

                case "Stein":

                  if (choice2 === "Schere") {

			game.innerHTML += "Stein schleift Schere. <i>Du gewinnst!</i><br>Nochmal?";

			plapoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else if (choice2 === "Echse") {

			game.innerHTML += "Stein zerquetscht Echse. <i>Du gewinnst!</i><br>Nochmal?";

			plapoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else if (choice2 === "Papier") {

			game.innerHTML += "Papier bedeckt Stein. <b>Du verlierst!</b><br>Nochmal?";

			compoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else {

			game.innerHTML += "Spock verdampft Stein. <b>Du verlierst!</b><br>Nochmal?";

			compoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                }

                break;

                case "Papier":

                  if (choice2 === "Stein") {

			game.innerHTML += "Papier bedeckt Stein. <i>Du gewinnst!</i><br>Nochmal?";

			plapoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else if (choice2 === "Spock") {

			game.innerHTML += "Papier widerlegt Spock. <i>Du gewinnst!</i><br>Nochmal?";

			plapoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else if (choice2 === "Schere") {

			game.innerHTML += "Schere schneidet Papier. <b>Du verlierst!</b><br>Nochmal?";

			compoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else {

			game.innerHTML += "Echse frisst Papier. <b>Du verlierst!</b><br>Nochmal?";

			compoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                }

                  break;

                case "Schere":

                  if (choice2 === "Papier") {

			game.innerHTML += "Schere schneidet Papier. <i>Du gewinnst!</i><br>Nochmal?";

			plapoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else if (choice2 === "Echse") {

			game.innerHTML += "Schere köpft Echse. <i>Du gewinnst!</i><br>Nochmal?";

			plapoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else if (choice2 === "Stein") {

			game.innerHTML += "Stein schleift Schere. <b>Du verlierst!</b><br>Nochmal?";

			compoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else {

			game.innerHTML += "Spock zertrümmert Schere. <b>Du verlierst!</b><br>Nochmal?";

			compoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                }

                  break;

                case "Echse":

	          if (choice2 === "Papier") {

			game.innerHTML += "Echse frisst Papier. <i>Du gewinnst!</i><br>Nochmal?";

			plapoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else if (choice2 === "Spock") {

			game.innerHTML += "Echse vergiftet Spock. <i>Du gewinnst!</i><br>Nochmal?";

			plapoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else if (choice2 === "Schere") {

			game.innerHTML += "Schere köpft Echse. <b>Du verlierst!</b><br>Nochmal?";

			compoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else {

			game.innerHTML += "Stein zerquestscht Echse. <b>Du verlierst!</b><br>Nochmal?";

			compoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                }

                  break;

                case "Spock":

		  if (choice2 === "Schere") {

			game.innerHTML += "Spock zertrümmert Schere. <i>Du gewinnst!</i><br>Nochmal?";

			plapoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else if (choice2 === "Stein") {

			game.innerHTML += "Spock verdampft Stein. <i>Du gewinnst!</i><br>Nochmal?";

			plapoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else if (choice2 === "Papier") {

			game.innerHTML += "Papier widerlegt Spock. <b>Du verlierst!</b><br>Nochmal?";

			compoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                } else {

			game.innerHTML += "Echse vergiftet Spock. <b>Du verlierst!</b><br>Nochmal?";

			compoints++;

			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;

				pointcheck();

                }

                  break;

                default:

			game.innerHTML += "<b>Falsche Eingabe! Versuch es nochmal!<br>(Groß- und Kleinschreibung beachten!)</b><br><br>";

		    	spiel();

	     }

        }

 

}



	compare(userChoice, computerChoice);

	

}

}
 
- Maximum call stack size exceeded (Aufgeklappt kommt immer im wechsel (spiel, compare))
Dann hast da eine Endlosschleife (zyklischer Aufruf der Funktionen: a ruft b, b ruft c und c ruft a auf)... gehe mit Papier und Bleistift dein Programm mal durch, dann wirst du schon finde, wo der hund begraben ist.
- Bei Klick auf einen der Auswahlbuttons kommt immer: choose is not defined (Aufgeklappt steht onclick dran)
Formatier' mal deinen Code gescheit, dann siehst du, dass die Funktion choose() innerhalb der Funktion spiel() definiert ist. Aber auch sonst wenn du sie direkt in der Funktion start() definierst, musst du sie in den globalen Namespace exportieren, damit die Inline-Eventlistener die finden.

ABER dein Konstrukt mit der Variable userChoice funktioniert so nicht. Du musst in der choose() die ganzen Vergleiche und die Ausgabe auslösen und nicht, wie du bei dem ersten Problem siehst, mit einer Endlosschleife.
 
Ja, mein Konstrukt war nicht optimal. Das hatte ich nun gemerkt nach meiner kleinen Umbau Aktion. Der Code sieht dadurch vielleicht nicht viel besser aus, aber es funktioniert immerhin so wie es soll :D
Die Buttons stehen und funktionieren wie man sehen kann ;) Klick mi
Jetzt stehe ich vor dem nächsten Problem, falls das eines ist.
Den eingegebenen Namen speichert es nicht, es sei denn ich setze die Variable in jede Funktion welche den Namen ausgeben möchte.
Vielleicht wieder ein Denkfehler meinerseits. Aber ich denke ich habs jetzt so weit geschafft, zumindest bin ich zufrieden was ich bis jetzt geschafft habe, da werde ich das mit dem Namen auch noch hinbekommen. Vielleicht habt ihr dazu noch Tipps?
Hier nochmal mein Code:
HTML:
<h3>Stein, Papier, Schere, Echse, Spock!</h3>
<p>Gib deinen Namen ein:</p>
<input type="text" id="name" value="Spieler" onkeypress="handleKeyPress(event)">
<input type="button" value="Neues Spiel" onclick="start();"><br>
<input type="button" id="rock" value="Stein" onclick="choose(1); spiel2();"/>
<input type="button" id="paper" value="Papier" onclick="choose(2); spiel2();"/>
<input type="button" id="scissors" value="Schere" onclick="choose(3); spiel2();"/>
<input type="button" id="lizard" value="Echse" onclick="choose(4); spiel2();"/>
<input type="button" id="spock" value="Spock" onclick="choose(5); spiel2();"/>
<div id="game"></div>
Code:
var game = document.getElementById("game");
var name = document.getElementById("name").value;
var plapoints = 0;
var compoints = 0;


function handleKeyPress(e){
 var key=e.keyCode || e.which;
  if (key==13){
     start();
  }
}


function start() {
var name = document.getElementById("name").value;
    if (name) {
        game.innerHTML = 'Hallo, ' + name + '<br><br>Willkommen zu <strong>Stein, Papier, Schere, Echse, Spock.</strong><br> Eine bekannte Abwandlung des Kultspieles aus der Serie The Big Bang Theory.<br>Mit Klick auf OK geht es los. Falls dir die Lust vergangen ist reicht ein Klick auf Abbrechen.<br>';;
	  check();
} else {
	alert("Bitte gib einen Namen ein!");
	return;
}
}


function choose(choice) {
		if (choice === 1) {
			userChoice = "Stein";
			spiel();
		} else if (choice === 2) {
			userChoice = "Papier";
			spiel();
		} else if (choice === 3) {
			userChoice = "Schere";
			spiel();
		} else if (choice === 4) {
			userChoice = "Echse";
			spiel();
		} else if (choice === 5) {
			userChoice = "Spock";
			spiel();
		} else {
			return;
		}
	}


function check() {
  var r = confirm('Weiter? (Abbrechen zum Beenden)');
     if (r == true) {
	game.innerHTML += '<br>Super, dann nochmal kurz die Finger kneten und los.<br><br>';
	spiel();
     } else {
	game.innerHTML += '<br>Schade, dann ein anderes Mal.<br><br>';
	return;
     }
}

function pointcheck() {
var name = document.getElementById("name").value;
       if (plapoints === 3) {
   	  game.innerHTML = '<strong><i>Glückwunsch, du hast das Spiel gewonnen!</i></strong>';
	  game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
	  game.innerHTML += '<br><br>Nochmal? Wähle einfach erneut aus.<br>Für ein neues Spiel gibt deinen Namen erneut ein und klick auf den entsprechenden Button.';
	plapoints = 0;
	compoints = 0;
   } else if (compoints === 3) {
   	  game.innerHTML = '<b>Du hast leider verloren!</b>';
	  game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
	  game.innerHTML += '<br><br>Nochmal? Wähle einfach erneut aus.<br>Für ein neues Spiel gibt deinen Namen erneut ein und klick auf den entsprechenden Button.';
	plapoints = 0;
	compoints = 0;
   } else {
        spiel();
   }
  }


/** function user() {
game.innerHTML += '<br><input type="button" id="rock" value="Stein" onclick="choose(1); spiel2();"/>';
game.innerHTML += '<input type="button" id="paper" value="Papier" onclick="choose(2); spiel2();"/>';
game.innerHTML += '<input type="button" id="scissors" value="Schere" onclick="choose(3); spiel2();"/>';
game.innerHTML += '<input type="button" id="lizard" value="Echse" onclick="choose(4); spiel2();"/>';
game.innerHTML += '<input type="button" id="spock" value="Spock" onclick="choose(5); spiel2();"/>';
} **/


function spiel() {

var userChoice;

// user();

return;

}

function spiel2() {
var name = document.getElementById("name").value;

   game.innerHTML = '<strong>Auswahl:</strong><br>' + name + ': ' + userChoice + '<br>';


    var computerChoice = Math.random();
              if (computerChoice < 0.2) {
        	computerChoice = "Stein";
         } else if(computerChoice <= 0.4) {
	        computerChoice = "Papier" ;
         } else if (computerChoice <= 0.6) {
	        computerChoice = "Schere" ;
         } else if (computerChoice <= 0.8) {
	        computerChoice = "Echse" ;
         } else {
	        computerChoice = "Spock" ;
         }
    game.innerHTML += 'Computer: ' + computerChoice + '<br><br>';

    var compare = function(choice1, choice2) {
        if (choice1 === choice2) {
		game.innerHTML += "Unentschieden! Versuch es nochmal!<br>";
		game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
                spiel();
        } else {
             switch (choice1) {
                case "Stein":
                  if (choice2 === "Schere") {
			game.innerHTML += "Stein schleift Schere. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else if (choice2 === "Echse") {
			game.innerHTML += "Stein zerquetscht Echse. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else if (choice2 === "Papier") {
			game.innerHTML += "Papier bedeckt Stein. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else {
			game.innerHTML += "Spock verdampft Stein. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                }
                break;
                case "Papier":
                  if (choice2 === "Stein") {
			game.innerHTML += "Papier bedeckt Stein. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else if (choice2 === "Spock") {
			game.innerHTML += "Papier widerlegt Spock. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else if (choice2 === "Schere") {
			game.innerHTML += "Schere schneidet Papier. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else {
			game.innerHTML += "Echse frisst Papier. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                }
                  break;
                case "Schere":
                  if (choice2 === "Papier") {
			game.innerHTML += "Schere schneidet Papier. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else if (choice2 === "Echse") {
			game.innerHTML += "Schere köpft Echse. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else if (choice2 === "Stein") {
			game.innerHTML += "Stein schleift Schere. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else {
			game.innerHTML += "Spock zertrümmert Schere. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                }
                  break;
                case "Echse":
	          if (choice2 === "Papier") {
			game.innerHTML += "Echse frisst Papier. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else if (choice2 === "Spock") {
			game.innerHTML += "Echse vergiftet Spock. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else if (choice2 === "Schere") {
			game.innerHTML += "Schere köpft Echse. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else {
			game.innerHTML += "Stein zerquestscht Echse. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                }
                  break;
                case "Spock":
		  if (choice2 === "Schere") {
			game.innerHTML += "Spock zertrümmert Schere. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else if (choice2 === "Stein") {
			game.innerHTML += "Spock verdampft Stein. <i>Du gewinnst!</i><br>Nochmal?";
			plapoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else if (choice2 === "Papier") {
			game.innerHTML += "Papier widerlegt Spock. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                } else {
			game.innerHTML += "Echse vergiftet Spock. <b>Du verlierst!</b><br>Nochmal?";
			compoints++;
			game.innerHTML += "<br><br><strong>Punktestand: </strong><br>" + name + ": " + plapoints + "<br>Computer: " + compoints;
				pointcheck();
                }
                  break;
                default:
			game.innerHTML += "<b>Falsche Eingabe! Versuch es nochmal!<br>(Groß- und Kleinschreibung beachten!)</b><br><br>";
		    	spiel();
	     }
        }
 
}

	compare(userChoice, computerChoice);
	
}
 
aber es funktioniert immerhin so wie es soll
Das ist ja schon mal der erste Schritt.

Jetzt kommt als nächstes die Aufräumarbeit und das Optimieren.

Zuerst solltest du alle Funktionen, die nichts machen (so wie die spiel()) oder gar nicht aufgerufen werden (z.B. check() in deinem Code auf dem Server) oder komplett auskommentiert sind, entfernen.

Als nächstes solltest du versuchen deine Funktionen zu vereinfachen (z.B. kann man choose() viel einfacher gestalten, wenn man keine Zahl, sondern einen String als Parameter erwartet) und globale Variablen entfernen bzw. zu lokalen oder Parametern machen (z.B. spiel2() könnte einen Parameter vertragen...).

Auch kannst du deine großen if..else.. Konstrukte vereinfachen. Du hast da oft etwas in jedem Zweig drin. Das kann du dann komplett außerhalb machen.

PS: Gib' deinem <input type="text"> doch im HTML lieber eine placeholder-Attribut als ein .value.
PPS: Dein "Problem" mit dem Namen gehen wir später an, wenn wir die DOM-Repräsentation des Spiels verbessern.
 
Zurück
Oben