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

[FRAGE] memory zum zweiten

gogopf

New member
scriptschnipsel soll folgendes machen.

1. Klick auf erste Karte: Karte wird aufgedeckt
2. Klick auf zweite Karte: karte wird aufgedeckt
3. je nachdem ob karten übereinstimmen oder nicht, werden Funktionen aufgerufen mit denen die Karten nach einer wartezeit von 2 sec. entweder "zurück gedreht" oder durch eine 1x1 px Grafik ersetzt.

Problem ist, ohne die Funktionen zum zurückdrehen, lassen sich die Karten aus Schritt 1 und 2 aufdecken. Mit den Funktionen lässt sich die zweite Karte nicht "umdrehen", aber die Funktionen zum zurückdrehen werden nach 2 sec. ausgeführt.

Also ich finde keinen Fehler, eventuell ein logischer Fehler. Warum wird die zweite Karte nicht aufgedeckt?

HTML:
<script type="text/javascript">
var x=0;
var Karte1;
var Karte2;
var zelle;
var zellenr1="";
var zellenr2="";

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

function kartenweglegen (zelle1,zelle2) { //beide geöffneten Karten sind gleich 
    var seite = "http://forum.jswelt.de/images/pix.png";
	$(zelle1).attr("src", seite).attr("width", "1px").attr("height", "1px");
	$(zelle2).attr("src", seite).attr("width", "1px").attr("height", "1px");
}

function kartenzurueckdrehen (zelle1,zelle2) { //beide Karten sind nicht gleich und die karten werden zurückgedreht
	var seite = "memoryback.jpg";
	$(zelle1).attr("src", seite);
	$(zelle2).attr("src", seite);		
}

function funktionenoeffnen(kartennummer,zellennr) {
	zelle = "#zelle"+zellennr;
	
	var seite = "http://forum.jswelt.de/images/deck/gemischt/"+kartennummer+".jpg";
	$(zelle).attr("src", seite);  // Karte aufdecken
	
	if (zellenr1 == "") { zellenr1=zelle; var zx=0 }
	if (zellenr1 != "") zellenr2=zelle;
  
	
	if (x==0) { Karte1=kartennummer; }
	if (x==1) { Karte2=kartennummer; }
	
	x++;
	
  	if (x>=2) {
  	  	if (Karte1==Karte2) { //beide geöffneten Karten sind gleich 
  			sleep(2000);
  			kartenweglegen (zellenr1,zellenr2);
  		}
  		else { //beide Karten sind nicht gleich
  			sleep(2000);
  			kartenzurueckdrehen (zellenr1,zellenr2);
  		}
  	}
	
  
  //$('#example-placeholder').html('<p><img src="loader.gif" /></p>');
  //$('#example-placeholder').load(seite);
}
</script>
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben