Last active
May 13, 2021 23:11
-
-
Save morgaan/870119d8912cdfd02f6e91a818e93443 to your computer and use it in GitHub Desktop.
Générateur de mots pour Dessinez c'est gagné !
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="fr"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Génère un mot</title> | |
</head> | |
<body> | |
<div aria-live="polite" class="word-wrapper" id="word-wrapper"><p class="sr-only">Cliquez sur Nouveau mot pour lancer le générateur de mots</p></div> | |
<button id="generate-word">Nouveau mot</button> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const dict = "angle,armoire,banc,bureau,cabinet,carreau,chaise,classe,clé,coin,couloir,dossier,eau,école,écriture,entrée,escalier,étagère,étude,extérieur,fenêtre,intérieur,lavabo,lecture,lit,marche,matelas,maternelle,meuble,mousse,mur,peluche,placard,plafond,porte,portemanteau,poubelle,radiateur,rampe,récréation,rentrée,rideau,robinet,salle,savon,serrure,serviette,siège,sieste,silence,sol,sommeil,sonnette,sortie,table,tableau,tabouret,tapis,tiroir,toilette,vitre,toilettes,crayon,stylo,feutre,taille-crayon,pointe,mine,gomme,dessin,coloriage,rayure,peinture,pinceau,couleur,craie,papier,feuille,cahier,carnet,carton,ciseaux,découpage,pliage,pli,colle,affaire,boîte,casier,caisse,trousse,cartable,jouet,jeu,pion,dé,domino,puzzle,cube,perle,chose,forme,carré,rond,pâte à modeler,tampon,livre,histoire,bibliothèque,image,album,titre,bande dessinée,conte,dictionnaire,magazine,catalogue,page,ligne,mot,enveloppe,étiquette,affiche,alphabet,appareil,caméscope,cassette,cédé,cédérom,chaîne,chanson,chiffre,contraire,différence,doigt,écran,film,fois,idée,instrument,intrus,lettre,liste,magnétoscope,main,micro,modèle,musique,nom,nombre,orchestre,ordinateur,photo,point,poster,pouce,prénom,question,radio,sens,tambour,télécommande,téléphone,télévision,trait,trompette,voix,xylophone,zéro,ami,attention,camarade,colère,copain,coquin,dame,directeur,directrice,droit,effort,élève,enfant,fatigue,faute,fille,garçon,gardien,madame,maître,maîtresse,mensonge,ordre,personne,retard,sourire,travail,arrosoir,assiette,balle,bateau,bouchon,bouteille,bulles,canard,casserole,cuillère,cuvette,douche,entonnoir,gouttes,litre,moulin,pluie,poisson,pont,pot,roue,sac,plastique,saladier,seau,tablier,tasse,trous,verre,anorak,arc,bagage,baguette,barbe,bonnet,botte,bouton,bretelle,cagoule,casque,casquette,ceinture,chapeau,chaussette,chausson,chaussure,chemise,cigarette,col,collant,couronne,cravate,culotte,écharpe,épée,fée,flèche,fusil,gant,habit,jean,jupe,lacet,laine,linge,lunettes,magicien,magie,maillot,manche,manteau,mouchoir,moufle,nœud,paire,pantalon,pied,poche,prince,pull-over,pyjama,reine,robe,roi,ruban,semelle,soldat,sorcière,tache,taille,talon,tissu,tricot,uniforme,valise,veste,vêtement,aiguille,ampoule,avion,bois,bout,bricolage,bruit,cabane,clou,crochet,élastique,ficelle,fil,marionnette,marteau,métal,mètre,morceau,moteur,objet,outil,planche,plâtre,scie,tournevis,vis,voiture,véhicule,accident,aéroport,auto,camion,engin,feu,frein,fusée,garage,gare,grue,hélicoptère,moto,panne,parking,pilote,pneu,quai,train,virage,vitesse,voyage,wagon,zigzag,acrobate,arrêt,arrière,barre,barreau,bord,bras,cerceau,chaises,cheville,chute,cœur,corde,corps,côté,cou,coude,cuisse,danger,doigts,dos,échasses,échelle,épaule,équipe,escabeau,fesse,filet,fond,genou,gymnastique,hanche,jambes,mains,milieu,montagne,muscle,numéro,ongle,parcours,pas,passerelle,pente,peur,pieds,plongeoir,poignet,poing,pont de singe,prises,rivière des crocodiles,roulade,saut,serpent,sport,suivant,tête,toboggan,tour,trampoline,tunnel,ventre,bagarre,balançoire,ballon,bande,bicyclette,bille,cadenas,cage à écureuil,cerf-volant,château,coup,cour,course,échasse,flaque,paix,pardon,partie,pédale,pelle,pompe,préau,raquette,rayon,sable,sifflet,signe,tas,tricycle,tuyau,vélo,allumette,anniversaire,appétit,beurre,coquille,crêpes,croûte,dessert,envie,faim,fève,four,galette,gâteau,goût,invitation,langue,lèvres,liquide,louche,mie,moitié,moule,odeur,œuf,part,pâte,pâtisserie,recette,rouleau,sel,soif,tarte,tranche,yaourt,glaçon,jus,kiwi,lame,mûre,noyau,paille,pamplemousse,râpe,bassine,cocotte,épluchure,légume,pomme de terre,rondelle,soupe,consommé,potage,arête,frite,gobelet,jambon,os,poulet,purée,radis,restaurant,sole,animal,bébés,bouche,cage,câlin,caresse,foin,graines,hamster,lapin,maison,nez,œil,oreille,patte,toit,yeux,abeille,agneau,aile,âne,arbre,bain,barque,bassin,bébé,bec,bête,bœuf,botte de foin,boue,bouquet,bourgeon,branche,caillou,campagne,car,champ,chariot,chat,cheminée,cheval,chèvre,chien,cochon,colline,coq,coquelicot,crapaud,cygne,départ,dindon,escargot,étang,ferme,fermier,flamme,fleur,fontaine,fumée,grain,graine,grenouille,griffe,guêpe,herbe,hérisson,insecte,jardin,mare,marguerite,miel,morceau de pain,mouche,mouton,oie,oiseau,pierre,pigeon,plante,plume,poney,poule,poussin,prairie,rat,rivière,route,tortue,tracteur,tulipe,vache,vétérinaire,aigle,animaux,aquarium,bêtes,cerf,chouette,cigogne,crocodile,dauphin,éléphant,girafe,hibou,hippopotame,kangourou,lion,loup,ours,panda,panthère,perroquet,phoque,renard,requin,rhinocéros,singe,tigre,zèbre,zoo,épingle,bâton,bêtise,bonhomme,bottes,canne,cauchemar,cri,danse,déguisement,dinosaure,drapeau,en argent,en or,en rang,fête,figure,géant,gens,grand-mère,grand-père,joie,joue,journaux,maquillage,masque,monsieur,moustache,ogre,princesse,rue,trottoir,Noël,boule,cadeau,canne à pêche,chance,guirlande,humeur,papillon,spectacle,surprise,trou,visage,âge,an,année,après-midi,calendrier,début,dimanche,été,étoile,fin,heure des mamans,heure,hiver,horloge,jeudi,jour,journée,lumière,lundi,lune,mardi,matin,mercredi,midi,minuit,minute,mois,moment,montre,nuit,ombre,pendule,retour,réveil,saison,samedi,semaine,soir,soleil,temps,univers,vacances,vendredi,air,arc-en-ciel,brouillard,ciel,éclair,flocon,goutte,hirondelle,luge,neige,nuage,orage,ouragan,parapluie,parasol,ski,tempête,thermomètre,tonnerre,traîneau,vent,balai,biscuit,boisson,bol,bonbon,céréale,confiture,coquetier,couteau,couvercle,couvert,cuisine,cuisinière,désordre,dînette,éponge,évier,fourchette,lait,lave-linge,lessive,machine,nappe,pain,pile,plat,plateau,poêle,réfrigérateur,repas,tartine,torchon,vaisselle,argent,aspirateur,bague,barrette,bijou,bracelet,brosse,cadre,canapé,chambre,cheveu,chiffon,cil,coffre,coffret,collier,couette,coussin,couverture,dent,dentifrice,drap,fauteuil,fer à repasser,frange,glace,lampe,ménage,or,oreiller,parfum,peigne,pouf,poupée,poussette,poussière,shampoing,sourcil,trésor,tube,vase,adulte,amour,baiser,bavoir,biberon,bisou,caprice,cimetière,cousin,cousine,crèche,fils,frère,grand-parent,homme,femme,jumeau,maman,mari,mariage,mère,papa,parent,père,petit-enfant,petit-fils,petite-fille,rasoir,sœur,ambulance,bosse,champignon,dentiste,docteur,fièvre,front,gorge,infirmier,infirmière,jambe,larme,médecin,menton,ordonnance,pansement,peau,piqûre,poison,sang,santé,squelette,araignée,brouette,chenille,coccinelle,fourmi,jonquille,lézard,pâquerette,rangée,râteau,rosé,souris,taupe,terrain,terre,terrier,tige,ver,portière,billet,farce,grimace,grotte,pays,regard,ticket,bûche,buisson,camp,chasseur,châtaigne,chemin,chêne,corbeau,écorce,écureuil,forêt,gourde,lac,loupe,lutin,marron,moustique,muguet,nid,paysage,pin,rocher,sapin,sommet,tente,adresse,appartement,ascenseur,balcon,boucherie,boulanger,boulangerie,boutique,bus,caniveau,caravane,carrefour,cave,charcuterie,cinéma,cirque,cloche,clocher,clown,coiffeur,colis-route,courrier,croix,église,embouteillage,endroit,essence,facteur,fleuriste,foire,hôpital,hôtel,immeuble,incendie,laisse,magasin,manège,médicament,moineau,monde,monument,ouvrier,palais,panneau,paquet,parc,passage,pharmacie,pharmacien,piscine,place,police,policier,pompier,poste,promenade,quartier,square,timbre,travaux,usine,village,ville,voisin,volet,abricot,ail,aliment,ananas,banane,bifteck,café,carotte,cerise,chocolat,chou,citron,citrouille,clémentine,concombre,coquillage,corbeille,crabe,crevette,endive,farine,fraise,framboise,fromage,fruit,haricot,huile,marchand,melon,monnaie,navet,noisette,noix,nourriture,oignon,orange,panier,pâtes,pêche,persil,petit pois,poire,poireau,pomme,prix,prune,queue,raisin,riz,salade,sucre,thé,tomate,viande,vin,baleine,bouée,île,jumelles,marin,mer,mouette,navire,pêcheur,plage,port,sardine,vague,voile"; | |
const words = dict.split(",").filter(function(item, pos, self) { | |
// remove duplicates. | |
return self.indexOf(item) == pos; | |
}); | |
console.log('Dict count:', dict.split(",").length); | |
console.log('Word count:', words.length); | |
const Generator = function (wordContainer) { | |
const usedIndices = []; | |
return { | |
next: function () { | |
let newWord; | |
if (usedIndices.length === words.length) { | |
wordContainer.textContent = "Tous les mots ont été utilisés, recharge la page!"; | |
} else { | |
while (!newWord) { | |
const index = Math.floor(Math.random() * words.length); | |
if (usedIndices.indexOf(index) === -1) { | |
newWord = words[index]; | |
usedIndices.push(index); | |
wordContainer.innerHTML = `<div class="word">${newWord}</div> | |
<div class="used-word-counter">${usedIndices.length} mot${usedIndices.length > 1 ? 's':''} utilisé${usedIndices.length > 1 ? 's':''} sur ${words.length}</div>`; | |
} | |
} | |
} | |
} | |
}; | |
}; | |
document.addEventListener("DOMContentLoaded", function (event) { | |
const button = document.querySelector("#generate-word"); | |
const gen = new Generator(document.querySelector("#word-wrapper")); | |
button.addEventListener("click", (e) => { | |
e.preventDefault(); | |
gen.next(); | |
}); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
body { | |
font-family: "Arial"; | |
display: flex; | |
flex-direction: column; | |
margin: 40vh auto; | |
} | |
.word-wrapper { | |
margin: 0 auto 16px; | |
text-align: center; | |
} | |
.word { | |
font-weight: bold; | |
font-size: 36px; | |
text-transform: capitalize; | |
margin-bottom: 16px; | |
} | |
.used-word-counter { | |
font-size: 20px; | |
font-weight: normal; | |
color: #333; | |
} | |
button { | |
width: 300px; | |
font-size: 24px; | |
padding: 1em; | |
margin: 0 auto 1.5em; | |
border-radius: 0.5em; | |
border: none; | |
background-color: deeppink; | |
color: white; | |
font-weight: bold; | |
} | |
/* Hiding class, making content visible only to screen readers but not visually */ | |
/* "sr" meaning "screen-reader" */ | |
.sr-only:not(:focus):not(:active) { | |
clip: rect(0 0 0 0); | |
clip-path: inset(50%); | |
height: 1px; | |
overflow: hidden; | |
position: absolute; | |
white-space: nowrap; | |
width: 1px; | |
} | |
.new-word { | |
display: none; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment