probleem met functie()

Status
Niet open voor verdere reacties.

diskdok

Gebruiker
Lid geworden
27 mei 2007
Berichten
5
Hallo!,

ik bezig met een memory-game en zit nu (weer) een beetje vast.

zit met het volgende probleem:

De kaarten moeten worden geschud als er een nieuw spel gestart wordt.
Nadat de kaarten in een loop weer omgedraaid zijn wordt de functie schudden (in functie nieuwSpel) aangeroepen.
Deze wordt echter nooit bereikt.
Geen idee hoe dit kan. Graag hulp!.

Code:
<html>
<head>
<script>
//! nummers voor de kaartjes
var omgedraaideKaartjes=0;
var aantalBeurten=0;
//var cards = new Array(0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8);
var cards = new Array(1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8);
var idArray = new Array(2);
var aantalTerugGedraaid=0;
var score=0;
var scoretitel="UW HIGHSCORE";
var scoretekst="Spelen maar!";
var speltekst="Klik hier voor nieuw spel"
var matchArray= new Array();
var x=0;


//! kaarten array schudden
//cards.sort(schudden)

function plaatsTekst(){
deScore=document.getElementById (16);
deScore.innerHTML= '&nbsp;' + scoretitel;

deScore=document.getElementById(18);
deScore.innerHTML= '&nbsp;' + speltekst;

if (document.cookie.length>0){
cookieAlles=document.cookie ;
cookieScorepositie=cookieAlles.indexOf("Highscore");
cookieScorepositie=cookieScorepositie+10;
cookielengte=document.cookie.length
cookieScore=cookieAlles.substr(cookieScorepositie,cookielengte);

deScore=document.getElementById(17);
deScore.innerHTML= '&nbsp;' + cookieScore;
}
else{
deScore=document.getElementById(17);
deScore.innerHTML= '&nbsp;' + scoretekst;
}
}

function NieuwSpel(){
//Terugzetten van variabelen
omgedraaideKaartjes=0;
aantalBeurten=0;
var idArray = new Array(2);
aantalTerugGedraaid=0;
x=0;
score=0;
//omdraaien van alle omgedraaide kaartjes/matches
//deze zijn opgeslagen in matcharray

aantalOmtedraaienKaartjes=matchArray.length;
alert(aantalOmtedraaienKaartjes);
//loop door alle matches en verwijder het nummer
for (loop=0; loop<=aantalOmtedraaienKaartjes; loop++){
hetOmtedraaienKaartje=document.getElementById(matchArray[loop]);
hetOmtedraaienKaartje.innerHTML="";
}
cards.sort(schudden);


}


function schudden(){
//Leeghalen array met matches & schudden van de kaartjes
alert("schudden");
var matchArray= new Array();
return (Math.round(Math.random())-0.6);
}
 
function Omdraaien(id) {
omgedraaideKaartjes++

if(omgedraaideKaartjes<=2){
getalKaartje=cards[id];
hetKaartje=document.getElementById(id);
hetKaartje.innerHTML= '&nbsp;' + getalKaartje;

if (omgedraaideKaartjes==1){
idArray[0]=id;
getalKaartje1=getalKaartje;
}
if (omgedraaideKaartjes==2){
idArray[1]=id;
getalKaartje2=getalKaartje;
Memory(getalKaartje1,getalKaartje2);
}
}
}

function Memory(getalKaartje1,getalKaartje2){
aantalBeurten++
if (getalKaartje1!= getalKaartje2){
var tijdjeWachten=setTimeout("Terugdraaien()",1500)
}
else {
Match(aantalBeurten);
}
}

//terug draaien van de kaartjes, terugzetten van de variable omgedraaide kaartjes
function Terugdraaien(){
for (loop=0; loop<=1; loop++){
hetOmtedraaienKaartje= document.getElementById(idArray[loop]);
hetOmtedraaienKaartje.innerHTML="";
}
omgedraaideKaartjes=0;
}

function Match(aantalBeurten){
score++;
//bij score = 8 zijn alle kaartjes omgedraaid
if (score==8){
//kijken in de cookie of deze beter is dan de highscore
//aantalBeurten
if (document.cookie.length>0){
    cookieAlles=document.cookie;
    cookieScorepositie=cookieAlles.indexOf("Highscore");
    cookieScorepositie=cookieScorepositie+10;
    cookielengte=document.cookie.length
    cookieScore=cookieAlles.substr(cookieScorepositie,cookielengte);
   
    if (cookieScore>aantalBeurten){
    alert("Gefeliciteerd, U heeft een nieuw record gezet!")
    document.cookie="Highscore" + "="+ aantalBeurten;
    deScore=document.getElementById(17);
    deScore.innerHTML= '&nbsp;' + aantalBeurten;
    }
   
}
if (document.cookie.length==0 ){
    document.cookie="Highscore" + "="+ aantalBeurten;
    deScore=document.getElementById(17);
    deScore.innerHTML= '&nbsp;' + aantalBeurten;
}
//laatste match nog opslaan in matchArtray
//dan nieuw spel beginnen
matchArray[x++]=idArray[0];
matchArray[x++]=idArray[1];
alert(score);
alert("start nieuw spel");
NieuwSpel();
}
else{
//kaarten doen niet meer mee in het spel
matchArray[x++]=idArray[0];
matchArray[x++]=idArray[1];
omgedraaideKaartjes=0;
}

}


</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<style>
.kaartje {
cursor: pointer;
background-color: #096;
color: #fff;
font: bold 32px/50px 'Verdana';
position: absolute;
width: 50px;
height: 50px;
}

.highscore {
cursor:default;
background-color: #096;
color:#FFFFFF;
border-color:#000000;
font: bold 15px/50px 'Verdana';
position: absolute;
width: 200px;
height: 50px;
}

.button {
cursor:pointer;
background-color: #096;
color:#FFFFFF;
border-color:#000000;
font: bold 15px/50px 'Verdana';
position: absolute;
width: 230px;
height: 50px;
}
</style>



</head>

<body onLoad="plaatsTekst()","schudden()">

<!--<body onLoad="checkCookie()">!-->

<div id="0" style="left:20px;top:20px;" class="kaartje" onclick=Omdraaien("0")></div>
<div id="1" style="left:80px;top:20px;" class="kaartje" onclick=Omdraaien("1")></div>
<div id="2" style="left:140px;top:20px;" class="kaartje" onclick=Omdraaien("2")></div>
<div id="3" style="left:200px;top:20px;" class="kaartje" onclick=Omdraaien("3")></div>
<div id="4" style="left:20px;top:80px;" class="kaartje" onclick=Omdraaien("4")></div>
<div id="5" style="left:80px;top:80px" class="kaartje" onclick=Omdraaien("5")></div>
<div id="6" style="left:140px;top:80px" class="kaartje" onclick=Omdraaien("6")></div>
<div id="7" style="left:200px;top:80px" class="kaartje" onclick=Omdraaien("7")></div>
<div id="8" style="left:20px;top:140px" class="kaartje" onclick=Omdraaien("8")></div>
<div id="9" style="left:80px;top:140px" class="kaartje" onclick=Omdraaien("9")></div>
<div id="10" style="left:140px;top:140px" class="kaartje" onclick=Omdraaien("10")></div>
<div id="11" style="left:200px;top:140px" class="kaartje" onclick=Omdraaien("11")></div>
<div id="12" style="left:20px;top:200px" class="kaartje" onclick=Omdraaien("12")></div>
<div id="13" style="left:80px;top:200px" class="kaartje" onclick=Omdraaien("13")></div>
<div id="14" style="left:140px;top:200px" class="kaartje" onclick=Omdraaien("14")></div>
<div id="15" style="left:200px;top:200px" class="kaartje" onclick=Omdraaien("15")></div>
<div id="16" title="Titel" style="left:300px;top:90px" class="highscore"></div>
<div id="17" title="Highscore" style="left:300px;top:140px" class="highscore"></div>
<div id="18" title="Button" style="left:20px;top:270px" class="button" onclick=NieuwSpel()> </div>
</body>
</html>
 
Code:
<body onLoad="plaatsTekst()","schudden()">
had
PHP:
<body onLoad="plaatsTekst(); schudden();">
moeten zijn. :) Ik heb het ook het schudden nog aangepast:
PHP:
<html>
<head>
<script>
//! nummers voor de kaartjes
var omgedraaideKaartjes=0;
var aantalBeurten=0;
//var cards = new Array(0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8);
var cards = new Array(1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8);
var idArray = new Array(2);
var aantalTerugGedraaid=0;
var score=0;
var scoretitel="UW HIGHSCORE";
var scoretekst="Spelen maar!";
var speltekst="Klik hier voor nieuw spel"
var matchArray= new Array();
var x=0;


//! kaarten array schudden
//cards.sort(schudden)

function plaatsTekst(){
deScore=document.getElementById (16);
deScore.innerHTML= '&nbsp;' + scoretitel;

deScore=document.getElementById(18);
deScore.innerHTML= '&nbsp;' + speltekst;

if (document.cookie.length>0){
cookieAlles=document.cookie ;
cookieScorepositie=cookieAlles.indexOf("Highscore");
cookieScorepositie=cookieScorepositie+10;
cookielengte=document.cookie.length
cookieScore=cookieAlles.substr(cookieScorepositie,cookielengte);

deScore=document.getElementById(17);
deScore.innerHTML= '&nbsp;' + cookieScore;
}
else{
deScore=document.getElementById(17);
deScore.innerHTML= '&nbsp;' + scoretekst;
}
}

function NieuwSpel(){
//Terugzetten van variabelen
omgedraaideKaartjes=0;
aantalBeurten=0;
var idArray = new Array(2);
aantalTerugGedraaid=0;
x=0;
score=0;
//omdraaien van alle omgedraaide kaartjes/matches
//deze zijn opgeslagen in matcharray

aantalOmtedraaienKaartjes=matchArray.length;
alert(aantalOmtedraaienKaartjes);
//loop door alle matches en verwijder het nummer
for (loop=0; loop<=aantalOmtedraaienKaartjes; loop++){
hetOmtedraaienKaartje=document.getElementById(matchArray[loop]);
hetOmtedraaienKaartje.innerHTML="";
}

schudden();


}


function schudden() {
 alert("schudden");
 // Leeghalen array met matches
 var matchArray = new Array();
 // Schudden van de kaartjes
 for (var j = 0; j < 10; j++) {
  for (var i = 0; i < cards.length; i++) {
   var db = Math.floor(Math.random() *  cards.length);
   var tmp = cards[i]; cards[i] = cards[db]; cards[db] = tmp;
   };
  };
 };


function Omdraaien(id) {
omgedraaideKaartjes++

if(omgedraaideKaartjes<=2){
getalKaartje=cards[id];
hetKaartje=document.getElementById(id);
hetKaartje.innerHTML= '&nbsp;' + getalKaartje;

if (omgedraaideKaartjes==1){
idArray[0]=id;
getalKaartje1=getalKaartje;
}
if (omgedraaideKaartjes==2){
idArray[1]=id;
getalKaartje2=getalKaartje;
Memory(getalKaartje1,getalKaartje2);
}
}
}

function Memory(getalKaartje1,getalKaartje2){
aantalBeurten++
if (getalKaartje1!= getalKaartje2){
var tijdjeWachten=setTimeout("Terugdraaien()",1500)
}
else {
Match(aantalBeurten);
}
}

//terug draaien van de kaartjes, terugzetten van de variable omgedraaide kaartjes
function Terugdraaien(){
for (loop=0; loop<=1; loop++){
hetOmtedraaienKaartje= document.getElementById(idArray[loop]);
hetOmtedraaienKaartje.innerHTML="";
}
omgedraaideKaartjes=0;
}

function Match(aantalBeurten){
score++;
//bij score = 8 zijn alle kaartjes omgedraaid
if (score==8){
//kijken in de cookie of deze beter is dan de highscore
//aantalBeurten
if (document.cookie.length>0){
    cookieAlles=document.cookie;
    cookieScorepositie=cookieAlles.indexOf("Highscore");
    cookieScorepositie=cookieScorepositie+10;
    cookielengte=document.cookie.length
    cookieScore=cookieAlles.substr(cookieScorepositie,cookielengte);
   
    if (cookieScore>aantalBeurten){
    alert("Gefeliciteerd, U heeft een nieuw record gezet!")
    document.cookie="Highscore" + "="+ aantalBeurten;
    deScore=document.getElementById(17);
    deScore.innerHTML= '&nbsp;' + aantalBeurten;
    }
   
}
if (document.cookie.length==0 ){
    document.cookie="Highscore" + "="+ aantalBeurten;
    deScore=document.getElementById(17);
    deScore.innerHTML= '&nbsp;' + aantalBeurten;
}
//laatste match nog opslaan in matchArtray
//dan nieuw spel beginnen
matchArray[x++]=idArray[0];
matchArray[x++]=idArray[1];
alert(score);
alert("start nieuw spel");
NieuwSpel();
}
else{
//kaarten doen niet meer mee in het spel
matchArray[x++]=idArray[0];
matchArray[x++]=idArray[1];
omgedraaideKaartjes=0;
}

}


</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<style>
.kaartje {
cursor: pointer;
background-color: #096;
color: #fff;
font: bold 32px/50px 'Verdana';
position: absolute;
width: 50px;
height: 50px;
}

.highscore {
cursor:default;
background-color: #096;
color:#FFFFFF;
border-color:#000000;
font: bold 15px/50px 'Verdana';
position: absolute;
width: 200px;
height: 50px;
}

.button {
cursor:pointer;
background-color: #096;
color:#FFFFFF;
border-color:#000000;
font: bold 15px/50px 'Verdana';
position: absolute;
width: 230px;
height: 50px;
}
</style>



</head>

<body onLoad="plaatsTekst(); schudden();">

<!--<body onLoad="checkCookie()">!-->

<div id="0" style="left:20px;top:20px;" class="kaartje" onclick=Omdraaien("0")></div>
<div id="1" style="left:80px;top:20px;" class="kaartje" onclick=Omdraaien("1")></div>
<div id="2" style="left:140px;top:20px;" class="kaartje" onclick=Omdraaien("2")></div>
<div id="3" style="left:200px;top:20px;" class="kaartje" onclick=Omdraaien("3")></div>
<div id="4" style="left:20px;top:80px;" class="kaartje" onclick=Omdraaien("4")></div>
<div id="5" style="left:80px;top:80px" class="kaartje" onclick=Omdraaien("5")></div>
<div id="6" style="left:140px;top:80px" class="kaartje" onclick=Omdraaien("6")></div>
<div id="7" style="left:200px;top:80px" class="kaartje" onclick=Omdraaien("7")></div>
<div id="8" style="left:20px;top:140px" class="kaartje" onclick=Omdraaien("8")></div>
<div id="9" style="left:80px;top:140px" class="kaartje" onclick=Omdraaien("9")></div>
<div id="10" style="left:140px;top:140px" class="kaartje" onclick=Omdraaien("10")></div>
<div id="11" style="left:200px;top:140px" class="kaartje" onclick=Omdraaien("11")></div>
<div id="12" style="left:20px;top:200px" class="kaartje" onclick=Omdraaien("12")></div>
<div id="13" style="left:80px;top:200px" class="kaartje" onclick=Omdraaien("13")></div>
<div id="14" style="left:140px;top:200px" class="kaartje" onclick=Omdraaien("14")></div>
<div id="15" style="left:200px;top:200px" class="kaartje" onclick=Omdraaien("15")></div>
<div id="16" title="Titel" style="left:300px;top:90px" class="highscore"></div>
<div id="17" title="Highscore" style="left:300px;top:140px" class="highscore"></div>
<div id="18" title="Button" style="left:20px;top:270px" class="button" onclick=NieuwSpel()> </div>
</body>
</html>
zo worden alle kaartjes 10x willekeurig gewisseld.


Vr.Gr. Egel.
 
Hallo Egel,

bedankt voor je reactie!, het werkt nu goed, alleen de kaarten worden bij elke beurt steeds hetzelfde geschut!. Enig idee waar dit aan zou kunnen liggen?.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan