Want to make creations as awesome as this one?

Transcript

Eh mais je connais ce dessin animé! On l'avait regardé avec mes cousins chez mes grands-parents l'année dernière. C'est l'histoire de Merlin, un magicien qui aide le jeune Arthur à devenir roi de Bretagne.

Apparemment, beaucoup de légendes existent sur le roi Arthur. Allons voir ce que nous pouvons trouver.

En mode allongé devant la TV

Le début de l'histoire du roi Arthur (revoir la présentation)

5

2

1

6

7

3

Ouh là là! Il y avait beaucoup d'informations.Est-ce que tu peux m'aider à remettre de l'ordre dans tout cela?

4

Le Graal est présenté aux chevaliers.

Merlin crée la table ronde.

Arthur retire Excalibur de son rocher.

Merlin éduque Arthur en cachette.

Uterpendragon rejoint Ygerne dans son lit sous l'apparence de son mari, le duc de Cornouaille.

Armée d'Excalibur, Arthur se livre à des batailles pour repousser les assaillants.

Arthur épouse Guenièvre.

Mais qui est réellement Merlin? Il semble être un personnage incontournable des légendes arthuriennes.

Audio d'intro présentant le tableau sur l'histoire de Merlin

Audio d'intro présentant le tableau sur l'histoire de Merlin

audio qui se déclenche automatiquement

bravo

audio

Très bien

audio

Super

audio

Quel sens de l'observation !

audio

Et oui.

audio

Bravo

audio

Bien joué !

audio

C'est bien cela.

audio

Félicitations !

audio

Très bien.

Bravo

audio

En mode allongé devant la TV

Merlin était donc un enfant exceptionnel à la destinée hors du commun...

"Pour ses nobles seigneurs dont chacun s'estimait le meilleur et dont nul ne savait qui était le moins bon, Arthur fit faire la Table ronde sur laquelle les Bretons racontent bien des récits. Les seigneurs y prenaient place, tous chevaliers, tous égaux."*

*Wace, Le Roman de Brut, ca. 1155

Assis en tailleur en train de lire un gros livre

C'est donc de là que vient la légende de la table ronde !

*Wace, Le Roman de Brut, ca. 1155

Passe ta souris sur l'image pour en découvrir un peu plus sur cette scène.

Le siège périlleux. Je suis réservé à un seul chevalier. Celui qui mettra fin aux aventures du royaume d'Arthur. Gare à celui qui s'assied sur moi s'il n'est pas l'élu !

Galaad Je suis le fils de Lancelot et le seul à pouvoir m'asseoir sur le siège périlleux. Mon nom y est d'ailleurs inscrit.

Les écuyers Nous assurons le service. Sur cette enluminure, nous sommes beaucoup plus petits que les chevaliers afin de bien marquer la hiérarchie sociale.

J'attends patiemment que quelques miettes de nourriture tombent.

L'écuyer tranchant. J'assure le service à la table ronde et je suis en charge de découper les viandes.

Il n'y a donc qu'un seul chevalier qui peut s'asseoir sur le siège Périlleux!Te souviens-tu de son nom?Moi j'ai un doute.

Pour revoir l'image

air surpris ou songeur...

Bravo

Pour introduire la cérémonie de l'adoubement

Et si moi je voulais être chevalier, tu crois que je pourrais?J'ai entendu parler d'une cérémonie très spéciale : l'adoubement.

Vérification

Écoute cet enregistrement puis place dans la colonne beige, tous les éléments nécessaires à l'adoubement.

Pour introduire les blasons

C'est bien joli tout ça, mais une fois que l'on est chevalier et que l'on doit porter son heaume, comment est-ce que l'on se reconnait sur le champ de bataille?

Armoiries et blasons

Qu'est-ce qu'un blason?

Représentés sur les écus (boucliers) ou sur les housses de chevaux, les blasons (ou armoiries) sont les symboles d'un territoire. Tous les soldats d'un seigneur portent son blason.Le blason est avant tout lié à la guerre. Il permet de se distinguer mais sert aussi à rallier les troupes et à identifier les chefs dans les batailles. En effet, au XIIe siècle, le combattant, recouvert de sa cotte de maille et de son casque, est difficilement reconnaissable; sur le champ de bataille, il est indispensable d'identifier ses amis et ses ennemis, et d'être reconnu par les autres combattants. Quand la bataille bat son plein, le blason sert à afficher dans quel camp on est, un peu comme le maillot pour le joueur de football.Le blason permet donc de révéler l'identité et la personnalité d'un individu.Pendant les batailles et les tournois, un homme appelé "héraut d'armes" vérifie que les blasons sont authentiques et uniques. On les rassemble dans des livres appelés armoriaux. L'étude de ces blasons, appelée l'héraldique, commence réellement au XIIIe siècle. Un grand nombre de compagnons de la Table ronde ont un blason : on les trouve sur les peintures qui décorent les manuscrits du Moyen Âge, sur les tapisseries, les sculptures et les gravures.

Comment lire un blason? Les couleurs du blason ont des significations.Elles peuvent symboliser des carractéristiques contraires et une même idée peut être évoquée par des couleurs différentes.

Les couleurs regroupent 5 émaux, 2 métaux et 2 fourrures

gueules

sable

azur

sinople

pourpre

or

argent

vair

hermine

Sur les blasons, on trouve des figures héraldiques, appelées meubles :Ce sont les figures que l'on trouve sur les blasons. Elles représentent des animaux, des humains, des végétaux ou des images venues de légendes, par exemple le lion, l'aigle, l'ours, la croix, la fleur de lys ...

Le blason obéit à certaines règles ...

  • le blason est strictement personnel
  • le blason doit être très facilement identifiable
  • si le fond est en métal, les figures sont en couleur
  • si le fond est en couleur, les figures sont en métal
  • pour lire un blason, on identifie d'abord la couleur de l'écu, puis les figures.

Comment appelle-t-on l'étude de la science des blasons?

Armorial

Héraldique

Blasonnement

Sauras-tu reconnaître ces chevaliers à leur blason?

  • Yvain : d'azur au lion d'or.
  • Arthur : d'azur à trois couronnes d'or.
  • Perceval : de pourpre semé de croisttes d'or.
  • Galaad : d'argent à la croix de gueules.
  • Lancelot : d'argent à trois bandes de gueules.
  • Gauvain : de pourpre à l'aigle bicéphale d'or, becquée et membrée de gueules.
  • Palamède : échiqueté de sable et d'argent.
  • Keu : d'azur à deux clefs d'argent adossées et posées en pal.
  • Tristan : de sinople au lion d'or.

Sauras-tu reconnaître ces chevaliers à leur blason?

  • Yvain : d'azur au lion d'or.
  • Arthur : d'azur à trois couronnes d'or.
  • Perceval : de pourpre semé de croisttes d'or.
  • Galaad : d'argent à la croix de gueules.
  • Lancelot : d'argent à trois bandes de gueules.
  • Gauvain : de pourpre à l'aigle bicéphale d'or, becquée et membrée de gueules.
  • Palamède : échiqueté de sable et d'argent.
  • Keu : d'azur à deux clefs d'argent adossées et posées en pal.
  • Tristan : de sinople au lion d'or.

Sauras-tu reconnaître ces chevaliers à leur blason?

  • Yvain : d'azur au lion d'or.
  • Arthur : d'azur à trois couronnes d'or.
  • Perceval : de pourpre semé de croisttes d'or.
  • Galaad : d'argent à la croix de gueules.
  • Lancelot : d'argent à trois bandes de gueules.
  • Gauvain : de pourpre à l'aigle bicéphale d'or, becquée et membrée de gueules.
  • Palamède : échiqueté de sable et d'argent.
  • Keu : d'azur à deux clefs d'argent adossées et posées en pal.
  • Tristan : de sinople au lion d'or.

Sauras-tu reconnaître ces chevaliers à leur blason?

  • Yvain : d'azur au lion d'or.
  • Arthur : d'azur à trois couronnes d'or.
  • Perceval : de pourpre semé de croisttes d'or.
  • Galaad : d'argent à la croix de gueules.
  • Lancelot : d'argent à trois bandes de gueules.
  • Gauvain : de pourpre à l'aigle bicéphale d'or, becquée et membrée de gueules.
  • Palamède : échiqueté de sable et d'argent.
  • Keu : d'azur à deux clefs d'argent adossées et posées en pal.
  • Tristan : de sinople au lion d'or.

Sauras-tu reconnaître ces chevaliers à leur blasons?

  • Yvain : d'azur au lion d'or.
  • Arthur : d'azur à trois couronnes d'or.
  • Perceval : de pourpre semé de croisttes d'or.
  • Galaad : d'argent à la croix de gueules.
  • Lancelot : d'argent à trois bandes de gueules.
  • Gauvain : de pourpre à l'aigle bicéphale d'or, becquée et membrée de gueules.
  • Palamède : échiqueté de sable et d'argent.
  • Keu : d'azur à deux clefs d'argent adossées et posées en pal.
  • Tristan : de sinople au lion d'or.

Sauras-tu reconnaître ces chevaliers à leur blasons?

  • Yvain : d'azur au lion d'or.
  • Arthur : d'azur à trois couronnes d'or.
  • Perceval : de pourpre semé de croisttes d'or.
  • Galaad : d'argent à la croix de gueules.
  • Lancelot : d'argent à trois bandes de gueules.
  • Gauvain : de pourpre à l'aigle bicéphale d'or, becquée et membrée de gueules.
  • Palamède : échiqueté de sable et d'argent.
  • Keu : d'azur à deux clefs d'argent adossées et posées en pal.
  • Tristan : de sinople au lion d'or.

Sauras-tu reconnaître ces chevaliers à leur blasons?

  • Yvain : d'azur au lion d'or.
  • Arthur : d'azur à trois couronnes d'or.
  • Perceval : de pourpre semé de croisttes d'or.
  • Galaad : d'argent à la croix de gueules.
  • Lancelot : d'argent à trois bandes de gueules.
  • Gauvain : de pourpre à l'aigle bicéphale d'or, becquée et membrée de gueules.
  • Palamède : échiqueté de sable et d'argent.
  • Keu : d'azur à deux clefs d'argent adossées et posées en pal.
  • Tristan : de sinople au lion d'or.

Sauras-tu reconnaître ces chevaliers à leur blasons?

  • Yvain : d'azur au lion d'or.
  • Arthur : d'azur à trois couronnes d'or.
  • Perceval : de pourpre semé de croisttes d'or.
  • Galaad : d'argent à la croix de gueules.
  • Lancelot : d'argent à trois bandes de gueules.
  • Gauvain : de pourpre à l'aigle bicéphale d'or, becquée et membrée de gueules.
  • Palamède : échiqueté de sable et d'argent.
  • Keu : d'azur à deux clefs d'argent adossées et posées en pal.
  • Tristan : de sinople au lion d'or.

Sauras-tu reconnaître ces chevaliers à leur blasons?

  • Yvain : d'azur au lion d'or.
  • Arthur : d'azur à trois couronnes d'or.
  • Perceval : de pourpre semé de croisttes d'or.
  • Galaad : d'argent à la croix de gueules.
  • Lancelot : d'argent à trois bandes de gueules.
  • Gauvain : de pourpre à l'aigle bicéphale d'or, becquée et membrée de gueules.
  • Palamède : échiqueté de sable et d'argent.
  • Keu : d'azur à deux clefs d'argent adossées et posées en pal.
  • Tristan : de sinople au lion d'or.

Les tournois

Le maniement des armes est au coeur de la vie des chevaliers. Le tournoi est une merveilleuse occasion pour s'entraîner à la guerre et pour faire valoir ses quallités faces aux seigneurs et à leurs belles dames. Le tournoi est le plus souvent mêlé, c'est-à-dire que des troupes adverses se combattent comme à la guerre sauf qu'on n'y tue pas ses adversaires.

Reconstitue une image de tournoi, au choix, en assemblant les pièces du puzzle.Clique sur l'ampoule si tu souhaites le faire avec le modèle.

Pour passer à la suite

  • 5
  • 4
  • oui

Bravo

  • 5
  • 4
  • oui

Bravo

  • 5
  • 4
  • oui

Bravo

  • 5
  • 4
  • oui

Bravo

Parmi tous ces vaillants chevaliers, un se distingue particulièrement. Il s'agit de Lancelot. Regarde cette courte vidéo qui te raconte son histoire

Maintenant, à toi de déterminer si ces affirmations sont vraies ou fausses

Lancelot a été élevé par Merlin

vrai

faux

En effet, la fée Viviane, aussi appelée Dame du lac enlève le jeune Lancelot pour l’élever comme son propre fils, et faire de lui un chevalier digne du Graal.

Et non, c'est la fée Viviane, amie de Merlin, qui enlève le jeune Lancelot pour l’élever comme son propre fils, et faire de lui un chevalier digne du Graal.

Il est considéré comme le meilleur chevalier du monde

vrai

faux

C'est vrai.Lancelot s'illustre aussi bien sur le champ de bataille que dans les tournois, que ce soit à cheval ou au corps à corps.

Son amour pour la reine Guenièvre l'empêchera d'achever sa quête

vrai

faux

En effet, malgré sa bravoure et ses exploits, l'amour que Lancelot porte à la reine Guenièvre le détournera de la quête du Graal.

C'est pourtant vrai.Malgré sa bravoure et ses exploits, l'amour que Lancelot porte à la reine Guenièvre le détournera de la quête du Graal.

Son fils Galaad trouvera le Graal

vrai

faux

C'est bien vrai.Galaad, fils de Lancelot s'est montré le plus vertueux des chevaliers et donc le seul à pouvoir rejoindre le Christ au ciel.

Mais c'est quoi le Graal ? On en parle tout le temps dans les légendes arthuriennes.

Audio d'intro présentant le tableau

Bravo

Très bien !

Félicitations !

Super

Il faut grouper l'élément "image pour le puzzle" avec l'image à reconstituer. La taille du groupe formé par ces deux éléments déterminera la taille de votre puzzle. Par ailleurs, les pièces du puzzle apparaitront aléatoirement dans cet espace au chargement de la page

Ce groupe formé par un élément scripté et une liste à puce permet de définir le nombre de pièces du puzzle ainsi que l'aspect des pièces.

nombre de pièces en largeur

nombre de pièces en hauteur

oui :

non :

L'élément "Gagné" est à grouper avec quelque chose (image, forme genially, texte, ...). Cela apparaîtra une fois le puzzle complet.

Contient le script du puzzle, à laisser sur la page

<div class="nePasRetirerPuzzle" style="background-color:orange;"> A ne pas retirer, contient le script du puzzle - PIECES SANS BRODURE </div> <script> var inEditor = (window.location.pathname.split("/")[1]=="editor" ? true : false); const limite=5; function getViewItem(objet) { var trouve=false; while(!trouve) { objet=objet.parentNode; if (objet==null) { trouve=true; } else if (objet.getAttribute("class")!=null) { if (objet.getAttribute("class").slice(0,18)=="genially-view-item") { trouve =true; } } } return objet; } function getAnimatedItem(objet) { var trouve=false; while(!trouve) { objet=objet.parentNode; if (objet==null) { trouve=true; } else if (objet.getAttribute("class")!=null) { if (objet.getAttribute("class").slice(0,25) == "genially-animated-wrapper") { trouve =true; } } } return objet; } if (!inEditor) { var NPR = document.querySelector(".nePasRetirerPuzzle"); NPR.setAttribute("class","fini"); NPR.style.display="none"; var divConsignesPuzzle = document.querySelector(".consignesPuzzle"); divConsignesPuzzle.setAttribute("class","fini"); divConsignesPuzzle.innerHTML=""; var groupeConsignes = getViewItem(divConsignesPuzzle); groupeConsignes.style.display="none"; var lignesConsignes = groupeConsignes.getElementsByTagName("li"); var nbColonnes=parseInt(lignesConsignes[0].innerText); var nbLignes=parseInt(lignesConsignes[1].innerText); var piecesLisses = (lignesConsignes[2].innerText=="oui" ? false : true); var divImagePuzzle = document.querySelector(".imagePuzzle"); divImagePuzzle.setAttribute("class","fini"); divImagePuzzle.innerHTML=""; var groupeImagePuzzle=getAnimatedItem(divImagePuzzle); var racine=groupeImagePuzzle.parentNode; var largeurPuzzle=groupeImagePuzzle.offsetWidth; var hauteurPuzzle=groupeImagePuzzle.offsetHeight; var coinGauche=groupeImagePuzzle.offsetLeft; var coinHaut=groupeImagePuzzle.offsetTop; var indexZ = groupeImagePuzzle.style.zIndex; var imageConsigne=groupeImagePuzzle.getElementsByTagName("img").item(0); imageConsigne.onload=imageChargee; var divGagne=document.querySelectorAll(".gagnePuzzle"); var groupeGagne=[]; divGagne.forEach(elt=> { elt.setAttribute("class","fini"); elt.innerHTML=""; let groupe=getViewItem(elt); groupeGagne.push(groupe); groupe.style.display="none"; }); var pieces=[]; var moveActif=-1; var xAppel; var yAppel; function imageChargee() { var largeurConsigne=imageConsigne.naturalWidth; var hauteurConsigne=imageConsigne.naturalHeight; for (var j=0;j<nbLignes;j++) { for (var i=0;i<nbColonnes;i++) { let newDiv = document.createElement("div"); let gauche=coinGauche+i*largeurPuzzle/nbColonnes; let haut=coinHaut+j*hauteurPuzzle/nbLignes; let largeur=largeurPuzzle/nbColonnes; let hauteur=hauteurPuzzle/nbLignes; let xStartOri=i/nbColonnes*largeurConsigne; let yStartOri=j/nbLignes*hauteurConsigne; let largeurOri=largeurConsigne/nbColonnes; let hauteurOri=hauteurConsigne/nbLignes; if (!piecesLisses) { if (i<nbColonnes-1) { largeur*=1.2; largeurOri*=1.2; } if (j<nbLignes-1) { hauteur*=1.2; hauteurOri*=1.2; } } newDiv.setAttribute("style","position:absolute;left:"+ gauche +"px;top:" + haut +"px;height:" + hauteur + "px;width:" + largeur +"px;z-index:"+ indexZ +";"); let newPattern = document.createElement("canvas"); newPattern.height=hauteur; newPattern.width=largeur; let patternCtx=newPattern.getContext('2d'); patternCtx.drawImage(imageConsigne,xStartOri,yStartOri,largeurOri,hauteurOri,0,0,largeur,hauteur); let newCanvas = document.createElement("canvas"); newCanvas.height=hauteur; newCanvas.width=largeur; let ctx=newCanvas.getContext('2d'); newDiv.appendChild(newPattern); newDiv.appendChild(newCanvas); racine.appendChild(newDiv); largeur=largeurPuzzle/nbColonnes, hauteur=hauteurPuzzle/nbLignes, pieces.push({ physique:newDiv, pattern:newPattern, ctx:ctx, largeur:largeur, hauteur:hauteur, appartenance:i+j*nbColonnes, bougeant:false, xStart:gauche, yStart:haut, gDSize:largeur*0.15, gDelta:hauteur*0.12, gRMid:hauteur/2.4, dDSize:largeur*0.15, dDelta:hauteur*0.12, dRMid:hauteur/2.4, hDSize:hauteur*0.15, hDelta:largeur*0.12, hRMid:largeur/2.4, hDSize:hauteur*0.15, bDelta:largeur*0.12, bRMid:largeur/2.4 }); } } for (var i=0;i<pieces.length;i++) { if (i%nbColonnes!=nbColonnes-1) { var alea = (Math.random()*9+10)/100; pieces[i].dDSize=alea*pieces[i].largeur; pieces[i+1].gDSize=alea*pieces[i].largeur; alea = (Math.random()*10+5)/100; pieces[i].dDelta=alea*pieces[i].hauteur; pieces[i+1].gDelta=alea*pieces[i].hauteur; alea = (Math.random()*0.6+0.2); pieces[i].dRMid=alea*pieces[i].hauteur; pieces[i+1].gRMid=alea*pieces[i].hauteur; } if (i<pieces.length-nbColonnes) { var alea = (Math.random()*9+10)/100; pieces[i].bDSize=alea*pieces[i].hauteur; pieces[i+nbColonnes].hDSize=alea*pieces[i].hauteur; alea = (Math.random()*10+5)/100; pieces[i].bDelta=alea*pieces[i].largeur; pieces[i+nbColonnes].hDelta=alea*pieces[i].largeur; alea = (Math.random()*0.6+0.2); pieces[i].bRMid=alea*pieces[i].largeur; pieces[i+nbColonnes].hRMid=alea*pieces[i].largeur; } } for (var i=0;i<pieces.length;i++) { var pattern = pieces[i].ctx.createPattern(pieces[i].pattern,"no-repeat"); pieces[i].ctx.fillStyle=pattern; pieces[i].ctx.beginPath(); pieces[i].ctx.lineWidth = 0.1; pieces[i].ctx.strokeStyle = "#000000"; pieces[i].ctx.moveTo(0,0); if (!piecesLisses &&i>=nbColonnes) { pieces[i].ctx.lineTo(pieces[i].hRMid-pieces[i].hDelta,0); pieces[i].ctx.bezierCurveTo(pieces[i].hRMid,0.3*pieces[i].hDSize,pieces[i].hRMid-2*pieces[i].hDelta,0.10*pieces[i].hauteur,pieces[i].hRMid,pieces[i].hDSize); pieces[i].ctx.bezierCurveTo(pieces[i].hRMid+2*pieces[i].hDelta,0.10*pieces[i].hauteur,pieces[i].hRMid,0.3*pieces[i].hDSize,pieces[i].hRMid+pieces[i].hDelta,0); } pieces[i].ctx.lineTo(pieces[i].largeur,0); if (!piecesLisses && i%nbColonnes!=nbColonnes-1) { pieces[i].ctx.lineTo(pieces[i].largeur,pieces[i].dRMid-pieces[i].dDelta); pieces[i].ctx.bezierCurveTo(pieces[i].largeur+0.3*pieces[i].dDSize,pieces[i].dRMid+0.5*pieces[i].dDelta,1.10*pieces[i].largeur,pieces[i].dRMid-2*pieces[i].dDelta,pieces[i].largeur+pieces[i].dDSize,pieces[i].dRMid); pieces[i].ctx.bezierCurveTo(1.10*pieces[i].largeur,pieces[i].dRMid+2*pieces[i].dDelta,pieces[i].largeur+0.3*pieces[i].dDSize,pieces[i].dRMid-0.5*pieces[i].dDelta,pieces[i].largeur,pieces[i].dRMid+pieces[i].dDelta); } pieces[i].ctx.lineTo(pieces[i].largeur,pieces[i].hauteur); if (!piecesLisses&&i<pieces.length-nbColonnes) { pieces[i].ctx.lineTo(pieces[i].bRMid+pieces[i].bDelta,pieces[i].hauteur); pieces[i].ctx.bezierCurveTo(pieces[i].bRMid,pieces[i].hauteur+0.3*pieces[i].bDSize,pieces[i].bRMid+2*pieces[i].bDelta,1.10*pieces[i].hauteur,pieces[i].bRMid,pieces[i].hauteur+pieces[i].bDSize); pieces[i].ctx.bezierCurveTo(pieces[i].bRMid-2*pieces[i].bDelta,1.10*pieces[i].hauteur,pieces[i].bRMid,pieces[i].hauteur+0.3*pieces[i].bDSize,pieces[i].bRMid-pieces[i].bDelta,pieces[i].hauteur); } pieces[i].ctx.lineTo(0,pieces[i].hauteur); if (!piecesLisses&&i%nbColonnes!=0) { pieces[i].ctx.lineTo(0,pieces[i].gRMid+pieces[i].gDelta); pieces[i].ctx.bezierCurveTo(0.3*pieces[i].gDSize,pieces[i].gRMid-0.5*pieces[i].gDelta,0.10*pieces[i].largeur,pieces[i].gRMid+2*pieces[i].gDelta,pieces[i].gDSize,pieces[i].gRMid); pieces[i].ctx.bezierCurveTo(0.10*pieces[i].largeur,pieces[i].gRMid-2*pieces[i].gDelta,0.3*pieces[i].gDSize,pieces[i].gRMid+0.5*pieces[i].gDelta,0,pieces[i].gRMid-pieces[i].gDelta); } pieces[i].ctx.lineTo(0,0); pieces[i].ctx.fill(); pieces[i].ctx.stroke(); pieces[i].pattern.style.display="none"; } pieces.forEach(function (elt,indice) { elt.physique.addEventListener('mousedown',function (evt) {enfonce(evt,indice)}); elt.physique.addEventListener('touchstart',function (evt) {enfonceTactile(evt,indice)}); elt.physique.addEventListener('touchmove',function (evt) {tactileDeplace(evt,indice)}); elt.physique.addEventListener('touchend',function (evt) {tactileFin()}); elt.physique.addEventListener('touchleave',function (evt) {tactileFin()}); }); groupeImagePuzzle.style.display="none"; shuffle(); } function shuffle() { var xMin=coinGauche; var xMax=coinGauche+largeurPuzzle*(nbColonnes-1)/nbColonnes; var yMin=coinHaut; var yMax=coinHaut+hauteurPuzzle*(nbLignes-1)/nbLignes; pieces.forEach(elt=> { let alea=Math.random()*(xMax-xMin)+xMin; elt.physique.style.left=alea+"px"; alea=Math.random()*(yMax-yMin)+yMin; elt.physique.style.top=alea+"px"; }); } function enfonce(evt,qui) { evt.preventDefault(); moveActif=qui; xAppel=evt.clientX; yAppel=evt.clientY; for (var i=0;i<pieces.length;i++) { if (pieces[i].appartenance==pieces[qui].appartenance) { pieces[i].bougeant=true; pieces[i].xStart=pieces[i].physique.offsetLeft; pieces[i].yStart=pieces[i].physique.offsetTop; } else { pieces[i].bougeant=false; } } } function enfonceTactile(evt,qui) { if (moveActif==-1) { evt.preventDefault(); moveActif=qui; xAppel=evt.changedTouches[0].clientX; yAppel=evt.changedTouches[0].clientY; for (var i=0;i<pieces.length;i++) { if (pieces[i].appartenance==pieces[qui].appartenance) { pieces[i].bougeant=true; pieces[i].xStart=pieces[i].physique.offsetLeft; pieces[i].yStart=pieces[i].physique.offsetTop; } else { pieces[i].bougeant=false; } } } } document.addEventListener('mouseup',function() { moveActif=-1; }); function tactileFin() { moveActif=-1; } document.addEventListener('mousemove',sourisDeplace) function sourisDeplace(evt) { if (moveActif>-1) { var contours=racine.getBoundingClientRect(); var deltaX=(xAppel-evt.clientX)/contours.width*1200; var deltaY=(yAppel-evt.clientY)/contours.height*675; pieces.forEach(function (elt,indice) { if (elt.bougeant) { elt.physique.style.left=(elt.xStart-deltaX)+"px"; elt.physique.style.top=(elt.yStart-deltaY)+"px"; } }); pieces.forEach(function (elt,indice) { if (elt.bougeant) { checkForNeighbours(indice,evt.clientX,evt.clientY); } }); } } function tactileDeplace(evt) { if (moveActif>-1) { var contours=racine.getBoundingClientRect(); var deltaX=(xAppel-evt.changedTouches[0].clientX)/contours.width*1200; var deltaY=(yAppel-evt.changedTouches[0].clientY)/contours.height*675; pieces.forEach(function (elt,indice) { if (elt.bougeant) { elt.physique.style.left=(elt.xStart-deltaX)+"px"; elt.physique.style.top=(elt.yStart-deltaY)+"px"; } }); pieces.forEach(function (elt,indice) { if (elt.bougeant) { checkForNeighbours(indice,evt.changedTouches[0].clientX,evt.changedTouches[0].clientY); } }); } } function checkForNeighbours(numero,x,y) { if (numero%nbColonnes>0) { if ((Math.abs(pieces[numero].physique.offsetLeft-pieces[numero].largeur-pieces[numero-1].physique.offsetLeft)<limite) && (Math.abs(pieces[numero].physique.offsetTop-pieces[numero-1].physique.offsetTop)<limite) && !pieces[numero-1].bougeant) { pieces[numero-1].physique.style.left=(pieces[numero].physique.offsetLeft-pieces[numero].largeur)+"px"; pieces[numero-1].physique.style.top=pieces[numero].physique.offsetTop+"px"; repositionGroupe(numero-1); xAppel=x; yAppel=y; pieces[numero-1].bougeant=true; return; } } if (numero%nbColonnes<nbColonnes-1) { if ((Math.abs(pieces[numero].physique.offsetLeft+pieces[numero].largeur-pieces[numero+1].physique.offsetLeft))<limite && (Math.abs(pieces[numero].physique.offsetTop-pieces[numero+1].physique.offsetTop)<limite)&& !pieces[numero+1].bougeant) { pieces[numero+1].physique.style.left=(pieces[numero].physique.offsetLeft+pieces[numero].largeur)+"px"; pieces[numero+1].physique.style.top=pieces[numero].physique.offsetTop+"px"; repositionGroupe(numero+1); xAppel=x; yAppel=y; pieces[numero+1].bougeant=true; return; } } if (numero>=nbColonnes) { if (Math.abs(pieces[numero].physique.offsetLeft-pieces[numero-nbColonnes].physique.offsetLeft)<limite && Math.abs(pieces[numero].physique.offsetTop-pieces[numero-nbColonnes].physique.offsetTop-pieces[numero].hauteur)<limite && !pieces[numero-nbColonnes].bougeant) { pieces[numero-nbColonnes].physique.style.left=pieces[numero].physique.offsetLeft+"px"; pieces[numero-nbColonnes].physique.style.top=(pieces[numero].physique.offsetTop-pieces[numero].hauteur)+"px"; repositionGroupe(numero-nbColonnes); xAppel=x; yAppel=y; pieces[numero-nbColonnes].bougeant=true; return; } } if (numero<pieces.length-nbColonnes) { if (Math.abs(pieces[numero].physique.offsetLeft-pieces[numero+nbColonnes].physique.offsetLeft)<limite && Math.abs(pieces[numero].physique.offsetTop-pieces[numero+nbColonnes].physique.offsetTop+pieces[numero].hauteur)<limite && !pieces[numero+nbColonnes].bougeant) { pieces[numero+nbColonnes].physique.style.left=pieces[numero].physique.offsetLeft+"px"; pieces[numero+nbColonnes].physique.style.top=(pieces[numero].physique.offsetTop+pieces[numero].hauteur)+"px"; repositionGroupe(numero+nbColonnes); xAppel=x; yAppel=y; pieces[numero+nbColonnes].bougeant=true; return; } } } function switchAppartenance(transfuge) { pieces.forEach(elt=> { if (elt.appartenance==transfuge) { elt.appartenance=moveActif; } }); pieces.forEach(elt=> { elt.xStart=elt.physique.offsetLeft; elt.yStart=elt.physique.offsetTop; }); checkGagne(); } function checkGagne() { var premier=pieces[0].appartenance; var cBon=true; for (var i=1;i<pieces.length;i++) { if (pieces[i].appartenance!=premier) { cBon=false; } } if (cBon) { groupeGagne.forEach(elt=>elt.style.display="block"); } } function repositionGroupe(refferent) { var xRef=pieces[refferent].physique.offsetLeft; var yRef=pieces[refferent].physique.offsetTop; for (var i=0;i<pieces.length;i++) { if (pieces[i].appartenance==pieces[refferent].appartenance) { pieces[i].physique.style.left=xRef+(i%nbColonnes - refferent%nbColonnes)*pieces[0].largeur+"px"; pieces[i].physique.style.top=yRef+(Math.floor(i/nbColonnes)-Math.floor(refferent/nbColonnes))*pieces[0].hauteur+"px"; } } switchAppartenance (refferent); } } </script>

OU

  • 5
  • 4
  • oui