Schulaufgabe - Javascript

florian_r

Quest-Mob
Mitglied seit
22.04.2008
Beiträge
95
Reaktionspunkte
0
Kommentare
6
Huhu,

wir haben letzte Woche eine Gruppenaufgabe bekommen. Wir müssen ein "Zündhölzchen" Spiel programmieren und da ich der einzige von meiner Grp bin, der wenigstens etwas Javascript programmieren kann (auch wenn ihr mirs ned glaub wenn ihr den Code seht, ich bin gut in der Schule
biggrin.gif
) musste ich das ganze programmieren (oder besser gesagt, habs freiwillig gemacht, da ich eine gute Note will
angry.gif
).

Die Kommentare sind ein Muss vom Lehrer und für die Dokumentation, welche jemand von der Grp machen muss
biggrin.gif


Nun ist jedoch mein Problem dass die manuelle Eingabe nur beim ersten mal abgespeichert wird, danach wird jedoch immer die automatische Eingabe benutzt.

Regeln: Der Computer und Sie müssen abwechselnd 1, 2 oder 3 Zündhölchen wegnehmen. Wer das letzte Zündhölzchen dem anderen übrig lässt, hat gewonnen.

Ich hoffe ihr könnt mir helfen, hab schon ziemlich viele Informatiker unter euch gesehen ^^

mfg

Hier hab ichs mal bei Funpic hochgeladen:

http://menphis91.me.funpic.de/

Hier der Code (sehe grad dass die Formatierung gelöscht wurde, auf der Funpic Seite sollte es noch schön formatiert sein):

Code:
<html>
<head>
<title>Zahnstocher</title>
<script type="text/javascript" >

function rechnen() {

alert("Der Computer und Sie müssen abwechselnd 1, 2 oder 3 Zündhölchen wegnehmen. Wer das letzte Zündhölzchen dem anderen übrig lässt, hat gewonnen.");
var zug = 0;
var anzahlz=window.prompt("Wieviele Zahnstocher wollen Sie verwenden?", "");
var anzahl=anzahlz*1;

while (anzahl%1!=0 || anzahl <=1)															//filtert ungultige werte raus bis die eingabe stimmt
{
	alert("Bitte geben Sie eine gültige Zahl ein!");				
	var anzahl=window.prompt("Wieviele Zahnstocher wollen Sie verwenden?", "");
}

while (eingabe != "y" && eingabe != "n")														//filter ungültige werte raus bis die eingabe stimmt
{
	var eingabe=window.prompt("Wer soll beginnen? y = Spieler, n = Computer", "");
}

		if (eingabe =="y")															//wenn die eingabe y ist wird eingabe zu 2 (ist damit leichter zu rechnen)
		{
			eingabe=2;
		}
		else if(eingabe=="n")															//wenn die eingabe n ist wird eingabe zu 1 (ist damit leichter zu rechnen)
		{
			eingabe=1;
		}

		while (anzahl > 1)															//solange die anzahl kleiner als 1 ist passiert das untenstehende
		{		
			if (eingabe%2==0)														//wenn die eingabe gerade ist
			{
				if ((anzahl-2)%4==0)
				{
					while (zug == 0 || (anzahl-zug)<1)										//solange bis zug nicht mehr 0 oder anzahl-zug grösser als 1 ist
					{			
						var rndx = Math.random()*2+0.8;										//berechnet eine zufallszahl zwischen 1-3
						var rnd = Math.floor(rndx);										//rundet die zahl auf 1,2,3
						zug = rnd*1;				
					}
				var eingabex=window.prompt("Momentan ist kein Gewinnzug möglich, möchten Sie stattdessen "+zug+" verwenden? y,n", "");
					if (eingabex=="y")												//wenn die eingabex y ist, wird die rnd zahl verwendet
					{
						zug = zug*1;	
						eingabe++;												//eingabe wird 1 höher
						anzahl = anzahl-zug;											//neue anzahl wird berechnet
						alert("Es hat noch "+anzahl+" Zahnstocher.");	
					}
					if (eingabex=="n")												//ist die eingabe n
					{
						while (zug!=1 && zug!=2 && zug!=3)									//zug nicht gleich 1 und zug nicht gleich 3 und zug nicht gleich 2
						{
							var zug1 = window.prompt("Welchen zug möchten sie verwenden? 1,2,3", "");
							zug = zug1*1;
						}
						eingabe++;
						anzahl = anzahl-zug;
						alert("Es hat noch "+anzahl+" Zahnstocher.");
					}
				}
				else
				{
					var eingabex=window.prompt("Möchten Sie den Gewinnzug "+(anzahl-2)%4+" verwenden? y,n", "");			//(anzahl-2)%4 berechnet den gewinnzug
					if (eingabex=="y")
					{
						zug = (anzahl-2)%4*1;											//kopiert den gewinnzug in zug
						eingabe++;	
						anzahl = anzahl-zug;
						alert("Es hat noch "+anzahl+" Zahnstocher.");
					}
					if (eingabex=="n")
					{
						while (zug!=1 && zug!=2 && zug !=3)									//zug nicht gleich 1 und zug nicht gleich 3 und zug nicht gleich 2
						{
							var zug1 = window.prompt("Welchen zug möchten sie verwenden? 1,2,3", "");
							zug = zug1*1;
						}
						eingabe++;
						anzahl = anzahl-zug;
						alert("Es hat noch "+anzahl+" Zahnstocher.");
					}
				}
			}
			else
			{
			zug = (anzahl-2)%4;														//standartmässig benutzt der computer den gewinnzug
				while (zug == 0 || (anzahl-zug)<1)											//wenn der zug 0 oder anzahl-zug kleiner als 1 ist
				{
					var rndx = Math.random()*2+0.8;											//rnd zahl generieren zwischen 1-3
					var rnd = Math.floor(rndx);											//runden auf 1,2,3
					zug = rnd*1;
				}
			eingabe++;
			anzahl = anzahl-zug;
			alert("Der Computer hat "+zug+" gezogen. Es hat noch "+anzahl+" Zahnstocher.");
			}
		}
		if (eingabe%2==0)		//wenn die eingabe gerade ist (man gelangt erst hier hin wenn die anzahl 1 ist)
		{
		alert("Sie haben gewonnen!");	//hat der spieler gewonnen
		}
		else
		{
		alert("Sie haben verloren!");	//ungerade hat der pc gewonnen
		}
}</script>
</head>
<body>

<h1>Zahnstocher Spiel</h1>
<form name="form">
<p>Spiel starten ?</p>			
<input type="button" value="Ja" onClick="rechnen()">						
<input type="button" value="Nein" onclick="window.location.href='http://www.google.ch'">	
</form>
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Zurück