cs_Chihiro
Messages postés5Date d'inscriptionmardi 20 mai 2003StatutMembreDernière intervention 4 juin 2003
-
3 juin 2003 à 15:23
Mal_au_DOS
Messages postés39Date d'inscriptionsamedi 3 juin 2006StatutMembreDernière intervention28 octobre 2008
-
9 mars 2008 à 17:53
Voilà, j'ai un gros problème dans mon script qui ne marche pas, parce que je suis vraiment nulle en programmation... Est ce que quelqu'un pourrait y jeter un petit coup d'oeil et éventuellement le corriger... Merci d'avance aux webmasters qui se pencheront sur mon problème...
Voici mon programme, c'est sensé être un Jeu de Pendu:
Le début marche, mais la vérification des lettres c'est pas trop ça...
<html> <!-- Projet de programmation année 2003 -->
<head> <!-- Le Jeu Du Pendu -->
<script language="JavaScript">
var selection;
sports = new Array('cyclisme', 'athletisme', 'rugby', 'escalade');
prenoms = new Array('juliette', 'david', 'stephanie', 'laurent');
metiers = new Array('jardinier', 'ingenieur', 'acteur', 'professeur');
function fctDebut(){
alert("Pour commencer à jouer, choisis une rubrique et clique sur OK.");
}
function fctRegle(){
alert("Règle du jeu: Il te faut trouver le mot caché en proposant différentes lettres. Attention, tu n'as droit qu'à 6 propositions fausses avant d'être pendu... Bon jeu !");
}
function fctSelectRubrik(){
for(i = 1 ; i <= 3; i++){
if(document.jeupendu.rubrique.options[i].selected == true)
{selection = i}
}
}
function fctSelectMot(){
j = Math.round((3-0)*Math.random() +0);
switch(selection){
case 1 : mothaz = sports[j]; break;
case 2 : mothaz = prenoms[j]; break;
case 3 : mothaz = metiers[j]; break;
};
nblettre = mothaz.length; //nblettre est le nombre de lettre du mot à trouver
underscore = new Array();
l = mothaz.length;
for(i = 0; i < l ; i++){
underscore[i]="_ ";}
cpteur = 0;
window.alert("Le mot à trouver contient "+ mothaz.length +" lettres.");
document.jeupendu.motdev.value = underscore //underscore est la variable contenant les caractères de soulignement
}
function seek(lettre){
l= mothaz.length;
lettreprop= 0; // marque si la lettre proposée est bonne
trouve= 0; // trouve est le nombre de lettres trouvées
erreurs= 0; // erreurs est le nombre de proposotions fausses
for(i=0; i<l; i++){
if(lettre== mothaz.substring(i, i+1));
lettreprop =1;
underscore= mothaz.replace(i, "_ ");
trouve++;
}
// Si toutes les lettres ont été trouvées:
if(trouve== l){
alert("Bravo, tu as gagné");}
//Si la lettre proposée ne se trouve pas dans le mot
if(lettre!= mothaz.substring(i, i+1)){
erreurs++;}
document.jeupendu.erreurs.value = erreurs;
//Si le pendu est complet:
if(erreurs == 6)
{alert("Désolée tu as perdu ! Le mot à trouver était "+ mothaz);
}
}
cs_Chihiro
Messages postés5Date d'inscriptionmardi 20 mai 2003StatutMembreDernière intervention 4 juin 20031 4 juin 2003 à 11:49
Excuse moi, de t'embêter encore un peu... mais je ne comprends pas très bien comment mettre a jour underscore dans la partie html du formulaire...
En ce qui concerne la fonction qui remettrait à zéro les variables erreurs et trouve, est ce qu'un bouton reset ne suffit pas?
Et puis encore un énorme merci !
cs_Duss
Messages postés890Date d'inscriptionlundi 8 avril 2002StatutMembreDernière intervention29 juillet 200411 3 juin 2003 à 16:14
salut,
deja ici ,
function fctSelectMot(){
j = Math.round((3-0)*Math.random() +0);
switch(selection){
case 1 : mothaz = sports[j]; break;
case 2 : mothaz = prenoms[j]; break;
case 3 : mothaz = metiers[j]; break;
};
enleve le dernier ;
ensuite :
function seek(lettre){
l= mothaz.length;
lettreprop= 0; // marque si la lettre proposée est bonne
trouve= 0; // trouve est le nombre de lettres trouvées
erreurs= 0; // erreurs est le nombre de proposotions fausses
for(i=0; i<l; i++){
if(lettre== mothaz.charAt(i)){ // pas de ; mais {
lettreprop =1;
underscore= mothaz.replace(i, "_ ");
// Si toutes les lettres ont été trouvées:
if(++trouve== l){
alert("Bravo, tu as gagné");}
}
else
{
//Si la lettre proposée ne se trouve pas dans le mot
//Si le pendu est complet:
if(++erreurs == 6)
alert("Désolée tu as perdu ! Le mot à trouver était "+ mothaz);
mrshardax
Messages postés47Date d'inscriptionjeudi 6 février 2003StatutMembreDernière intervention22 mars 20062 3 juin 2003 à 16:19
Bon, j ai juste regarder la fonction de verif des lettres ke j ai retouché un peu ..... le reste m avait l air correct (ce ki ne signifie pas ke ca l etais)
l= mothaz.length;
lettreprop= 0; // marque si la lettre proposée est bonne
trouve= 0; // trouve est le nombre de lettres trouvées
erreurs= 0; // erreurs est le nombre de proposotions fausses
cs_Chihiro
Messages postés5Date d'inscriptionmardi 20 mai 2003StatutMembreDernière intervention 4 juin 20031 3 juin 2003 à 18:18
Tout d'abord je tenais à te dire un grand merci pour ton aide. J'ai opéré les modifications que tu m'as conseillées et il demeure encore quelques petits problèmes... En effet, les lettres une fois proposées ne s'affichent pas à la place des tirets et le comtpeur d'erreurs ne fonctionne pas lui non plus... N'aurais-tu pas une petite idée?
D'avance merci !
PS: qu'est ce que tu appelles "mettre en page le code"? Je suis une néophyte dans la programmation (ça fait un mois que j'ai commencé) et en plus je ne sais pas trop comment fonctionne ce site...
<code>
<html> <!-- Del-Grande Marjorie ; Projet de programmation année 2003 -->
<head> <!-- Le Jeu Du Pendu -->
<script language="JavaScript">
var selection;
sports = new Array('cyclisme', 'athletisme', 'rugby', 'escalade');
prenoms = new Array('juliette', 'david', 'stephanie', 'laurent');
metiers = new Array('jardinier', 'ingenieur', 'acteur', 'professeur');
function fctDebut(){
alert("Pour commencer à jouer, choisis une rubrique et clique sur OK.");
}
function fctRegle(){
alert("Règle du jeu: Il te faut trouver le mot caché en proposant différentes lettres. Attention, tu n'as droit qu'à 6 propositions fausses avant d'être pendu... Bon jeu !");
}
function fctSelectRubrik(){
for(i = 1 ; i <= 3; i++){
if(document.jeupendu.rubrique.options[i].selected == true)
{selection = i}
}
}
function fctSelectMot(){
j = Math.round((3-0)*Math.random() +0);
switch(selection){
case 1 : mothaz = sports[j]; break;
case 2 : mothaz = prenoms[j]; break;
case 3 : mothaz = metiers[j]; break;
}
nblettre = mothaz.length; //nblettre est le nombre de lettre du mot à trouver
underscore = new Array();
l = mothaz.length;
for(i = 0; i < l ; i++){
underscore[i]="_ ";}
cpteur = 0;
window.alert("Le mot à trouver contient "+ mothaz.length +" lettres.");
document.jeupendu.motdev.value = underscore //underscore est la variable contenant les caractères de soulignement
}
function seek(lettre){
l= mothaz.length;
lettreprop= 0; // marque si la lettre proposée est bonne
trouve= 0; // trouve est le nombre de lettres trouvées
erreurs= 0; // erreurs est le nombre de proposotions fausses
for(i=0; i<l; i++){
if(lettre== mothaz.charAt(i)){
lettreprop=1;
underscore[i]=lettre;
trouve++;
}
}
// Si toutes les lettres ont été trouvées:
if(trouve== l){
alert("Bravo, tu as gagné");}
//Si la lettre proposée ne se trouve pas dans le mot
if(lettreprop== 0){
erreurs++;}
document.jeupendu.erreurs.value = erreurs;
//Si le pendu est complet:
if(erreurs == 6){
alert("Désolée tu as perdu ! Le mot à trouver était "+ mothaz);
}
}
mrshardax
Messages postés47Date d'inscriptionjeudi 6 février 2003StatutMembreDernière intervention22 mars 20062 3 juin 2003 à 23:40
Ok, je me suis pencher un peu plus longtemps sur ton probleme, et j ai trouver deux erreurs :
Premiere : les variables trouve et erreur doivent etre en portee globale, cad au debut, pres de ta variable selection je crois, car, dans l etat actuel, ces variables sont remises a zero a cahque fois ke tu seek une lettre, donc, tu ne trouve jamais et tu n as jamais d erreur.
La contrepartie et ke tu dois faire une fonction ki remet a zero ses deux variables et ke tu dois appeler a chaque nouveau jeu.
Deuxieme point, tu met bien a jour ta variable underscore, mais tu dois aussi la mettre a jour a l interieur de ton formulaire HTML grace a cette ligne
(si je me souviens bien des variables, j ai plus le code en tete, mais tu vas retrouver)
// met a jour la variable javascript
underscore[i]=lettre ;
// met a jour la valeur du formulaire HTML
document.jeupendu.motdev.value = underscore ;
trouve++ ;
}
}
En effet ta variable javascripte n est pas liee a ton champs HTML et inversement : mettre a jour l un ne signifie pas mettre a jour l autre.
C est exactement le meme probleme pour tes variables trouve et erreur. Un bouton reset met a blanc tout les champs de saisie HTML et n intervient en rien dans ton javascript. Tu dois faire une fonction :
cs_Chihiro
Messages postés5Date d'inscriptionmardi 20 mai 2003StatutMembreDernière intervention 4 juin 20031 4 juin 2003 à 20:50
Bonsoir,
Ceci sera le dernier message, avec pour but de te remercier pour tes explications (très très claires) et tes conseils avisés !
Merci vraiment beaucoup, sans toi je ramerai encore...