Programme pour apprendre des verbes irréguliers

Résolu
coderenjava Messages postés 4 Statut Membre -  
coderenjava Messages postés 4 Statut Membre -
Bonjour, bonsoir

Je cherche à faire dans l'urgence un programme qui permettrait de demander à un utilisateur la traduction de verbes irréguliers. Je suis actuellement débutant dans la programmation et je ne sais pas comment m'y prendre.

Ce que le programme doit comporter :

- une demande aléatoire de verbes à traduire
- une indication si la réponse est correcte ou non
- un message d'erreur si la réponse n'est pas appropriée
- un compteur de bonnes/mauvaises réponses

Voilà par quoi j'ai commencé :

-------------------------------------------------------------------------------
<script>

alert("Donner la traduction en français de ce verbe irrégulier");
alert ("Base verbale ; Prétérit ; Participe passé");

function aleatoire(size) {
var liste = ["abide abode abode : "," ",];
var result = '';
for (i = 0; i < size; i++) {
result += liste[Math.floor(Math.random() * liste.length)];
}
alert(result);
}
aleatoire(1);

</script>
--------------------------------------------------------------------------------
Les verbes sélectionnés sont les suivants :

abide abode abode :
respecter / se conformer à

arise arose arisen :
survenir

awake awoke awoken :
se réveiller

be was/were been :
être

bear bore borne/born :
porter / supporter / naître

beat beat beaten :
battre

become became become :
devenir

beget begat/begot begotten :
engendrer

begin beganb begun :
commencer

bend bent bent :
plier / se courber

bereave bereft/bereaved bereft/bereaved :
déposséder / priver

bet bet bet :
parier

bid bid/bade bid/bidden :
offrir

bleed bled bled :
saigner

blow blew blown :
souffler / gonfler

break broke broken :
casser

breed bred bred :
élever (des animaux)

bring brought brought :
apporter

broadcast broadcast broadcast :
diffuser / émettre

build built built :
construire
------------------------------------------------------------------------------------
Question supplémentaire : comment faire pour que mon programme affiche mes "alert" sur le même bloc sans appuyer sur entrée pour faire défiler les informations ?

Je vous remercie par avance de votre aide et attends vos réponses avec impatience !

PS : J'utilise le logiciel Notepad++

1 réponse

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    'lut, au passage j'ai déplacé dans Programmation (tout court) car tu parles de JavaScript, qui n'a strictement rien à voir avec Java hormis le nom similaire.

    Pour afficher tout d'un coup dans un alert, tu peux utiliser un retour à la ligne
    \n
    :
    alert("Donner la traduction en français de ce verbe irrégulier\n" +
          "Base verbale ; Prétérit ; Participe passé"); 


    Pour le format de ta liste, je te conseille de le faire en tableau d'objets:
    var liste = [
        {fr: "respecter / se conformer à", en: "abide abode abode"},
        {fr: "survenir", en: "arise arose arisen"},
        <...>
    ];


    Tu choisis un index au hasard dans la liste:
    var idx = Math.floor(Math.random() * liste.length);

    En extrait l'objet faisant le lien entre anglais et français:
    var trad = liste[idx];

    À partir de là tu peux demander la traduction:
    var reponse = prompt("Donner la traduction en Anglais de ce verbe irrégulier:\n" + trad.fr,
        "<Base verbale> <Prétérit> <Participe passé>");


    Tu vérifies l'identité de la réponse donnée avec la vraie réponse:
    if (reponse === trad.en) {

    Puis dit si on a eu juste:
        alert("Correct");
    } else {
        alert("Faux, la traduction était " + trad.en);
    }


    Bon c'est très vague, j'ai fait ça rapidement. Aussi, les alert et prompt c'est extrêmement pas pratique mais ça marche. Gros hic aussi: il faut donner à l'espace près la même traduction qu'il y a dans ton programme, sinon il affichera qu'on a eu faux.
    Mais dans le principe, ça marche.
    from human import idiocy
    del idiocy
    -1
    1. coderenjava Messages postés 4 Statut Membre
       
      Merci beaucoup pour toutes ces informations ! J'essaie cela de suite.
      0
    2. coderenjava Messages postés 4 Statut Membre
       
      Génial, ça marche nickel, merci encore ! Saurais-tu comment faire pour attribuer une note finale à l'utilisateur stp ? Je ne sais pas comment comptabiliser le nombre de "correct".

      Voilà ce que donne le programme pour le moment :

      <script>

      var liste = [
      {fr: "respecter / se conformer à", en: "abide abode abode"},
      {fr: "survenir", en: "arise arose arisen"},
      {fr: "se réveiller", en: "awake awoke awoken"},
      {fr: "être", en: "be was been"},
      {fr: "porter / supporter / naître", en: "bear bore born"},
      {fr: "battre", en: "beat beat beaten"},
      {fr: "devenir", en: "become became become"},
      {fr: "engendrer", en: "beget begot begotten"},
      {fr: "commencer", en: "begin began begun"},
      {fr: "plier / se courber", en: "bend bent bent"},
      {fr: "déposséder / priver", en: "bereave bereft bereft"},
      {fr: "parier", en: "bet bet bet"},
      {fr: "offrir", en: "bid bid bid"},
      {fr: "saigner", en: "bleed bled bled"},
      {fr: "souffler / gonfler", en: "blow blew blown"},
      {fr: "casser", en: "break broke broken"},
      {fr: "élever (des animaux)", en: "breed bred bred"},
      {fr: "apporter", en: "bring brought brought"},
      {fr: "diffuser / émettre", en: "broadcast broadcast broadcast"},
      {fr: "construire", en: "build built built"},
      ];

      for (i = 0; i < 21; i++) {

      function aleatoire(size) {
      var idx = Math.floor(Math.random() * liste.length);
      var trad = liste[idx];
      var reponse = prompt("Donner la base verbale, le prétérit puis le participe passé en anglais du verbe irrégulier \n" + trad.fr,
      "");

      if (reponse === trad.en) {
      alert("Correct");
      } else {
      alert("La réponse attendue était : " + trad.en);
      }
      }
      aleatoire();
      }

      </script>
      0
      1. ElementW Messages postés 5690 Statut Contributeur 1 293 > coderenjava Messages postés 4 Statut Membre
         
        Rajoutes une variable (
        nbJuste
        par exemple) avant ta boucle
        for
        , affectes-lui la valeur 0, puis avant l'affichage de "Correct", incrémentes-le avec
        nbJuste++;
        .
        Pour finir, affiche le score après toute ta boucle
        for
        grâce à alert:
        alert("Score: " + nbJuste + "/21");
        0
      2. coderenjava Messages postés 4 Statut Membre > ElementW Messages postés 5690 Statut Contributeur
         
        Génial merci encore!
        0