/*
Auteur: Eric Leydet
Adresse électronique: Eric.Leydet@ac-bordeaux.fr
Application: Jeu de Nim
Adresse du site: jeudenim.free.fr
Nom de ce fichier: fonctions.js
Date de création: mai 2002
*/

//CREATION DES OBJETS

var jeu=new CL_jeu();
var tapis=new CL_tapis();
var combinaison=new CL_combinaison();
var commentaire=new CL_commentaire();

//PRECHARGEMENT DES IMAGES

var allumette=new Array();
for (var i=0;i<=3;i++) allumette[i]=new Image();
allumette[0].src="posee.gif";
allumette[1].src="montree.gif";
allumette[2].src="choisie.gif";
allumette[3].src="otee.gif";
var visage=new Array();
for (var i=0;i<=4;i++) visage[i]=new Image();
visage[0].src="debut.gif";
visage[1].src="a_vous.gif";
visage[2].src="a_moi.gif";
visage[3].src="perdu.gif";
visage[4].src="gagne.gif";

//FONCTIONS APPELEES DEPUIS LA PAGE jouer.html

function oter(r,a,type) {
  //Cette fonction ne peut être appelée que si c'est au tour du joueur de jouer.
  if (jeu.etat=="joueur joue") {
    if (type==1 && tapis.rangee[r].pion[a].etat=="posee") tapis.rangee[r].pion[a].etat="montree";
    if (type==2 && tapis.rangee[r].pion[a].etat=="montree") tapis.rangee[r].pion[a].etat="posee";
    if (type==3) {
      if (tapis.rangee[r].pion[a].etat=="montree") tapis.rangee[r].pion[a].etat="choisie";
      else if (tapis.rangee[r].pion[a].etat=="choisie") tapis.rangee[r].pion[a].etat="montree";
    }
    dessiner_pions();
  }
}

function changer() {
  //Les options ne peuvent pas être changées si l'ordinateur ou le joueur joue.
  if (jeu.etat=="joueur joue"||jeu.etat=="ordinateur joue") {
    alert(commentaire.option());
    if (jeu.niveau=="debutant") document.f.niveau[0].checked=true;
    if (jeu.niveau=="confirme") document.f.niveau[1].checked=true;
    if (jeu.niveau=="expert") document.f.niveau[2].checked=true;
    if (jeu.dernier=="perd") document.f.dernier[0].checked=true;
    if (jeu.dernier=="gagne") document.f.dernier[1].checked=true;
    if (jeu.commence=="joueur") document.f.commence[0].checked=true;
    if (jeu.commence=="ordinateur") document.f.commence[1].checked=true;
  }
  else {
    if (document.f.niveau[0].checked) jeu.niveau="debutant";
    if (document.f.niveau[1].checked) jeu.niveau="confirme";
    if (document.f.niveau[2].checked) jeu.niveau="expert";
    if (document.f.dernier[0].checked) jeu.dernier="perd";
    if (document.f.dernier[1].checked) jeu.dernier="gagne";
    if (document.f.commence[0].checked) jeu.commence="joueur";
    if (document.f.commence[1].checked) jeu.commence="ordinateur";
  }
}

function jouer() {
  if (jeu.etat=="initial"||jeu.etat=="fini") {
    tapis.initialiser();
    dessiner_pions();
    if (jeu.commence=="joueur") joueur_jouer();
    if (jeu.commence=="ordinateur") ordinateur_jouer();
  }
  else if (jeu.etat=="joueur joue") {
    if (tapis.selection()=="correcte") {
      tapis.oter();
      dessiner_pions();
      if (tapis.verification()!=0) ordinateur_jouer();
      else if (tapis.verification()==0) terminer_jeu();
    }
    else if (tapis.selection()=="aucune") alert(commentaire.erreur(0));
    else if (tapis.selection()=="incorrecte") alert(commentaire.erreur(1));
  }
}

function aide() {
  var a="width="+(screen.width/1.1)+",height="+(screen.height/1.2);
  open("aide.html","aide",a+",menubar=no,toolbar=no,directories=no,location=no,status=no,scrollbars=yes");
}

function quitter() {
  document.visage.src=visage[0].src;
  document.f.commentaire.value=commentaire.quitter();
  setTimeout('self.close()',2000);
}

//FONCTIONS REPETITIVES

function ordinateur_jouer() {
  jeu.etat="ordinateur joue";
  document.visage.src=visage[2].src;
  document.f.commentaire.value=commentaire.ordinateur();
  document.f.bouton_jouer.value="PATIENTEZ";
  var r=new Array();
  r[0]=tapis.rangee[0].reste();
  r[1]=tapis.rangee[1].reste();
  r[2]=tapis.rangee[2].reste();
  r[3]=tapis.rangee[3].reste();
  combinaison.choisir(r,jeu);
  tapis.rangee[combinaison.rangee].choisir(combinaison.nombre);
  setTimeout('dessiner_pions()',700);
  setTimeout('ordinateur_jouer_suite()',1400);
}

function ordinateur_jouer_suite() {
  tapis.oter();
  dessiner_pions();
  if (tapis.verification()!=0) joueur_jouer();
  else terminer_jeu();
}

function joueur_jouer() {
  jeu.etat="joueur joue";
  document.visage.src=visage[1].src;
  document.f.commentaire.value=commentaire.joueur(tapis.verification());
  document.f.bouton_jouer.value="RETIRER";
}

function terminer_jeu() {
  if ((jeu.etat=="joueur joue"&&jeu.dernier=="gagne")||(jeu.etat=="ordinateur joue"&&jeu.dernier=="perd")) {
    document.visage.src=visage[3].src;
    document.f.commentaire.value=commentaire.fin("joueur");
    jeu.gains++;
    document.f.nombre_gains.value=jeu.gains;
  }
  if ((jeu.etat=="joueur joue"&&jeu.dernier=="perd")||(jeu.etat=="ordinateur joue"&&jeu.dernier=="gagne")) {
    document.visage.src=visage[4].src;
    document.f.commentaire.value=commentaire.fin("ordinateur");
  }
  jeu.etat="fini";
  jeu.parties++;
  document.f.nombre_parties.value=jeu.parties;
  document.f.bouton_jouer.value="REJOUER";
}

function dessiner_pions() {
  for (var j=0;j<4;j++) {
    for (var k=0;k<tapis.rangee[j].nombre;k++) {
      var nom="r"+j+"a"+k;
      if (tapis.rangee[j].pion[k].etat=="posee") document.images[nom].src=allumette[0].src;
      if (tapis.rangee[j].pion[k].etat=="montree") document.images[nom].src=allumette[1].src;
      if (tapis.rangee[j].pion[k].etat=="choisie") document.images[nom].src=allumette[2].src;
      if (tapis.rangee[j].pion[k].etat=="otee") document.images[nom].src=allumette[3].src;
    }
  }
}

