probleem met functie (schudden)

Status
Niet open voor verdere reacties.

diskdok

Gebruiker
Lid geworden
27 mei 2007
Berichten
5
Hallo!,

Dit is een oproepje voor Egel, na mijn laatste vraag heb je de functie "Schudden" aangepast, bedankt voor je hulp trouwens :), Alleen nu worden de kaartjes bij een nieuw spel niet opnieuw geschud. Heb je een idee waar dat aan kan liggen?

gr. diskdok.

de code:
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="";
}

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>
 
nu worden de kaartjes bij een nieuw spel niet opnieuw geschud. Heb je een idee waar dat aan kan liggen?
Ja ... :o:
PHP:
var idArray = new Array(2);
var staat binnen een functie, daardoor werd het een lokale variabele. :o
PHP:
var x = 2;
function ff() {
 var x = 0;
 x++;
 alert(x);
 };
ff();
alert(x);
geeft twee alerts, eerst: 1, daarna: 2. :)

~/~
PHP:
<html>
<head>
<script type="text/javascript">

//! nummers voor de kaartjes
var cards = new Array(1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8);

var omgedraaideKaartjes = 0;
var aantalBeurten = 0;
var idArray = new Array();
var aantalTerugGedraaid = 0;
var score = 0;
var matchArray = new Array();
var x = 0;

var scoretitel = 'UW HIGHSCORE';
var scoretekst = 'Spelen maar!';
var speltekst = 'Klik hier voor nieuw spel';


function short(nr,val) {
 document.getElementById('vakje' + nr).innerHTML = (val == '' ? '&nbsp;' : val);
 };


function plaatsTekst() {
 short(16,scoretitel);
 short(18,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);
  short(17,cookieScore);
  } else {
  short(17,scoretekst);
  };
 };


function NieuwSpel() {
 // Terugzetten van variabelen
 omgedraaideKaartjes = 0;
 aantalBeurten = 0;
 idArray = new Array();
 aantalTerugGedraaid = 0;
 score = 0;
 matchArray = new Array();
 x = 0;
 // alle kaarten 'terugdraaien'
 for (i = 0; i < 16; i++) short(i,'');
 schudden();
 };


function schudden() {
 alert('schudden');
 // 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) {
 if (document.getElementById('vakje' + id).innerHTML != '&nbsp;') return;
 omgedraaideKaartjes++;
 if (omgedraaideKaartjes <= 2) {
  getalKaartje = cards[id];
  short(id,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 (i = 0; i < 2; i++) short(idArray[i],'');
 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;
    short(17,aantalBeurten);
    };
   };
  if (document.cookie.length == 0) {
   document.cookie = 'Highscore=' + aantalBeurten;
   short(17,aantalBeurten);
   };
  // laatste match nog opslaan in matchArray
  // 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>
td {
border: 1px solid #000;
text-align: center;
vertical-align: middle;
cursor: pointer;
background-color: #096;
color: #fff;
font: bold 32px 'Verdana';
width: 50px;
height: 50px;
}

.highscore {
width: auto;
cursor: default;
font: bold 15px 'Verdana';
}

.button {
width: auto;
font: bold 15px 'Verdana';
}
</style>



</head>

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

<table cellspacing="5" cellpadding="0">
 <tr>
  <td colspan="4" id="vakje16" title="Titel" class="highscore">&nbsp;</td>
 </tr><tr>
  <td colspan="4" id="vakje17" title="Highscore" class="highscore">&nbsp;</td>
 </tr><tr>
  <td id="vakje0" onclick="Omdraaien(0)">&nbsp;</td>
  <td id="vakje1" onclick="Omdraaien(1)">&nbsp;</td>
  <td id="vakje2" onclick="Omdraaien(2)">&nbsp;</td>
  <td id="vakje3" onclick="Omdraaien(3)">&nbsp;</td>
 </tr><tr>
  <td id="vakje4" onclick="Omdraaien(4)">&nbsp;</td>
  <td id="vakje5" onclick="Omdraaien(5)">&nbsp;</td>
  <td id="vakje6" onclick="Omdraaien(6)">&nbsp;</td>
  <td id="vakje7" onclick="Omdraaien(7)">&nbsp;</td>
 </tr><tr>
  <td id="vakje8" onclick="Omdraaien(8)">&nbsp;</td>
  <td id="vakje9" onclick="Omdraaien(9)">&nbsp;</td>
  <td id="vakje10" onclick="Omdraaien(10)">&nbsp;</td>
  <td id="vakje11" onclick="Omdraaien(11)">&nbsp;</td>
 </tr><tr>
  <td id="vakje12" onclick="Omdraaien(12)">&nbsp;</td>
  <td id="vakje13" onclick="Omdraaien(13)">&nbsp;</td>
  <td id="vakje14" onclick="Omdraaien(14)">&nbsp;</td>
  <td id="vakje15" onclick="Omdraaien(15)">&nbsp;</td>
 </tr><tr>
  <td colspan="4" id="vakje18" onclick="NieuwSpel()" class="button">&nbsp;</td>
 </tr>
</table>

</body>
</html>
doet 't wel goed. :)


Vr.Gr. Egel.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan