Bonsoir, je suis nouvelle sur le forum et je ne sait pas trop où poster mon sujet. :)
Voila je rencontre un petit problème avec mon code.

Je travaille sur Notepad++.
voila je passe mon projet à la rentrée il me reste donc quelques semaines pour le faire. J'ai la tache de faire un site web donc là tout va bien et j'ai également creer des liens hypertextes menant a des quizz sur 1) cuisine 2) sport 3)aléatoire. (J'ai crée mon site, et mes pages qui s'ouvrent quand je clique sur les liens hypertextes.)

var tablo = new Array ;
var tabrandom = new Array;
var i=0;

function ChoixM()
{    
    //remplir de valeur aléatoire entre 0 et 19 un tableau de 5 cases (mes 5 questions)

        // d'abord faire marcher cette ligne
        //alert(Math.floor((Math.random() * 10) + 1)); 
               alert(Math.random()); 
        // après faire fonctionner la boucle
              i=0;
              while(i<=4)
              {
                tabrandom[i] = la fonction random;
               }

    //remplir le tableau des questions de cuisines marocaines
    tablo[1,1]="La pastilla est certainement le plat de luxe marocain le plus célèbre quelle viande n entre jamais dans sa préparation ?";
    tablo[1,2]="  Poisson"tablo[1,3]="Viande de chameau" tablo[1,4]="Pigeon" tablo[1,5]="Viande de chameau";
    tablo[2,1]="Quelle est cette pâte à tartiner faite d'amandes, d'argan et de miel ?";
    tablo[2,2]="  Amlou"tablo[2,3]="Sellou" tablo[2,4]="Chebakya" tablo[2,5]="Amlou";
    tablo[3,1]="Comment s'appelle cette variété de couscous dont la semoule de blé est remplacée par de la farine de maïs ?";
    tablo[3,2]="  Abaddaz"tablo[3,3]="Chicha" tablo[3,4]="Belboula" tablo[3,5]="Abaddaz";
    tablo[4,1]="Comment s'appelle ce fromage blanc préparé dans les montagnes du nord ?";
    tablo[4,2]="  Beldi"tablo[4,3]="Romi" tablo[4,4]="Jebli" tablo[4,5]="Jebli";
    tablo[5,1]="Quel est le plat typiquement marocain    ?";
    tablo[5,2]="Le couscous"tablo[5,3]="Trid" tablo[5,4]="Tangia" tablo[5,5]="Le couscous";
    tablo[6,1]="Comment s’appelle  la soupe marocaine ?";
    tablo[7,1]="Comment appelle-t-on le gâteau au miel préparé au mois de Ramadan?";
    tablo[7,2]="Corne de gazelle"tablo[7,3]="Kahk" tablo[7,4]="Chebakia" tablo[7,5]="Chebakia";
    tablo[8,1]="A quel moment mange-t-on la pastilla ?";
    tablo[8,2]="Au dejeuner ou au diner"tablo[8,3]="Au petit dejeuner" tablo[8,4]="Au gouter" tablo[8,5]="Au dejeuner ou au diner";
    tablo[9,1]="Comment appelle-t-on les crêpes marocaines?";
    tablo[9,2]="Msémen"tablo[9,3]="Khingo" tablo[9,4]="Barghir" tablo[9,5]="Barghir";
    tablo[10,1]="Comment appelle-t-on le couscous fait à base de canelle, raisins secs et oignons?";
    tablo[10,2]="Bekbouka"tablo[10,3]="Tfaiya" tablo[10,4]="Msémen" tablo[10,5]="Tfaiya";
    tablo[11,1]="Qu'est ce que c'est qu´une corne de gazelle ? ";
    tablo[11,2]="un gateau"tablo[11,3]="une sucrerie" tablo[11,4]="un objet de décoration" tablo[11,5]="un gateau";
    tablo[12,1]="Comment mangent les marocains?";
    tablo[12,2]="Tous ensemble dans un grand plat commun, à la main"tablo[12,3]="Chacun son assiette, avec des couverts" tablo[12,4]="Ils ne mangent pas" ;
    tablo[12,5]="Tous ensemble dans un grand plat commun, à la main";
    tablo[13,1]="Comment appelle-t-on les crêpes marocaines?";
    tablo[13,2]="Msémen"tablo[13,3]="Khingo" tablo[13,4]="Barghir" tablo[13,5]="Barghir";
    tablo[14,1]="Comment appelle-t-on le couscous fait à base de canelle, raisins secs et oignons?";
    tablo[14,2]="Bekbouka"tablo[14,3]="Tfaiya" tablo[14,4]="Msémen" tablo[10,5]="Tfaiya";
    tablo[15,1]="Qu'est ce que c'est qu´une corne de gazelle ? ";
    tablo[15,2]="un gateau"tablo[15,3]="une sucrerie" tablo[15,4]="un objet de décoration" tablo[15,5]="un gateau";
    tablo[16,1]="Le thé à la menthe est-une spécialité:";
    tablo[16,2]="De Belgique?"tablo[16,3]="D'Ottawa?" tablo[16,4]="Du Maroc?" tablo[16,5]="Du Maroc.";
    tablo[17,1]="Comment se nomme la soupe traditionelle marocaine par excellence?";
    tablo[17,2]="Soupe aux légumes"tablo[17,3]="Harira" tablo[17,4]="Soupe au crocodile" tablo[17,5]="Harira";
    tablo[18,1]="Comment s'appelle le Maâdnous, en francais?";
    tablo[18,2]="La coriande"tablo[18,3]="Le persil" tablo[18,4]="Le poivre" tablo[18,5]="Le persil";
    tablo[19,1]="Le couscous est-il un plat qui se pose aux mariages?";
    tablo[19,2]="Non,c'est le tajine."tablo[19,3]="Oui,c'est le couscous." tablo[19,4]="Non,c'est le méchoui." tablo[19,5]="Non, c'est le tajine.";
    tablo[20,1]="Avec quoi les marocains accompagnent t-il leurs plats?";
    tablo[20,2]="Des boissons gazeuses"tablo[20,3]="De l'eau." tablo[20,4]="Du Lait." tablo[20,5]="Boissons gazeuses.";

    // afficher les 5 questions aléatoirement
        // mettre 5 variables pour les remplir avec les valeurs dans le tableau tabrandom
        // afficher le tablo[x...y....z...][1]

}

Et ici je bloque, on ne veut pas afficher une question par page mais plusieurs questions sur la meme page.
Voici mon code, j'ai réussit pour l'instant à remplir mon tabaleau avec mes questions ce qui est plutot facile, mais je n'arrive pas a faire le reste. (ce qui est après les //). Meme ma prof a testé et il y a toujours quelques choses qui bloque, les questions ne s'affichent pas. Je suis despérée :'(

Merci d'avance, bonne soirée. :)

1 réponse


Déjà, tu as plusieurs grosse faute dans ton code,

  • tab[x, y] => Ca n'existe pas en JavaScript, pour du multidimensionnel, on fait tab[x][y]
  • Ton while ne se terminera jamais, tu incrémentes jamais le i, donc la conditions de fin n'arrivera jamais
  • tablo[1,2]=" Poisson"tablo[1,3]="Viande de chameau" tablo[1,4]="Pigeon" tablo[1,5]="Viande de chameau"; => Déclarer des variables à la suite comme ca sans mettre de point virgule, ca ne fonctionne pas et ça génère des erreurs

La logique de ton algorithme est à revoir, utilise des objets pour ton questionnaire.
Je me suis permis de refaire cette logique (juste la logique, la génération HTML et la vérification du questionnaire ne sont pas faites, mais si jamais tu as besoin d'aide n'hésite pas)

Pour ma part, je te propose ce code ci, le code est fait pour une application en console, mais la logique reste la même.

// Bibliothèque des questions possible
var questions = [
    {
        question: 'La question 1 ?',
        responses: [
            'La réponse 1.1',
            'La réponse 1.2',
            'La réponse 1.3'
        ]
    },
    {
        question: 'La question 2 ?',
        responses: [
            'La réponse 2.1',
            'La réponse 2.2',
            'La réponse 2.3'
        ]
    },
    {
        question: 'La question 3 ?',
        responses: [
            'La réponse 3.1',
            'La réponse 3.2',
            'La réponse 3.3'
        ]
    },
    {
        question: 'La question 4 ?',
        responses: [
            'La réponse 4.1',
            'La réponse 4.2',
            'La réponse 4.3'
        ]
    },
    {
        question: 'La question 5 ?',
        responses: [
            'La réponse 5.1',
            'La réponse 5.2',
            'La réponse 5.3'
        ]
    }
];

function createQuiz(questions, nbQuestion) {
    var res = [];

    for (var i = 0; i < nbQuestion; i++) {
        res.push(questions[Math.floor(Math.random() * questions.length)]);
    }

    return res;
}

function displayQuiz(quiz) {
    for (var i = 0; i < quiz.length; i++) {
        console.log();
        console.log(quiz[i].question);

        for (var j = 0; j < quiz[i].responses.length; j++) {
            console.log('\t', quiz[i].responses[j]);
        }
    }

    console.log();
}

// Création d'un quiz de 2 questions
displayQuiz(createQuiz(questions, 2));

Qui retourne ceci

La question 5 ?
     La réponse 5.1
     La réponse 5.2
     La réponse 5.3

La question 3 ?
     La réponse 3.1
     La réponse 3.2
     La réponse 3.3

N'hésite pas à poser des questions si jamais tu veux savoir quelque chose