Bonjour,
Je veux ajouter une méthode à l'objet Array de JS. Cette méthode trie un tableau, avec un tri par sélection et affiche l'évolution du tri à l'aide de canvas. Le code est le suivant:
...
...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Array.prototype.echange=function(i,j){ var t=this[i] this[i]=this[j] this[j]=t return this }
...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Array.prototype.visuel=function(ctx,w,h){ ctx.clearRect(0,0,w,h); var qx=w/this.length var qy=h/this.max() for (var i=0; i<this.length; i++) { ctx.beginPath() ctx.arc(qx/2+i*qx,qy/2+ this[i]*qy,1,0,2*Math.PI,true) ctx.stroke() } }
Toutes mes méthodes fonctionnent sauf la dernière... Il y a un problème avec setTimeout ... et après des heures de recherche, je ne trouve toujours pas ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Array.prototype.triVisuel=function(ctx,w,h){ var aux=this aux.visuel(ctx,w,h) var c=1 for (var i=0; i<aux.length-1; i++) { for (var j=i+1; j<aux.length; j++) { var min=i if (aux[j]<aux[min]) { min=j } aux=aux.echange(i,min) setTimeout(function(){return function(aux){aux.visuel(ctx,w,h)};},100*c); c++ } } }
Merci pour votre aide,
Partager