11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, je suis entrain de créer un jeu de casino, un jackpot avec 3 slots et totalement en javascript.

mon soucis est que je n'arrive pas à changer les images des slots en cliquant sur un bouton prédéfinis

Voici mon code pour le moment :




<html>
<head>
<!-- Titre du document -->
<title> Casino </title>


<!-- Javascript-->
	<script language="javascript">
		function change(){
		
		img1 = Math.ceil(Math.random() * 4);
		img2 = Math.ceil(Math.random() * 4);
		img3 = Math.ceil(Math.random() * 4);
		
		}
	
	
	misedepart = 100;
		
			function valeur(numimage) {
			switch (numimage) 
			{
			case 1:
			document.write(""+tab[0]+"");
			break;
			case 2:
			document.write(""+tab[1]+"");
			break;
			case 3:
			document.write(""+tab[2]+"");
			break;
			case 4:
			document.write(""+tab[3]+"");
			break;
			}
		}

		var tab = new Array(4); //création du tableau d'images

		tab[0] = ("<img src='images/cerise.png' width='100px' height='100px' />"); 	//cerise
		tab[1] = ("<img src='images/couronne.png' width='100px' height='100px' />"); 	//couronne
		tab[2] = ("<img src='images/etoile.png' width='100px' height='100px' />");		//etoile
		tab[3] = ("<img src='images/euro.png' width='100px' height='100px' />");		//euro
		
		// calcul du montant des images affiché : 
		// possibilité de réalisé également ceci avec un switch case...
		
		if ((img1==4) && (img2==4) && (img3==4)) { // 3euros affiché
		document.write("<p>3 euros : tu gagne 20 fois le montant !</p>");
		}
		
		else if ((img1==2) && (img2==2) && (img3==2)) { // 3 couronnes affiché
		document.write("<p>3 couronnes : tu gagne 15 fois le montant !</p>");
		}
		
		else if ((img1==3) && (img2==3) && (img3==3)) { // 3 étoiles affiché
		document.write("<p>3 étoiles : tu gagne 10 fois le montant !</p>");
		}

		else if ((img1==1) && (img2==1) && (img3==1)) { // 3 cerises affiché
		document.write("<p>3 cerises : tu gagne 5 fois le montant !</p>");
		}
		//dans le cas des 2 euros affiché :
		else if ((img1==4) && (img2==4) && (img3==2 || 3 || 1) || (img2==4) && (img3==4) && (img1==2 || 3 || 1) || (img3==4) && (img1==4) && (img2==2 || 3 || 1)){ 
		document.write("<p>2 Euros : tu gagne 2 fois le montant !</p>");
		
		}




	</script>

<style type="text/css">
@import url(styles.css);
</style>

</head>

<!-- Corps du document -->
<body>

<!-- centrage du document selon les écrans -->
<div class="centrage">

<!-- Header -->
<div id="header"></div>

<!-- Slot -->
<div id="slot">

<!-- Premier slot -->
<div class="slotext">

<script language="javascript">img1 = Math.ceil(Math.random() * 4);
		valeur(img1); //execution de la fonction </script>
    
</div>

<div class="slotext">

<script language="javascript">img2 = Math.ceil(Math.random() * 4);
		valeur(img2); //execution de la fonction </script>

</div>

<div class="slotext2">

		<script language="javascript">img3 = Math.ceil(Math.random() * 4);
		valeur(img3); //execution de la fonction </script>

</div>


<!-- Fin des 3 slots -->
</div>

<div id="montant">
    <div id="mise">
        <font class="description">
			<script language="javascript">
            document.write(""+misedepart+"");
            </script> €
        </font>
    <br/>Total des gains</div>

</div>

<div id="montant2">
<div id="total"><font class="description"><input type="button" value="change" onClick="change();"/></font><br/>Gains de la mise</div>
</div>


<!-- Fin du centrage -->
</div>

<!-- Fin du document -->
</body>
</html>



Pouvez vous m'aider, je ne demande pas une solution mais de m'orienter sur la bonne voie Smiley smile

Merci bien
Bonjour,

Qu'affiche la console d'erreur de Firefox ? (ou d'Opéra ou de Chrome c'est comme tu veux).

Que ce passe t'il avec ce code pour le moment ? Erreur ? Rien ne se passe ? Il ne fait pas comme tu veux ?

Rude
Modifié par ffwrude (29 Apr 2010 - 14:23)
En fait pour l'instant tout s'affiche correctement, les images s'affiche bien aléatoirement comme prévue, mais maintenant je voudrai créer un bouton que quand je clique dessus il me change de nouveau les images aléatoirement.

Je sais que c'est avec la fonction OnClick mais je ne trouve pas comment rédiger cette fonction

Merci de m'aidé

onclick='change();'


SI c'est bien la bonne fonction à appeller bien sur.
Modifié par ffwrude (29 Apr 2010 - 14:43)
Au niveau de JS rien du tout, après j'ai des choses dans ce style.

Avertissement : Propriété « text-overflow » inconnue. Déclaration abandonnée.
Ligne : 69

il y a pas mal d'erreurs... sa va être dur de toutes les citer.

Erreur : img1 is not defined
Fichier Source : http://localhost/javascript/jackpot2.html
Ligne : 48
Modifié par stouf (30 Apr 2010 - 16:49)
Bon j'ai pas les images et j'ai pas vraiement pu tester.

Mais ce que j'ai fait ici est de mettre un onload sur le body pour appeller change();

J'ai mis le code qui se chargeait au début de la page dans change();

En fait, déjà au départ le img1 is undefined provient du fait que tes variables img ne sont déclarées que dans la fonction change.

Et tu n'as pas remis tes document.write dans change. Donc forcement. A part changer la valeur de ta variable il doit pas faire grand chose.

Peut être que cette piste pourra t'aider (ca marchera même peut être lol).

Rude


<html>
	<head>
		<title> Casino </title>
			<script type='text/javascript'>
					function change(){
						var img1 = Math.ceil(Math.random() * 4);
						var img2 = Math.ceil(Math.random() * 4);
						var img3 = Math.ceil(Math.random() * 4);
						if ((img1==4) && (img2==4) && (img3==4)) { // 3euros affiché
							document.write("<p>3 euros : tu gagne 20 fois le montant !</p>");
						}else if ((img1==2) && (img2==2) && (img3==2)) { // 3 couronnes affiché
							document.write("<p>3 couronnes : tu gagne 15 fois le montant !</p>");
						}else if ((img1==3) && (img2==3) && (img3==3)) { // 3 étoiles affiché
							document.write("<p>3 étoiles : tu gagne 10 fois le montant !</p>");
						}else if ((img1==1) && (img2==1) && (img3==1)) { // 3 cerises affiché
							document.write("<p>3 cerises : tu gagne 5 fois le montant !</p>");
						}else if ((img1==4) && (img2==4) && (img3==2 || 3 || 1) || (img2==4) && (img3==4) && (img1==2 || 3 || 1) || (img3==4) && (img1==4) && (img2==2 || 3 || 1)){ 
							document.write("<p>2 Euros : tu gagne 2 fois le montant !</p>");
						}
					}
					
					misedepart = 100;
					var tab = new Array(4); //création du tableau d'images
						tab[0] = ("<img src='images/cerise.png' width='100px' height='100px' />"); 	//cerise
						tab[1] = ("<img src='images/couronne.png' width='100px' height='100px' />"); 	//couronne
						tab[2] = ("<img src='images/etoile.png' width='100px' height='100px' />");		//etoile
						tab[3] = ("<img src='images/euro.png' width='100px' height='100px' />");		//euro
					
					function valeur(numimage) {
						switch (numimage){
							case 1:
								document.write(""+tab[0]+"");
								break;
							case 2:
								document.write(""+tab[1]+"");
								break;
							case 3:
								document.write(""+tab[2]+"");
								break;
							case 4:
								document.write(""+tab[3]+"");
								break;
						}

					}
			</script>
			<style type="text/css">
				@import url(styles.css);
			</style>
		</script>
</head>



<!-- Corps du document -->

<body onload='change();'>
Bon j'ai reussis à faire exactement se que je voulais, mais j'ai un dernier petit problème,
je n'arrive pas à "sauvegarder" le montant total après la mise.

je m'explique, après une mise, que je gagne où je perds, le montant s'affiche correctement, mais pour une nouvelle mise, le montant n'est plus pris en compte.

Pouvez vous m'aider, merci encore Smiley smile

<html>
<head>
<!-- Titre du document -->
<title> Casino Cnam</title>


<!-- Javascript-->
	<script language="javascript">
		
	misedepart = 100;

		
	function start(){
	
		
		mise = prompt("Combien misez vous ?","");
		
			while ((mise=="") || (mise==0)){ // si aucune mise ou la mise vaut 0, relancer la demande
			mise = prompt("Combien misez vous ?","");
			}
			
			while (mise>misedepart){ // si la mise est superieur aux montant
			mise = prompt("Vous ne possedez que "+misedepart+" €","");
			}
		document.getElementById("description2").innerHTML = mise;

		img1 = Math.ceil(Math.random() * 4); // création du chiffre aléatoire pour les 3 slots
		img2 = Math.ceil(Math.random() * 4); // création du chiffre aléatoire pour les 3 slots
		img3 = Math.ceil(Math.random() * 4); // création du chiffre aléatoire pour les 3 slots
		 
		 
	cerise = ("<img src='images/cerise.png' width='100px' height='100px' />"); 	//cerise
	couronne = ("<img src='images/couronne.png' width='100px' height='100px' />"); 	//couronne
	etoile = ("<img src='images/etoile.png' width='100px' height='100px' />");		//etoile
	euro = ("<img src='images/euro.png' width='100px' height='100px' />");		//euro
				
			switch (img1) 
			{
			case 1:
			document.getElementById("slot1").innerHTML = cerise;
			break;
			case 2:
			document.getElementById("slot1").innerHTML = couronne;
			break;
			case 3:
			document.getElementById("slot1").innerHTML = etoile;
			break;
			case 4:
			document.getElementById("slot1").innerHTML = euro;
			break;
			}
			
			switch (img2) 
			{
			case 1:
			document.getElementById("slot2").innerHTML = cerise;
			break;
			case 2:
			document.getElementById("slot2").innerHTML = couronne;
			break;
			case 3:
			document.getElementById("slot2").innerHTML = etoile;
			break;
			case 4:
			document.getElementById("slot2").innerHTML = euro;
			break;
			}
			
			switch (img3) 
			{
			case 1:
			document.getElementById("slot3").innerHTML = cerise;
			break;
			case 2:
			document.getElementById("slot3").innerHTML = couronne;
			break;
			case 3:
			document.getElementById("slot3").innerHTML = etoile;
			break;
			case 4:
			document.getElementById("slot3").innerHTML = euro;
			break;
			}
		
		function somme() {
			if ((img1==4) && (img2==4) && (img3==4)) { // 3euros affiché
			document.getElementById("description").innerHTML = ((mise*20)+(misedepart))+" €";
			document.getElementById("absolute").innerHTML = "tu gagne 20 fois le montant" ;
			}
			
			else if ((img1==2) && (img2==2) && (img3==2)) { // 3 couronnes affiché
			document.getElementById("description").innerHTML = ((mise*15)+(misedepart))+" €";
			document.getElementById("absolute").innerHTML = "tu gagne 15 fois le montant" ;
			}
			
			else if ((img1==3) && (img2==3) && (img3==3)) { // 3 étoiles affiché
			document.getElementById("description").innerHTML = ((mise*10)+(misedepart))+" €";
			document.getElementById("absolute").innerHTML = "tu gagne 10 fois le montant" ;
			}

			else if ((img1==1) && (img2==1) && (img3==1)) { // 3 cerises affiché
			document.getElementById("description").innerHTML = ((mise*5)+(misedepart))+" €";
			document.getElementById("absolute").innerHTML = "tu gagne 5 fois le montant" ;
			}
			//dans le cas des 2 euros affiché :
			else if ((img1==4) && (img2==4) && (img3==2 || 3 || 1) || (img2==4) && (img3==4) && (img1==2 || 3 || 1) || (img3==4) && (img1==4) && (img2==2 || 3 || 1)){ 
			document.getElementById("description").innerHTML = ((mise*2)+(misedepart))+" €";
			document.getElementById("absolute").innerHTML = "tu gagne 2 fois le montant" ;
			}
			
			else {
			document.getElementById("description").innerHTML = ((misedepart)-mise)+" €";
			document.getElementById("absolute").innerHTML = "tu as PERDU !!!" ;
			
			}
	
		
		}
		somme();

	}
				



	</script>

<style type="text/css">
@import url(styles.css);
</style>

</head>

<!-- Corps du document -->
<body>
<div id="bouton"><input type="button" value="Jouer" onClick="start();"/></div>
<!-- centrage du document selon les écrans -->
<div class="centrage">

<!-- Header -->
<div id="header"></div>

<!-- Slot -->
<div id="slot">

<!-- Premier slot -->
<div id="slot1">   
</div>

<div id="slot3">
</div>

<div id="slot2">
</div>


<!-- Fin des 3 slots -->
</div>

<div id="montant">
    <div id="mise">
        <font id="description">
        </font>
    <br/>Total des gains</div>

</div>

<div id="montant2">
<div id="total">
<font id="description2"></font><br/>
</div>
</div>

<div id="absolute">
</div>


<!-- Fin du centrage -->
</div>

<!-- Fin du document -->
</body>
</html>