diff --git a/Bachir.html b/Bachir.html
new file mode 100755
index 0000000..e546fa3
--- /dev/null
+++ b/Bachir.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+ Joyeux anniversaire
+
+
+
+
+
+
+
+
Joyeux Anniversaire!!!!!!!!!!
+
Joyeux Anniversaire!!!!!!!!!!
+

+
Joyeux Anniversaire!!!!!!!!!!
+
+
+
+ Joyeux Anniversaire!!!!!!!!!!
+ Joyeux Anniversaire!!!!!!!!!!
+ Joyeux Anniversaire!!!!!!!!!!
+ Joyeux Anniversaire!!!!!!!!!!
+ Joyeux Anniversaire!!!!!!!!!!
+ Joyeux Anniversaire!!!!!!!!!!
+ Joyeux Anniversaire!!!!!!!!!!
+ Joyeux Anniversaire!!!!!!!!!!
+ Joyeux Anniversaire!!!!!!!!!!
+ Joyeux Anniversaire!!!!!!!!!!
+ Joyeux Anniversaire!!!!!!!!!!
+
+
+
+
+
+
diff --git a/allmight.jpg b/allmight.jpg
new file mode 100755
index 0000000..73ee154
Binary files /dev/null and b/allmight.jpg differ
diff --git a/plusultra.png b/plusultra.png
new file mode 100755
index 0000000..8f48a3e
Binary files /dev/null and b/plusultra.png differ
diff --git a/script.js b/script.js
new file mode 100755
index 0000000..f8beeac
--- /dev/null
+++ b/script.js
@@ -0,0 +1,169 @@
+let canvas = document.getElementById('scene');
+let ctx = canvas.getContext("2d");
+
+
+let resizeCanvas = () => {
+ canvas.width = window.innerWidth;
+ canvas.height = window.innerHeight;
+}
+resizeCanvas()
+
+
+let onResize = (event) => {
+ resizeCanvas()
+}
+
+window.addEventListener('resize', onResize);
+
+// ctx.fillStyle = "green";
+// ctx.fillRect(300, 300, 100, 100);
+
+
+
+
+class Boule {
+ constructor(x, y, s) {
+ // this.x = x;
+ // this.y = y;
+ this.pos = {
+ x: x,
+ y: y
+ }
+ this.size = s
+ this.vx = -2+Math.random()*4;
+ this.vy = -2+Math.random()*4;
+ // this.color = 'hsl(360, 50%, 50%)'
+ this.color = {
+ h:360,
+ s:50,
+ l:50
+ }
+ this.img = new Image();
+ this.img.src = "allmight.jpg";
+
+ }
+
+
+
+ draw(){
+ // console.log('draw', this);
+ // ctx.beginPath();
+ // ctx.fillStyle = `hsl(${this.color.h},${this.color.s}%,${this.color.l}%)`;
+ // ctx.arc(this.pos.x, this.pos.y, this.size, 0, 2 * Math.PI);
+ // // ctx.fillRect(300, 300, 100, 100);
+ // ctx.fill();
+ // ctx.closePath();
+
+ // this.img.onload = () => {
+ // // console.log('img, x, y', this.img, this.pos.x, this.pos.y);
+ ctx.drawImage(this.img, this.pos.x, this.pos.y, 4*this.size, 8*this.size);
+ // }
+
+
+
+ }
+
+ move(){
+ this.pos.x += this.vx;
+ this.pos.y += this.vy;
+
+ if(this.pos.x >= canvas.width || this.pos.x <= 0){
+ this.vx *= -1;
+ }
+ if(this.pos.y >= canvas.height || this.pos.y <= 0){
+ this.vy *= -1;
+ }
+
+ this.draw();
+ }
+}
+
+
+
+
+let boules = [];
+let maboule;
+function createBoule(){
+ maboule = new Boule(
+ canvas.width / 2, // Math.random()*canvas.width,
+ canvas.height / 2, // Math.random()*canvas.height,
+ 10+Math.random()*30
+ );
+ maboule.draw();
+ boules.push(maboule);
+}
+
+// for (let index = 0; index < 10000; index++) {
+ // createBoule();
+// }
+
+setInterval(()=>{
+ createBoule();
+}, 2500)
+
+let anime = () => {
+ ctx.clearRect(0,0, canvas.width, canvas.height)
+ // boules.forEach((boule_a) => {
+ for (let i = 0; i < boules.length; i++) {
+ let boule_a = boules[i];
+ for (let j = i+1; j < boules.length; j++) {
+ let boule_b = boules[j];
+ // distance entre les centre des boules
+ let dist = Math.sqrt(
+ Math.pow(boule_b.pos.x - boule_a.pos.x, 2) +
+ Math.pow(boule_b.pos.y - boule_a.pos.y, 2)
+ );
+ // console.log('dist', dist);
+
+ if(dist < boule_a.size+boule_b.size){
+ // console.log('ça touche');
+
+ // distance inferieure a la somme des deux rayons
+ // ça touche
+ // boule_a.vx *= -1;
+ // boule_a.vy *= -1;
+ // boule_b.vx *= -1;
+ // boule_b.vy *= -1;
+
+ nx = (boule_b.pos.x - boule_a.pos.x)/dist;
+ ny = (boule_b.pos.y - boule_a.pos.y)/dist;
+
+ vA_n = boule_a.vx*nx + boule_a.vy*ny
+ vB_n = boule_b.vx*nx + boule_b.vy*ny
+
+ boule_a.vx += (vB_n - vA_n) * nx
+ boule_a.vy += (vB_n - vA_n) * ny
+ boule_b.vx += (vA_n - vB_n) * nx
+ boule_b.vy += (vA_n - vB_n) * ny
+ boule_a.move();
+ boule_b.move();
+ }
+ }
+ boule_a.move();
+ }
+
+
+
+ window.requestAnimationFrame(anime);
+}
+
+window.requestAnimationFrame(anime);
+
+
+let onMouseMove = (event) => {
+ // console.log('event', event);
+ // h 0 -> 360
+ // x 0 -> canvas.width
+ let h = 360 * (event.x / canvas.width);
+ // console.log('h', h);
+
+ let s = 100 * (event.y / canvas.height)
+ console.log('s', s);
+
+ boules.forEach(boule => {
+ boule.color.h = h;
+ boule.color.s = s;
+ });
+}
+
+window.addEventListener('mousemove', onMouseMove);
\ No newline at end of file
diff --git a/sparkle-sparkles.gif b/sparkle-sparkles.gif
new file mode 100755
index 0000000..3ce543a
Binary files /dev/null and b/sparkle-sparkles.gif differ
diff --git a/yagi-toshinori.gif b/yagi-toshinori.gif
new file mode 100755
index 0000000..3586806
Binary files /dev/null and b/yagi-toshinori.gif differ