diff --git a/Passes-retour-designConnexion/Connexion.html b/Passes-retour-designConnexion/Connexion.html
deleted file mode 100644
index d49fdca..0000000
--- a/Passes-retour-designConnexion/Connexion.html
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Passes-retour-designConnexion/floating-labels.css b/Passes-retour-designConnexion/floating-labels.css
deleted file mode 100644
index 17dd368..0000000
--- a/Passes-retour-designConnexion/floating-labels.css
+++ /dev/null
@@ -1,124 +0,0 @@
-html,
-body {
-
- height: 100%;
-}
-
-body {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- padding-top: 40px;
- padding-bottom: 40px;
- background-color: #f5f5f5;
-}
-
-.form-signin {
- width: 100%;
- max-width: 420px;
- padding: 15px;
- margin: auto;
-}
-
-.form-label-group {
- position: relative;
- margin-bottom: 3rem;
-}
-
-.form-label-group input,
-.form-label-group label {
- height: 3.125rem;
- padding: .75rem;
-}
-
-.form-label-group label {
- position: absolute;
- top: 0;
- left: 0;
- display: block;
- width: 100%;
- margin-bottom: 0;
- line-height: 1.5;
- color: #495057;
- pointer-events: none;
- cursor: text;
- border: 1px solid transparent;
- border-radius: .25rem;
- transition: all .1s ease-in-out;
-}
-
-.form-label-group input::-webkit-input-placeholder {
- color: transparent;
-}
-
-.form-label-group input::-moz-placeholder {
- color: transparent;
-}
-
-.form-label-group input:-ms-input-placeholder {
- color: transparent;
-}
-
-.form-label-group input::-ms-input-placeholder {
- color: transparent;
-}
-
-.form-label-group input::placeholder {
- color: transparent;
-}
-
-.form-label-group input:not(:-moz-placeholder-shown) {
- padding-top: 1.25rem;
- padding-bottom: .25rem;
-}
-
-.form-label-group input:not(:-ms-input-placeholder) {
- padding-top: 1.25rem;
- padding-bottom: .25rem;
-}
-
-.form-label-group input:not(:placeholder-shown) {
- padding-top: 1.25rem;
- padding-bottom: .25rem;
-}
-
-.form-label-group input:not(:-moz-placeholder-shown) ~ label {
- padding-top: .25rem;
- padding-bottom: .25rem;
- font-size: 12px;
- color: #777;
-}
-
-.form-label-group input:not(:-ms-input-placeholder) ~ label {
- padding-top: .25rem;
- padding-bottom: .25rem;
- font-size: 12px;
- color: #777;
-}
-
-.form-label-group input:not(:placeholder-shown) ~ label {
- padding-top: .25rem;
- padding-bottom: .25rem;
- font-size: 12px;
- color: #777;
-}
-
-/* Fallback for Edge
--------------------------------------------------- */
-@supports (-ms-ime-align: auto) {
- .form-label-group {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-direction: column-reverse;
- flex-direction: column-reverse;
- }
-
- .form-label-group label {
- position: static;
- }
-
- .form-label-group input::-ms-input-placeholder {
- color: #777;
- }
-}
diff --git a/Passes-retour-designConnexion/rectest.js b/Passes-retour-designConnexion/rectest.js
deleted file mode 100644
index 8a3d697..0000000
--- a/Passes-retour-designConnexion/rectest.js
+++ /dev/null
@@ -1,584 +0,0 @@
-// get canvas related references
-var canvas = document.getElementById("terrain");
-var ctx = canvas.getContext("2d");
-var BB = canvas.getBoundingClientRect();
-var offsetX = BB.left;
-var offsetY = BB.top;
-canvas.width = window.innerWidth*0.74;
-var lt = canvas.width;
-canvas.height = lt*0.536;
-var ht = canvas.height;
-var WIDTH = canvas.width;
-var HEIGHT = canvas.height;
-
-// drag related variables
-var dragok = false;
-var startX;
-var startY;
-
-//variable pour donner le ballon
-var ball = false;
-var nbball=0;
-var nba = 0;
-var nbb = 0;
-
-
-//variable pour faire une passe
-var nbjpass = 0;
-var passable = false;
-// array de cercle de joueurs
-var joueurs = [];
-// array de cercle d'adversaire
-var adversaire = [];
-// array de passes
-var passes = [];
-// array de numero de joueur pour créér la passe
-var jpass = [];
-// array d'action pour pouvoir supprimer la derniere
-var last = [];
-// listen for mouse events
-canvas.onmousedown = myDown;
-canvas.onmouseup = myUp;
-canvas.onmousemove = myMove;
-
-// call to draw the scene
-draw();
-
-// draw a single rect
-function rect(x, y, w, h) {
- ctx.beginPath();
- ctx.rect(x, y, w, h);
- ctx.closePath();
- ctx.fill();
-}
-
-function cercle(x,y,z,a,b,c,g) {
- ctx.fillStyle = g;
- ctx.beginPath();
- ctx.arc(x,y,z,a,b,c);
- ctx.fill();
-}
-
-function ligne(a,b,c,d){
- ctx.beginPath();
- ctx.moveTo(a, b);
- ctx.lineTo(c, d);
- ctx.lineWidth= 3;
- ctx.stroke();
-}
-
-// clear the canvas
-function clear() {
- ctx.clearRect(0, 0, WIDTH, HEIGHT);
-}
-
-// redraw the scene
-function draw() {
- clear();
- ctx.fillStyle = "#FAF7F8";
- rect(0, 0, WIDTH, HEIGHT);
- faireterrain();
- // redraw each rect in the rects[] array
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if(r.setball == true){
- r.fill = "green";
- }
- else{
- r.fill = "red";
- }
- ctx.fillStyle = r.fill;
- cercle(r.x,r.y,r.rayon,r.cache,r.taille,r.last,r.fill);
-
- }
- for (var i = 0; i < adversaire.length; i++) {
- var r = adversaire[i];
- if(r.setball == true){
- r.fill = "green";
- }
- ctx.fillStyle = r.fill;
- cercle(r.x,r.y,r.rayon,r.cache,r.taille,r.last);
- }
- for (var i = 0; i < jpass.length-1; i=i+2) {
- var r = jpass[i];
- var z = jpass[i+1];
- nbjpass=0;
- fairepasse(r,z);
- }
- for(var i = 0; i < passes.length; i++) {
- var r = passes[i];
- ligne(r.x.x,r.x.y,r.x2.x,r.y2.y);
- }
-}
-
-
-// handle mousedown events
-function myDown(e) {
-
- // tell the browser we're handling this mouse event
- e.preventDefault();
- e.stopPropagation();
-
- // get the current mouse position
- var mx = parseInt(e.clientX - offsetX);
- var my = parseInt(e.clientY - offsetY);
- //console.log(mx);
- //console.log(my);
- //console.log(ball);
-
- if(ball == true){
- dragok = false;
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- // if yes, set that rects isDragging=true
- document.body.style.cursor = 'pointer';
- dragok = true;
- if (nbball == 0){
- r.setball = true;
- r.gottheball = true;
- nbball = nbball + 1;
- last.push({
- action : 3,
- });
- console.log(last);
- }
- else
- window.alert("Un seul ballon sur le terrain");
- ball = false;
- draw();
- }
- }
- for (var i = 0; i < adversaire.length; i++) {
- var r = adversaire[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- // if yes, set that rects isDragging=true
- document.body.style.cursor = 'pointer';
- dragok = true;
- if (nbball == 0){
- r.setball = true;
- r.gottheball = true;
- nbball = nbball + 1;
- last.push({
- action : 4,
- })
- }
- else
- window.alert("Un seul ballon sur le terrain");
- ball = false;
- draw();
- }
- }
- ball = false;
- }
-
- if(passable == true ){
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- // if yes, set that rects isDragging=true
- document.body.style.cursor = 'pointer';
- if (nbjpass == 0){
- if(r.gottheball == false){
- passable = false;
- console.log(nbjpass);
- nbjpass = 0;
- window.alert("Seulement un joueur qui possede le ballon a un moment peut faire une passe")
- }
- else
- {
- r.gottheball = false;
- addj(i);
- nbjpass=nbjpass+1;
- console.log(nbjpass);
- }
- }
- else{
-
- r.gottheball = true;
- addj(i);
- nbjpass=nbjpass+1;
- console.log(nbjpass);
- }
-
- if(nbjpass % 2 == 0){
- console.log(nbjpass % 2 );
- passable=false;
- draw();
- }
- }
- }
-}
-
-else {
- dragok = false;
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- // if yes, set that rects isDragging=true
- document.body.style.cursor = 'pointer';
- dragok = true;
- r.isDragging = true;
- }
- }
- for (var i = 0; i < adversaire.length; i++) {
- var r = adversaire[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- // if yes, set that rects isDragging=true
- document.body.style.cursor = 'pointer';
- dragok = true;
- r.isDragging = true;
- }
- }
-}
- // save the current mouse position
- startX = mx;
- startY = my;
-}
-
-
-// handle mouseup events
-function myUp(e) {
- // tell the browser we're handling this mouse event
- e.preventDefault();
- e.stopPropagation();
-
- // clear all the dragging flags
- document.body.style.cursor = 'default';
- dragok = false;
- for (var i = 0; i < joueurs.length; i++) {
- joueurs[i].isDragging = false;
- }
- for (var i = 0; i < adversaire.length; i++) {
- adversaire[i].isDragging = false;
- }
-}
-
-
-// handle mouse moves
-function myMove(e) {
- // if we're dragging anything...
- if (dragok) {
-
- // tell the browser we're handling this mouse event
- e.preventDefault();
- e.stopPropagation();
-
- // get the current mouse position
- var mx = parseInt(e.clientX - offsetX);
- var my = parseInt(e.clientY - offsetY);
-
- // calculate the distance the mouse has moved
- // since the last mousemove
- var dx = mx - startX;
- var dy = my - startY;
-
- // move each rect that isDragging
- // by the distance the mouse has moved
- // since the last mousemove
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if (r.isDragging) {
- r.x += dx;
- r.y += dy;
- }
- }
- for (var i = 0; i < adversaire.length; i++) {
- var r = adversaire[i];
- if (r.isDragging) {
- r.x += dx;
- r.y += dy;
- }
- }
-
- // redraw the scene with the new rect positions
- draw();
-
- // reset the starting mouse position for the next mousemove
- startX = mx;
- startY = my;
-
- }
-}
-
-
-function ajouterjoueur() {
-
- if (joueurs.length >= 5)
- window.alert("Nombre de joueurs maximum atteint");
- else {
- joueurs.push({
- x: 60,
- y: 35 + ((joueurs.length + 1) * 50),
- rayon: 20,
- cache: 0,
- taille: Math.PI*2,
- last: false,
- fill: "red",
- isDragging: false,
- setball : false,
- gottheball : false,
- });
- last.push({
- action : 1,
- });
- console.log(last);
- cercle(60,35 + (joueurs.length * 50),20,0,Math.PI*2,false,"red");
- }
-}
-
-function ajouteradversaire() {
-
- console.log(adversaire.length);
- if (adversaire.length >= 5)
- window.alert("Nombre d'adversaire maximum atteint");
- else {
- adversaire.push({
- x: 560,
- y: 35 + ((adversaire.length + 1) * 50),
- rayon: 20,
- cache: 0,
- taille: Math.PI*2,
- last: false,
- fill: "black",
- isDragging: false,
- setball : false
- });
- last.push({
- action : 2,
- });
- console.log(last);
- cercle(560,35 + (adversaire.length * 50),20,0,Math.PI*2,false,"black");
- }
-}
-
-function fairepasse(a,b) {
- console.log(a);
- console.log(b);
- passes.push({
- x: joueurs[a.c],
- y: joueurs[a.c],
- x2 : joueurs[b.c],
- y2 : joueurs[b.c],
- });
- // console.log("passe stp");
- jpass.pop();
- jpass.pop();
- last.push({
- action : 5,
- depart : a.c,
- arrivé : b.c,
- });
- console.log(last);
- ligne(joueurs[a.c].x,joueurs[a.c].y,joueurs[b.c].x,joueurs[b.c].y);
-;
-}
-
-
-function faireterrain() {
- ctx.lineWidth="5";
-
-//Bordures du terrain
-ctx.beginPath();
-ctx.rect(0, 0, lt, ht);
-ctx.stroke();
-
-
-ctx.lineWidth="2";
-//Ligne centrale
-ctx.beginPath();
-ctx.moveTo(lt/2, ht);
-ctx.lineTo(lt/2, 0);
-ctx.stroke();
-
-//Cercle central
-ctx.beginPath();
-ctx.arc(lt/2, ht/2, lt*0.064, 0, Math.PI*2, false);
-ctx.stroke();
-
-
-/* RAQUETTES */
-//Rectangle raquette gauche
-ctx.beginPath();
-ctx.rect(0, ht/3, lt*0.208, ht/3);
-ctx.stroke();
-
-//Rectangle raquette droite
-ctx.beginPath();
-ctx.rect(lt-lt*0.208, ht/3, lt-lt*0.208, ht/3);
-ctx.stroke();
-
-//Cercle raquette gauche
-ctx.beginPath();
-ctx.arc(lt*0.208, ht/2, lt*0.064, 1.5*Math.PI, 0.5*Math.PI, false);
-ctx.stroke();
-
-//Cercle raquette droite
-ctx.beginPath();
-ctx.arc(lt-(lt*0.208), ht/2, lt*0.064, 0.5*Math.PI, 1.5*Math.PI, false);
-ctx.stroke();
-
-
-/* LIGNES LANCERS FRANCS */
-//Ligne lf 1 gauche
-ctx.beginPath();
-ctx.moveTo(0, 0.06*ht);
-ctx.lineTo(lt*0.075, 0.06*ht);
-ctx.stroke();
-
-//Ligne lf 2 gauche
-ctx.beginPath();
-ctx.moveTo(0, 0.94*ht);
-ctx.lineTo(lt*0.075, 0.94*ht);
-ctx.stroke();
-
-// Cercle lf gauche
-ctx.beginPath();
-ctx.arc(lt*0.063, ht/2, ht*0.44, 1.5*Math.PI, 0.5*Math.PI, false);
-ctx.stroke();
-
-
-//Ligne lf 1 droite
-ctx.beginPath();
-ctx.moveTo(lt, 0.06*ht);
-ctx.lineTo(lt*0.925, 0.06*ht);
-ctx.stroke();
-
-//Ligne lf 2 droite
-ctx.beginPath();
-ctx.moveTo(lt, 0.94*ht);
-ctx.lineTo(lt*0.925, 0.94*ht);
-ctx.stroke();
-
-//Cercle lf droite
-ctx.beginPath();
-ctx.arc(lt*0.937, ht/2, lt*0.236, 0.5*Math.PI, 1.5*Math.PI, false);
-ctx.stroke();
-
-
-/* PANIERS */
-//Cercle panier gauche
-ctx.beginPath();
-ctx.arc(lt*0.063, ht/2, ht*0.083, 1.5*Math.PI, 0.5*Math.PI, false);
-ctx.stroke();
-
-//Panier gauche
-ctx.beginPath();
-ctx.moveTo(lt*0.06, ht*0.44);
-ctx.lineTo(lt*0.06, ht*0.56);
-ctx.stroke();
-
-ctx.beginPath();
-ctx.arc(lt*0.072, ht/2, ht*0.01, 0, Math.PI*2, false);
-ctx.stroke();
-
-ctx.beginPath();
-ctx.moveTo(lt*0.06, ht/2);
-ctx.lineTo(lt*0.067, ht/2);
-ctx.stroke();
-
-
-//Cercle panier droit
-ctx.beginPath();
-ctx.arc(lt-lt*0.063, ht/2, ht*0.083, 0.5*Math.PI, 1.5*Math.PI, false);
-ctx.stroke();
-
-//Panier droit
-ctx.beginPath();
-ctx.moveTo(lt-lt*0.06, ht-ht*0.44);
-ctx.lineTo(lt-lt*0.06, ht-ht*0.56);
-ctx.stroke();
-
-ctx.beginPath();
-ctx.arc(lt-lt*0.072, ht/2, ht*0.01, 0, Math.PI*2, false);
-ctx.stroke();
-
-ctx.beginPath();
-ctx.moveTo(lt-lt*0.06, ht-ht/2);
-ctx.lineTo(lt-lt*0.067, ht-ht/2);
-ctx.stroke();
-
-}
-
-
-
-
-function triggerdonnerlaballe(){
- ball = true;
- console.log(ball);
-}
-
-function triggerfairepasse(){
- if(joueurs.length < 2){
- window.alert("On ne peut faire une passe si on a pas 2 joueurs")
- }
- else{
- passable = true;
- console.log(passable);
- }
-}
-
-function addj(a){
- jpass.push({
- c : a,
- });
-}
-
-function retourarriere(){
-
- console.log(last);
- console.log("allo");
- x = last.length;
- if(x == 0){
- window.alert("Vous ne pouvez revenir en arriere")
- }
- else{
- if(last[x-1].action == 1){
- joueurs.pop();
- last.pop();
- draw();
- }
- if(last[x-1].action == 2){
- adversaire.pop();
- last.pop();
- draw();
- }
- if(last[x-1].action == 3){
-
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if(r.setball == true){
- r.setball = false;
- nbball = nbball - 1;
- last.pop();
- draw();
- }
- }
- }
-
- if(last[x-1].action == 4){
-
- for (var i = 0; i < adversaire.length; i++) {
- var r = adversaire[i];
- if(r.setball = true){
- r.setball = false;
- nbball = nbball - 1;
- last.pop();
- draw();
- }
- }
- }
- if(last[x-1].action == 5){
- joueurs[last[x-1].arrivé].gottheball = false;
- joueurs[last[x-1].depart].gottheball = true;
- last.pop();
- passes.pop();
- draw();
-
- }
- }
-
- }
-
-
-
diff --git a/SOUTENANCE/ballon.png b/SOUTENANCE/ballon.png
deleted file mode 100644
index 2661c95..0000000
Binary files a/SOUTENANCE/ballon.png and /dev/null differ
diff --git a/SOUTENANCE/basket.css b/SOUTENANCE/basket.css
deleted file mode 100644
index 0a4b15b..0000000
--- a/SOUTENANCE/basket.css
+++ /dev/null
@@ -1,177 +0,0 @@
-#barre_nav{
- background: black;
- height: 56px;
- /*padding-top: 5px;*/
- vertical-align: center;
-}
-
-#titre{
- font-family: "Lucida Console", Courier, monospace;
- text-shadow: white 0 -1px;
-}
-
-#navbarSupportedContent{
- margin: 8px;
-}
-
-.nav-item:hover{
- background-color: orange;
- border-radius: 10px;
- width: 70%;
-}
-
-#image_ballon{
- margin-bottom: 5px;
-}
-
-body{
- background-color: #303030;
- overflow-x: scroll;
- overflow-y: scroll;
-}
-
-.collapse.width,
-.collapsing.width {
- max-width: 0;
- min-width: 0;
- width: 0;
- transition: all .2s ease;
-}
-
-.collapse .flex-column {
- overflow: auto;
- flex-wrap: nowrap; /* Optional, if you don't want the links to form columns if they overflow */
-}
-
-.collapse .flex-column li {
- width: 100%;
-}
-
-.feather {
- width: 16px;
- height: 16px;
- vertical-align: text-bottom;
-}
-
-
-.sidebar {
- width: 20%;
- margin-top: 56px;
- position: fixed;
- top: 0;
- bottom: 0;
- right: 0;
- z-index: 100; /* Behind the navbar */
- padding: 48px 0 0; /* Height of navbar */
- box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1);
- background-color: #b9b7b7;
-}
-
-@media (max-width: 767.98px) {
- .sidebar {
- top: 5rem;
- }
-}
-
-.sidebar-sticky {
- position: relative;
- top: 0;
- height: calc(100vh - 48px);
- padding-top: .5rem;
- overflow-x: hidden;
- overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
-}
-
-@supports ((position: -webkit-sticky) or (position: sticky)) {
- .sidebar-sticky {
- position: -webkit-sticky;
- position: sticky;
- }
-}
-
-.sidebar .nav-link {
- font-weight: 500;
- color: #333;
-}
-
-.sidebar .nav-link .feather {
- margin-right: 4px;
- color: #999;
-}
-
-.sidebar .nav-link.active {
- color: #007bff;
-}
-
-.sidebar .nav-link:hover .feather,
-.sidebar .nav-link.active .feather {
- color: inherit;
-}
-
-.sidebar-heading {
- font-size: .75rem;
- text-transform: uppercase;
-}
-#list-home-list{
- height: 50px;
- width: 49%;
-}
-#ul{
- padding-left: 15px;
- padding-right: 15px;
-}
-#list-home-list{
- padding-right:10px;
- width: 99%
-}
-#bouton{
- margin-left: 15px;
-}
-#arbre{
- height: 150px;
- width: 80%;
-}
-
-#sidebarMenu{
- min-width: 50px;
-}
-
-#terrain{
- margin-top: 2%;
- margin-left: 5%;
- width: 75%;
- height: auto;
-}
-
-#demiTerrainDroit{
- margin-top: 2%;
- margin-left: 20%;
- width: 75%;
- height: auto;
-}
-
-#demiTerrainGauche{
- margin-top: 2%;
- margin-left: 20%;
- width: 75%;
- height: auto;
- /*transform: rotate(90deg);*/
-}
-
-.boutons {
- margin-top: 1%;
-}
-
-#bouttonadd: hover {
- background-color : "red";
- border-color: "yellow";
-}
-
-#bouttonadd:active{
-box-shadow: 1px 1px 10px black inset, 0 1px 0 rgba( 255, 255, 255, 0.4);
-}
-
-.red {
- background-color: "red";
- margin-left: 15%;
-}
\ No newline at end of file
diff --git a/SOUTENANCE/basket.html b/SOUTENANCE/basket.html
deleted file mode 100644
index 014bb0a..0000000
--- a/SOUTENANCE/basket.html
+++ /dev/null
@@ -1,245 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
Basket
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SOUTENANCE/fleche_droite.png b/SOUTENANCE/fleche_droite.png
deleted file mode 100644
index 96b1798..0000000
Binary files a/SOUTENANCE/fleche_droite.png and /dev/null differ
diff --git a/SOUTENANCE/fleche_gauche.png b/SOUTENANCE/fleche_gauche.png
deleted file mode 100644
index 2e12d68..0000000
Binary files a/SOUTENANCE/fleche_gauche.png and /dev/null differ
diff --git a/SOUTENANCE/rectest.js b/SOUTENANCE/rectest.js
deleted file mode 100644
index b15d9ed..0000000
--- a/SOUTENANCE/rectest.js
+++ /dev/null
@@ -1,1413 +0,0 @@
-// get canvas related references
-var canvas = document.getElementById("terrain");
-var ctx = canvas.getContext("2d");
-var le_contexte = canvas.getContext("2d");
-var BB = canvas.getBoundingClientRect();
-var offsetX = BB.left;
-var offsetY = BB.top;
-canvas.width = window.innerWidth*0.74;
-var lt = canvas.width;
-canvas.height = lt*0.536;
-var ht = canvas.height;
-var WIDTH = canvas.width;
-var HEIGHT = canvas.height;
-var buttonPNG = document.getElementById('btn-download');
-var buttonPDF = document.getElementById('btn-downloadpdf')
-
-// drag related variables
-var dragok = false;
-var startX;
-var startY;
-
-//variable pour donner le ballon
-var ball = false;
-var nbball=0;
-var nba = 0;
-var nbb = 0;
-
-//variable pour les tirs
-var tirable = false;
-var nbtir = 0;
-//variable pour les zones d'influence
-var nbzone = 0;
-//array de points pour dessiner la zone d'influence
-var zone = [];
-var zonable = false;
-var nbpoints = 0;
-
-//variable pour editer zone d influence et mouvements
-var edit = false;
-
-//variable pour creer des deplacements
-var bouge = false;
-var nbptsdep = 0;
-var currentdep = 0;
-var deple = [];
-var nbbase = 0;
-var deplacement = [];
-var depdeu = [];
-var nbdepdeu =0;
-
-var dribblement = [];
-var nbptsdib = 0;
-var drib = 0;
-var nbbased =0;
-var nbdrib = 0;
-//variable pour faire une passe
-var nbjpass = 0;
-var passable = false;
-var nbclicpass = 0;
-var dernierpass = null;
-// array de cercle de joueurs
-var joueurs = [];
-// array de cercle d'adversaire
-var adversaire = [];
-// array de passes
-var passes = [];
-// array de numero de joueur pour créér la passe
-var jpass = [];
-// array d'action pour pouvoir supprimer la derniere
-var last = [];
-// listen for mouse events
-canvas.onmousedown = myDown;
-canvas.onmouseup = myUp;
-canvas.onmousemove = myMove;
-
-// call to draw the scene
-draw();
-
-// draw a single rect
-function rect(x, y, w, h) {
- ctx.beginPath();
- ctx.rect(x, y, w, h);
- ctx.strokeStyle ="black";
- ctx.closePath();
- ctx.fill();
-}
-
-function cercle(x,y,z,a,b,c,g) {
- ctx.fillStyle = g;
- ctx.beginPath();
- ctx.strokeStyle ="black";
- ctx.arc(x,y,z,a,b,c);
- ctx.fill();
-}
-
-function cercleedit(x,y,z,a,b,c,g) {
- le_contexte.fillStyle = g;
- le_contexte.beginPath();
- le_contexte.arc(x,y,z,a,b,c);
- le_contexte.stroke();
- le_contexte.fill();
-}
-
-function lignePasse(a,b,c,d){
- var dx = c - a;
- var dy = d - b;
- var angle = Math.atan2(dy, dx);
- ctx.beginPath();
- ctx.setLineDash([ 9 , 15]);
- ctx.strokeStyle ="black";
- ctx.moveTo(a + 20 * Math.cos(angle) , b + 20 * Math.sin(angle));
- ctx.lineTo(c - 20 * Math.cos(angle), d - 20 * Math.sin(angle));
- ctx.stroke();
- canvas_arrow(ctx, a, b, c, d);
-}
-
-//Fonction permettant de dessiner la tête d'une flèche
-function canvas_arrow(context, fromx, fromy, tox, toy) {
- var headlen = 30; // length of head in pixels
- var dx = tox - fromx;
- var dy = toy - fromy;
- var angle = Math.atan2(dy, dx);
- context.beginPath();
- context.setLineDash([]);
- context.moveTo(tox - 20 * Math.cos(angle), toy - 20 * Math.sin(angle));
- context.lineTo(tox - 20 * Math.cos(angle) - headlen * Math.cos(angle - Math.PI / 6), toy - 20 * Math.sin(angle) - headlen * Math.sin(angle - Math.PI / 6));
- context.moveTo(tox - 20 * Math.cos(angle), toy - 20 * Math.sin(angle));
- context.lineTo(tox - 20 * Math.cos(angle) - headlen * Math.cos(angle + Math.PI / 6), toy - 20 * Math.sin(angle) - headlen * Math.sin(angle + Math.PI / 6));
- context.stroke();
-}
-
-function canvas_arrow2(context, fromx, fromy, tox, toy) {
- var headlen = 30; // length of head in pixels
- var dx = tox - fromx;
- var dy = toy - fromy;
- var angle = Math.atan2(dy, dx);
- context.setLineDash([]);
- context.moveTo(tox, toy);
- context.lineTo(tox - headlen * Math.cos(angle - Math.PI / 6), toy - headlen * Math.sin(angle - Math.PI / 6));
- context.moveTo(tox, toy);
- context.lineTo(tox - headlen * Math.cos(angle + Math.PI / 6), toy - headlen * Math.sin(angle + Math.PI / 6));
-}
-
-function ligne(a,b,c,d){
- ctx.beginPath();
- ctx.setLineDash([]);
- ctx.strokeStyle ="black";
- ctx.moveTo(a, b);
- ctx.lineTo(c, d);
- ctx.stroke();
-}
-
-function ligneTir(a,b,c,d){
- ctx.beginPath();
- ctx.setLineDash([2,5]);
- ctx.strokeStyle ="black";
- ctx.moveTo(a, b);
- ctx.lineTo(c, d);
- ctx.stroke();
-}
-
-// clear the canvas
-function clear() {
- ctx.clearRect(0, 0, WIDTH, HEIGHT);
-}
-
-// redraw the scene
-function draw() {
- clear();
- ctx.fillStyle = "#FAF7F8";
- rect(0, 0, WIDTH, HEIGHT);
- faireterrain();
- // redraw each rect in the rects[] array
- dribblage();
- /*if(depdeu.length > 0 && depdeu.length%2 ==0){
- depladeu();
- }*/
- if(currentdep == 1 || deplacement.length > 0){
- console.log("slt");
- deplacer();
- }
- if(nbzone == 1){
- zoner();
- }
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if(r.setball == true){
- r.fill = "green";
- if(r.tiring == true){
- ligneTir(r.x,r.y,lt-lt*0.072, ht/2);
- }
- }
- else{
- r.fill = "red";
- }
- ctx.fillStyle = r.fill;
- cercle(r.x,r.y,r.rayon,r.cache,r.taille,r.last,r.fill);
-
- }
- for (var i = 0; i < adversaire.length; i++) {
- var r = adversaire[i];
- if(r.setball == true){
- r.fill = "green";
- }
- ctx.fillStyle = r.fill;
- cercle(r.x,r.y,r.rayon,r.cache,r.taille,r.last);
- }
- for (var i = 0; i < jpass.length-1; i=i+2) {
- var r = jpass[i];
- var z = jpass[i+1];
- nbjpass=0;
- fairepasse(r,z);
- }
- for(var i = 0; i < passes.length; i++) {
- var r = passes[i];
- lignePasse(r.x.x,r.x.y,r.x2.x,r.y2.y);
- }
-}
-
-
-// handle mousedown events
-function myDown(e) {
-
- // tell the browser we're handling this mouse event
- e.preventDefault();
- e.stopPropagation();
-
- // get the current mouse position
- var mx = parseInt(e.clientX - offsetX);
- var my = parseInt(e.clientY - offsetY);
- console.log(mx);
- console.log(my);
-
- if(ball == true){
- dragok = false;
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- // if yes, set that rects isDragging=true
- document.body.style.cursor = 'pointer';
- dragok = true;
- if (nbball == 0){
- r.setball = true;
- r.gottheball = true;
- nbball = nbball + 1;
- last.push({
- action : 3,
- });
- untoggleDonner();
- }
- else
- window.alert("Un seul ballon sur le terrain");
- ball = false;
- draw();
- }
- }
- untoggleDonner();
-
- for (var i = 0; i < adversaire.length; i++) {
- var r = adversaire[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- // if yes, set that rects isDragging=true
- document.body.style.cursor = 'pointer';
- dragok = true;
- if (nbball == 0){
- r.setball = true;
- r.gottheball = true;
- nbball = nbball + 1;
- last.push({
- action : 4,
- })
- }
- else
- window.alert("Un seul ballon sur le terrain");
- ball = false;
- draw();
- }
- }
- ball = false;
- }
- if(edit == true){
- dragok = false;
- for (var i = 0; i < zone.length; i++) {
- var r = zone[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- document.body.style.cursor = 'pointer';
- dragok = true;
- r.isDragging = true;
-
- }
-
- }
- for (var i = 0; i < deple.length; i++) {
- var r = deple[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- document.body.style.cursor = 'pointer';
- dragok = true;
- r.isDragging = true;
- }
- }
-
- for (var i = 0; i < dribblement.length; i++) {
- var r = dribblement[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- document.body.style.cursor = 'pointer';
- dragok = true;
- r.isDragging = true;
- }
- }
-}
-
-
- if(bouge == true){
- if(nbptsdep%4 == 0){
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- document.body.style.cursor = 'pointer';
- deple.push({
- x : joueurs[i].x,
- y: joueurs[i].y,
- edit : false,
- rayon : joueurs[i].rayon,
- jbase : i,
- });
- /*depdeu.push({
- x : joueurs[i].x,
- y: joueurs[i].y,
- edit : false,
- rayon : joueurs[i].rayon,
- jbase : i,
- });*/
- r.sedeplace = true,
- nbptsdep = nbptsdep +1;
- nbbase = nbbase+1;
- // nbdepdeu = nbdepdeu +1;
- }
- }
- if(nbbase == 0){
- window.alert("Un deplacement doit partir d'un joueur");
- bouge = false;
- draw();
- untoggleDeplacer();
- }
- }
-
-
- else{
- g = mx;
- f = my;
- deple.push({
- x : g,
- y : f,
- edit : false,
- rayon : 15,
- isDragging : false,
- });
- /*if(nbdepdeu <2){
- depdeu.push({
- x : g,
- y : f,
- edit : false,
- rayon : 15,
- isDragging : false,
- });
- nbdepdeu = nbdepdeu +1;
- }*/
- nbptsdep = nbptsdep +1;
- cercle(mx,my,3,0,Math.PI*2,false,"black");
- if(nbptsdep%4 == 0){
- deplace();
- }
- }
- }
- if(drib == true){
- dragok = false;
- if(nbptsdib%4 == 0){
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- if(r.gottheball){
- document.body.style.cursor = 'pointer';
- dribblement.push({
- x : joueurs[i].x,
- y: joueurs[i].y,
- edit : false,
- rayon : joueurs[i].rayon,
- dbase : i,
- });
- r.dribbb = true,
- nbptsdib = nbptsdib +1;
- nbbased = nbbased+1;
-
- }
- if(r.gottheball == false){
- drib = false;
- window.alert("Seul un joueur qui a le ballon peu dribbler");
- draw();
- untoggleDribble();
-
- }
- }
- }
- if(nbbased == 0 && drib == true){
- window.alert("Un dribble doit partir d'un joueur");
- drib = false;
- draw();
- untoggleDribble();
- }
- }
-
-
- else{
- g = mx;
- f = my;
- dribblement.push({
- x : g,
- y : f,
- edit : false,
- rayon : 15,
- isDragging : false,
- });
- nbptsdib = nbptsdib +1;
- cercle(mx,my,3,0,Math.PI*2,false,"black");
- if(nbptsdib%4 == 0){
- dribble();
- }
- }
- }
-
-
- if(zonable == true){
- if(nbzone == 0){
- g = mx;
- f = my;
- zone.push({
-
- x : g,
- y : f,
- edit : false,
- rayon : 15,
- isDragging : false,
- });
- nbpoints=nbpoints+1;
- cercle(g,f,3,0,Math.PI*2,false,"black");
- }
- else{
- window.alert("Une seule zone d'influence sur le terrain");
- zonable = false;
- untogglezone();
- }
- }
-
-
- if(passable == true ){
- nbclicpass = nbclicpass + 1;
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- // if yes, set that rects isDragging=true
- document.body.style.cursor = 'pointer';
- if (nbjpass % 2 == 0){
- if(r.gottheball == false){
- passable = false;
- nbjpass = 0;
- window.alert("Seulement un joueur qui possede le ballon a un moment peut faire une passe");
- document.body.style.cursor = 'default';
- nbclicpass = 0;
- untogglePasse();
-
- }
- else
- {
- dernierpass = i;
- addj(i);
- nbjpass=nbjpass+1;
- }
- }
- else{
- if(i == jpass[jpass.length -1].c){
- window.alert("On ne peut se faire une passe a soit meme");
- passable = false;
- jpass.pop();
- nbclicpass = 0;
- untogglePasse();
- nbjpass = 0;
- }
- else{
- joueurs[dernierpass].gottheball = false;
- r.gottheball = true;
- dernierpass = i;
-
- addj(i);
- nbjpass=nbjpass+1;
- }
- }
- if(nbjpass % 2 == 0){
- passable=false;
- nbclicpass = 0;
- untogglePasse();
- draw();
- }
- }
- }
- if(nbjpass == 0){
- untogglePasse();
- passable = false;
- nbclicpass = 0;
-
- }
- if(nbjpass == 1 && nbclicpass == 2){
- jpass.pop();
- untogglePasse();
- passable = false;
- nbclicpass = 0;
- nbjpass = 0;
- }
-}
- if(tirable == true){
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- if(r.gottheball == true){
- r.tiring = true;
- tirable = false;
- nbtir = nbtir +1;
-
- last.push({
- action : 9,
- });
- draw();
- }
- else{
- tirable = false;
- window.alert("Seul un joueur qui a le ballon peut tirer");
- }
- }
- }
- untoggletire();
- }
-
-else {
- if(edit == false && drib == false){
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- // if yes, set that rects isDragging=true
- document.body.style.cursor = 'pointer';
- if(drib == false){
- dragok = true;
- r.isDragging = true;
- }
- }
- }
- for (var i = 0; i < adversaire.length; i++) {
- var r = adversaire[i];
- if (mx > r.x - r.rayon && mx < r.x + r.rayon && my > r.y - r.rayon && my < r.y + r.rayon) {
- // if yes, set that rects isDragging=true
- document.body.style.cursor = 'pointer';
- dragok = true;
- r.isDragging = true;
- }
- }
- }
-}
- // save the current mouse position
- startX = mx;
- startY = my;
-}
-
-
-// handle mouseup events
-function myUp(e) {
- // tell the browser we're handling this mouse event
- e.preventDefault();
- e.stopPropagation();
-
- // clear all the dragging flags
- document.body.style.cursor = 'default';
- dragok = false;
- for (var i = 0; i < joueurs.length; i++) {
- joueurs[i].isDragging = false;
- }
- for (var i = 0; i < adversaire.length; i++) {
- adversaire[i].isDragging = false;
- }
- for (var i = 0; i < zone.length; i++) {
- zone[i].isDragging = false;
- }
- for (var i = 0; i < deple.length; i++) {
- deple[i].isDragging = false;
- }
- for (var i = 0; i < dribblement.length; i++) {
- dribblement[i].isDragging = false;
- }
-}
-
-
-// handle mouse moves
-function myMove(e) {
-
- // if we're dragging anything...
- if (dragok) {
-
- // tell the browser we're handling this mouse event
- e.preventDefault();
- e.stopPropagation();
-
- // get the current mouse position
- var mx = parseInt(e.clientX - offsetX);
- var my = parseInt(e.clientY - offsetY);
-
- // calculate the distance the mouse has moved
- // since the last mousemove
- var dx = mx - startX;
- var dy = my - startY;
-
- // move each rect that isDragging
- // by the distance the mouse has moved
- // since the last mousemove
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if (r.isDragging) {
- r.x += dx;
- r.y += dy;
- if(r.sedeplace == true){
- var a = deple.length/4;
- for(var h = 0;h
= 5)
- window.alert("Nombre de joueurs maximum atteint");
- else {
- joueurs.push({
- x: 60,
- y: 35 + ((joueurs.length + 1) * 50),
- rayon: 20,
- cache: 0,
- taille: Math.PI*2,
- last: false,
- fill: "red",
- isDragging: false,
- setball : false,
- gottheball : false,
- sedeplace : false,
- tiring : false,
- });
- last.push({
- action : 1,
- });
- cercle(60,35 + (joueurs.length * 50),20,0,Math.PI*2,false,"red");
- }
-}
-
-function ajouteradversaire() {
-
- if (adversaire.length >= 5)
- window.alert("Nombre d'adversaire maximum atteint");
- else {
- adversaire.push({
- x: 560,
- y: 35 + ((adversaire.length + 1) * 50),
- rayon: 20,
- cache: 0,
- taille: Math.PI*2,
- last: false,
- fill: "black",
- isDragging: false,
- setball : false
- });
- last.push({
- action : 2,
- });
- cercle(560,35 + (adversaire.length * 50),20,0,Math.PI*2,false,"black");
- }
-}
-
-function fairepasse(a,b) {
-
- passes.push({
- x: joueurs[a.c],
- y: joueurs[a.c],
- x2 : joueurs[b.c],
- y2 : joueurs[b.c],
- });
-
- jpass.pop();
- jpass.pop();
- last.push({
- action : 5,
- depart : a.c,
- arrivé : b.c,
- });
- lignePasse(joueurs[a.c].x,joueurs[a.c].y,joueurs[b.c].x,joueurs[b.c].y);
-;
-}
-
-
-function faireterrain() {
- ctx.lineWidth="5";
-
-//Bordures du terrain
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.rect(0, 0, lt, ht);
-ctx.stroke();
-
-
-ctx.lineWidth="2";
-//Ligne centrale
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.moveTo(lt/2, ht);
-ctx.lineTo(lt/2, 0);
-ctx.stroke();
-
-//Cercle central
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.arc(lt/2, ht/2, lt*0.064, 0, Math.PI*2, false);
-ctx.stroke();
-
-
-/* RAQUETTES */
-//Rectangle raquette gauche
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.rect(0, ht/3, lt*0.208, ht/3);
-ctx.stroke();
-
-//Rectangle raquette droite
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.rect(lt-lt*0.208, ht/3, lt-lt*0.208, ht/3);
-ctx.stroke();
-
-//Cercle raquette gauche
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.arc(lt*0.208, ht/2, lt*0.064, 1.5*Math.PI, 0.5*Math.PI, false);
-ctx.stroke();
-
-//Cercle raquette droite
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.arc(lt-(lt*0.208), ht/2, lt*0.064, 0.5*Math.PI, 1.5*Math.PI, false);
-ctx.stroke();
-
-
-/* LIGNES LANCERS FRANCS */
-//Ligne lf 1 gauche
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.moveTo(0, 0.06*ht);
-ctx.lineTo(lt*0.075, 0.06*ht);
-ctx.stroke();
-
-//Ligne lf 2 gauche
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.moveTo(0, 0.94*ht);
-ctx.lineTo(lt*0.075, 0.94*ht);
-ctx.stroke();
-
-// Cercle lf gauche
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.arc(lt*0.063, ht/2, ht*0.44, 1.5*Math.PI, 0.5*Math.PI, false);
-ctx.stroke();
-
-
-//Ligne lf 1 droite
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.moveTo(lt, 0.06*ht);
-ctx.lineTo(lt*0.925, 0.06*ht);
-ctx.stroke();
-
-//Ligne lf 2 droite
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.moveTo(lt, 0.94*ht);
-ctx.lineTo(lt*0.925, 0.94*ht);
-ctx.stroke();
-
-//Cercle lf droite
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.arc(lt*0.937, ht/2, lt*0.236, 0.5*Math.PI, 1.5*Math.PI, false);
-ctx.stroke();
-
-
-/* PANIERS */
-//Cercle panier gauche
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.arc(lt*0.063, ht/2, ht*0.083, 1.5*Math.PI, 0.5*Math.PI, false);
-ctx.stroke();
-
-//Panier gauche
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.moveTo(lt*0.06, ht*0.44);
-ctx.lineTo(lt*0.06, ht*0.56);
-ctx.stroke();
-
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.arc(lt*0.072, ht/2, ht*0.01, 0, Math.PI*2, false);
-ctx.stroke();
-
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.moveTo(lt*0.06, ht/2);
-ctx.lineTo(lt*0.067, ht/2);
-ctx.stroke();
-
-
-//Cercle panier droit
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.arc(lt-lt*0.063, ht/2, ht*0.083, 0.5*Math.PI, 1.5*Math.PI, false);
-ctx.stroke();
-
-//Panier droit
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.moveTo(lt-lt*0.06, ht-ht*0.44);
-ctx.lineTo(lt-lt*0.06, ht-ht*0.56);
-ctx.stroke();
-
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.arc(lt-lt*0.072, ht/2, ht*0.01, 0, Math.PI*2, false);
-ctx.stroke();
-
-ctx.beginPath();
-ctx.setLineDash([]);
-ctx.strokeStyle ="black";
-ctx.moveTo(lt-lt*0.06, ht-ht/2);
-ctx.lineTo(lt-lt*0.067, ht-ht/2);
-ctx.stroke();
-}
-
-function zoner(){
- if(edit == true){
- le_contexte.beginPath();
- le_contexte.fillStyle = "rgba(128,128,128,0.3)";
- le_contexte.strokeStyle = "rgb(255,0,0)";
- cercleedit(zone[0].x,zone[0].y,15,0,Math.PI*2,"rgba(128,128,128,0.3)");
- for (j = 1; j< nbpoints;j++){
- cercleedit(zone[j].x,zone[j].y,15,0,Math.PI*2,"rgba(128,128,128,0.3)");
- }
- le_contexte.moveTo(zone[0].x, zone[0].y);
- for (i = 1; i< nbpoints;i++){
- le_contexte.lineTo(zone[i].x, zone[i].y);
- }
- le_contexte.lineTo(zone[0].x, zone[0].y);
- le_contexte.fill();
- le_contexte.stroke();
-
-
- }
- else{
- le_contexte.beginPath();
- le_contexte.fillStyle = "rgba(128,128,128,0.3)";
- le_contexte.strokeStyle = "rgb(255,0,0)";
- le_contexte.moveTo(zone[0].x, zone[0].y);
- for (i = 1; i< nbpoints;i++)
- le_contexte.lineTo(zone[i].x, zone[i].y);
- le_contexte.lineTo(zone[0].x, zone[0].y);
- le_contexte.fill();
- le_contexte.stroke();
- }
-
-}
-
-
-function deplacer(){
-
-
-
- if ( edit == true){
- le_contexte.beginPath();
- le_contexte.strokeStyle = "black";
- for(i = 0;i< (nbptsdep/4);i++){
- for(j=1;j<4;j++){
- cercleedit(deple[j+i*4].x,deple[j+i*4].y,15,0,Math.PI*2,"rgba(128,128,128,0.9)");
- }
- for(h = 0;h< (nbptsdep/4);h++){
- le_contexte.moveTo(deple[0+h*4].x,deple[0+h*4].y);
- le_contexte.bezierCurveTo(deple[1+h*4].x,deple[1+h*4].y,deple[2+h*4].x,deple[2+h*4].y,deple[3+h*4].x,deple[3+h*4].y);
- canvas_arrow2(le_contexte, deple[2+h*4].x, deple[2+h*4].y, deple[3+h*4].x, deple[3+h*4].y);
- }
- }
- le_contexte.stroke();
- }
- else{
- if(deple.length > 0 && deple.length %4 == 0){
- le_contexte.beginPath();
- console.log("je suis la");
- le_contexte.strokeStyle = "black";
- for(i = 0;i< (nbptsdep/4);i++){
- le_contexte.moveTo(deple[0+i*4].x,deple[0+i*4].y);
- le_contexte.bezierCurveTo(deple[1+i*4].x,deple[1+i*4].y,deple[2+i*4].x,deple[2+i*4].y,deple[3+i*4].x,deple[3+i*4].y);
- canvas_arrow2(le_contexte, deple[2+i*4].x, deple[2+i*4].y, deple[3+i*4].x, deple[3+i*4].y);
-
-
- }
- le_contexte.stroke();
- }
- }
-}
-
-/*function depladeu(){
- le_contexte.beginPath();
- le_contexte.strokeStyle = "black";
- for(i=0; i< (depdeu.length/2);i++){
- ligne(depdeu[0+i*2].x,depdeu[0+i*2].y,depdeu[1+i*2].x,depdeu[1+i*2].y);
- canvas_arrow2(le_contexte,depdeu[0+i*2].x,depdeu[0+i*2].y,depdeu[1+i*2].x,depdeu[1+i*2].y);
- console.log("yayayya");
- }
- le_contexte.stroke();
-}*/
-
-function dribblage(){
-
-
-
- if ( edit == true){
- le_contexte.beginPath();
- le_contexte.strokeStyle = "black";
- for(i = 0;i< (nbptsdib/4);i++){
- for(j=1;j<4;j++){
- cercleedit(dribblement[j+i*4].x,dribblement[j+i*4].y,15,0,Math.PI*2,"rgba(128,128,128,0.9)");
- }
- for(h = 0;h< (nbptsdib/4);h++){
- le_contexte.moveTo(dribblement[0+h*4].x,dribblement[0+h*4].y);
- le_contexte.bezierCurveTo(dribblement[1+h*4].x,dribblement[1+h*4].y,dribblement[2+h*4].x,dribblement[2+h*4].y,dribblement[3+h*4].x,dribblement[3+h*4].y);
- canvas_arrow2(le_contexte, dribblement[2+h*4].x, dribblement[2+h*4].y, dribblement[3+h*4].x, dribblement[3+h*4].y);
- }
- }
- le_contexte.stroke();
- }
- else{
- if(dribblement.length > 0 && dribblement.length %4 == 0){
- le_contexte.beginPath();
- le_contexte.strokeStyle = "black";
- for(i = 0;i< (nbptsdib/4);i++){
- le_contexte.moveTo(dribblement[0+i*4].x,dribblement[0+i*4].y);
- le_contexte.bezierCurveTo(dribblement[1+i*4].x,dribblement[1+i*4].y,dribblement[2+i*4].x,dribblement[2+i*4].y,dribblement[3+i*4].x,dribblement[3+i*4].y);
- canvas_arrow2(le_contexte, dribblement[2+i*4].x, dribblement[2+i*4].y, dribblement[3+i*4].x, dribblement[3+i*4].y);
-
-
- }
- le_contexte.stroke();
- }
- }
-}
-
-function triggerdonnerlaballe(){
- if(ball == true){
- ball = false;
- untoggleDonner();
- }else{
- toggleDonner();
- ball = true;
-}
-}
-
-function triggerfairepasse(){
- if(joueurs.length < 2){
- window.alert("On ne peut faire une passe si on a pas 2 joueurs");
- return;
- }
- if(passable == true){
- passable = false;
- untogglePasse();
- return;
- }
- if(passable == false && joueurs.length >= 2){
- togglePasse();
- passable = true;
- return;
-
- }
-}
-
-function addj(a){
- jpass.push({
- c : a,
- });
-}
-
-function retourarriere(){
-
- x = last.length;
- if(x == 0){
- window.alert("Vous ne pouvez revenir en arriere")
- }
- else{
- if(last[x-1].action == 1){
- joueurs.pop();
- last.pop();
- draw();
- }
- if(last[x-1].action == 2){
- adversaire.pop();
- last.pop();
- draw();
- }
- if(last[x-1].action == 3){
-
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- if(r.setball == true){
- r.setball = false;
- nbball = nbball - 1;
- last.pop();
- draw();
- }
- }
- }
-
- if(last[x-1].action == 4){
-
- for (var i = 0; i < adversaire.length; i++) {
- var r = adversaire[i];
- if(r.setball = true){
- r.setball = false;
- nbball = nbball - 1;
- last.pop();
- draw();
- }
- }
- }
- if(last[x-1].action == 5){
- joueurs[last[x-1].arrivé].gottheball = false;
- joueurs[last[x-1].depart].gottheball = true;
- last.pop();
- passes.pop();
- draw();
-
- }
- if(last[x-1].action == 6){
- for(i = 0; i< zone.length;i++){
- zone.pop();
- }
- nbzone = 0;
- nbpoints = 0;
- last.pop();
- draw();
-
- }
-
- if(last[x-1].action == 7){
- for(i = 0; i< 4;i++){
- deple.pop();
- }
- nbptsdep = nbptsdep -4;
- last.pop();
- draw();
-
- }
-
- if(last[x-1].action == 8){
- for(i = 0; i< 4;i++){
- dribblement.pop();
- }
- nbptsdib = nbptsdib -4;
- last.pop();
- nbdrib = nbdrib -1;
- draw();
-
- }
-
- if(last[x-1].action == 9){
- for (var i = 0; i < joueurs.length; i++) {
- var r = joueurs[i];
- r.tiring = false;
- }
- nbtir = nbtir-1;
- last.pop();
- draw();
-
- }
-
- }
-
- }
-
-function influer(){
- if(zonable == true){
- untogglezone();
- zonable = false;
- if(zonable == false && nbpoints > 2 && nbzone == 0){
- nbzone = 1;
- last.push({
- action : 6,
- });
- draw();
- }
- }
- else{
- zonable = true ;
- togglezone();
- }
-}
-
-function editer(){
- if(edit == false){
- edit = true;
- draw();
- toggleediter();
- }
- else{
- edit = false;
- draw();
- untoggleediter();
- }
-}
-
-
-function deplace(){
- if(bouge == false){
- bouge = true;
- toggleDeplacer();
- draw();
- }
- else{
- bouge = false;
- untoggleDeplacer();
-
- if(nbptsdep >3){
- currentdep = 1;
- last.push({
- action : 7,
- });
- draw();
- }
- /* if(nbdepdeu == 2){
- while(deple.length%4 !=0){
- deple.pop();
- }
- nbdepdeu = 0;
- nbptsdep =0;
- draw();
-
- }*/
- else{
- window.alert("Il vous faut 4 points pour se deplacer")
- while(deple.length%4 !=0){
- deple.pop();
- }/*
- while(depdeu.length%4 !=0){
- depdeu.pop();
- }*/
- nbptsdep = 0;
- draw();
- }
- }
-}
-
-
-function dribble(){
- if(drib == false){
- drib = true;
- toggleDribble();
- draw();
- }
- else{
- drib = false;
- untoggleDribble();
-
- if(nbptsdib >3){
- last.push({
- action : 8,
- });
- nbdrib = nbdrib +1;
- draw();
-
- }
- else{
- window.alert("Il vous faut 4 points pour dribbler")
- while(dribblement.length%4 !=0){
- dribblement.pop();
- }
- nbptsdib = 0;
- draw();
- }
- }
-}
-
-function tire(){
- if(tirable == false){
- if(nbtir >0){
- window.alert("Un tir maximum par schéma");
- untoggletire();
- }
- else{
- tirable = true;
- toggletire();
- }
- }
- else{
- tirable = false;
- untoggletire();
- }
-
-}
-
-
-function togglePasse(){
- document.getElementById("bouttonpasse").classList.add('red');
-
-}
-function untogglePasse(){
- document.getElementById("bouttonpasse").classList.remove('red');
-
-}
-
-function toggleDeplacer(){
- document.getElementById("bouttondeplacer").classList.add('red');
-
-}
-function untoggleDeplacer(){
- document.getElementById("bouttondeplacer").classList.remove('red');
-
-}
-
-function toggleDribble(){
- document.getElementById("bouttondribbler").classList.add('red');
-
-}
-
-function untoggleDribble(){
- document.getElementById("bouttondribbler").classList.remove('red');
-
-}
-
-function toggleDonner(){
- document.getElementById("bouttondonner").classList.add('red');
-
-}
-
-function untoggleDonner(){
- document.getElementById("bouttondonner").classList.remove('red');
-
-}
-
-function togglezone(){
- document.getElementById("bouttoninfluence").classList.add('red');
-
-}
-function untogglezone(){
- document.getElementById("bouttoninfluence").classList.remove('red');
-
-}
-function toggleediter(){
- document.getElementById("bouttonediter").classList.add('red');
-
-}
-function untoggleediter(){
- document.getElementById("bouttonediter").classList.remove('red');
-
-}
-
-function toggletire(){
- document.getElementById("bouttontirer").classList.add('red');
-
-}
-function untoggletire(){
- document.getElementById("bouttontirer").classList.remove('red');
-
-}
- buttonPNG.onclick = function(){
- download(canvas, 'Schema.png');
- }
-
-
-
-
-function download(canvas, filename) {
- var lnk = document.createElement('a'), e;
- lnk.download = filename;
-
-
- lnk.href = canvas.toDataURL("image/png;base64");
-
- /// create a "fake" click-event to trigger the download
- if (document.createEvent) {
- e = document.createEvent("MouseEvents");
- e.initMouseEvent("click", true, true, window,0, 0, 0, 0, 0, false, false, false,false, 0, null);
- lnk.dispatchEvent(e);
- } else if (lnk.fireEvent) {
- lnk.fireEvent("onclick");
- }
-}
-
-
-
-
-
-
-
-
-init();
-
-
-function init() {
-
-
-
-
- var button = document.getElementById( 'download' );
- button.addEventListener( 'click', function() {
- var imgData = canvas.toDataURL("image/jpeg", 1.0);
- var pdf = new jsPDF();
- imgData.width=300;
- imgData.height=200;
-
- pdf.addImage(imgData, 'JPEG',0 ,0);
- pdf.save("Schema.pdf");
-
- } );
-}
\ No newline at end of file
diff --git a/TEX/bas-pdf.pdf b/TEX/bas-pdf.pdf
deleted file mode 100644
index 0d5dfd0..0000000
Binary files a/TEX/bas-pdf.pdf and /dev/null differ
diff --git a/TEX/bas-pdf.synctex.gz b/TEX/bas-pdf.synctex.gz
deleted file mode 100644
index 2f25f85..0000000
Binary files a/TEX/bas-pdf.synctex.gz and /dev/null differ
diff --git a/TEX/bas-pdf.tex b/TEX/bas-pdf.tex
deleted file mode 100644
index f116b02..0000000
--- a/TEX/bas-pdf.tex
+++ /dev/null
@@ -1,34 +0,0 @@
-\documentclass[12pt]{article}
-\usepackage{tikz}
-\usetikzlibrary{positioning}
-\usetikzlibrary{shapes.geometric}
-\usetikzlibrary{shapes.symbols}
-\usetikzlibrary{shadows}
-\usetikzlibrary{decorations.pathmorphing, patterns,shapes}
-\usetikzlibrary{positioning, decorations.markings}
-\usepgflibrary{arrows}
-\usetikzlibrary{arrows}
-
-\pagestyle{empty}
-
-%http://www.basket40.com/UserFiles/Site/File/administratif/SALLES%20ET%20TERRAINS/salles_et_terrains_2010__2015.pdf
-
-
-\begin{document}
-
-\begin{center}
-\resizebox{.48\linewidth}{!}{
-\input{haut1}
-}
-\end{center}
-
-
-\begin{center}
-\resizebox{.48\linewidth}{!}{
-\input{maison-press1}
-}
-\end{center}
-
-
-
-\end{document}
diff --git a/TEX/bas1.tex b/TEX/bas1.tex
deleted file mode 100644
index 90eb15c..0000000
--- a/TEX/bas1.tex
+++ /dev/null
@@ -1,31 +0,0 @@
-
- \begin{tikzpicture}
-
- \fill[color=gray!20] (11,2) -- (4,2) -- (7,5) -- (10, 5) -- cycle;
-
- \input{demi-terrain}
-
- %%%% Attaquants
-
- \node[draw, circle] (1) at (7.5, 10) {\LARGE 1};
- \node (2) at (2, 7) {\LARGE 2};
- \node (3) at (13, 7) {\LARGE 3};
- \node (4) at (4.5, 2.5) {\LARGE 4};
- \node (5) at (11, 2.5) {\LARGE 5};
-
- \draw[thick] [-[] (1) -- (3);
-
- \draw[thick,dashed] [-latex] (1) -- (2);
-
- \draw[thick] [-[] (4) -- (5);
-
- \draw[thick] [-latex] (5) .. controls (10,3) .. (7.5,3);
-
- \draw[thick] [-latex] (3) .. controls (10,10) .. (1);
-
- \draw[thick] [-latex] (10.5,2.5) -- (7.15,5) ;
-
-
-
- \end{tikzpicture}
-
diff --git a/TEX/demi-terrain.tex b/TEX/demi-terrain.tex
deleted file mode 100644
index 754d878..0000000
--- a/TEX/demi-terrain.tex
+++ /dev/null
@@ -1,34 +0,0 @@
- %%% TOUR du terrain
-
- \draw (0,0) -- (0,14);
- \draw (15,0) -- (15,14);
- \draw (0,14) -- (15,14);
- \draw (0,0) -- (15,0);
-
-
- %%% ligne mediane
- \draw (15,14) -- (0,14);
-
- %%% rond central
-% \draw (7.5,14) circle [radius=2.4];;
- \draw (5,14) arc [radius=2.4, start angle=180, end angle= 360];
-
- %% panier bas
- \draw (7.5,1.776) circle [radius=0.2];;
- \draw (6.5,1.575) -- (8.5,1.575);
-
-
- %% raquette basse
- \draw (5,0) -- (5,5.8);
- \draw (10,0) -- (10,5.8);
- \draw (10,5.8) -- (5,5.8);
-
- \draw (9.3,5.8) arc [radius=1.8, start angle=0, end angle= 180];
-
-
-
- %% 3 points bas
- \draw (14.1,1.7) arc [radius=6.6, start angle=0, end angle= 180];
- \draw (.9,0) -- (.9,1.7);
- \draw (14.1,0) -- (14.1,1.7);
-
diff --git a/TEX/haut1.tex b/TEX/haut1.tex
deleted file mode 100644
index 730b465..0000000
--- a/TEX/haut1.tex
+++ /dev/null
@@ -1,32 +0,0 @@
-
- \begin{tikzpicture}
-
- \fill[color=gray!20] (9,2) -- (4,2) -- (7,7) -- (10, 7) -- cycle;
-
- \input{demi-terrain}
-
- %%%% Attaquants
-
- \node[draw, circle] (1) at (7.5, 10) {\LARGE 1};
- \node (2) at (2, 7) {\LARGE 2};
- \node (3) at (13, 7) {\LARGE 3};
- \node (4) at (4.5, 2.5) {\LARGE 4};
- \node (5) at (10, 6) {\LARGE 5};
-
- \draw[thick] [-[] (1) -- (3);
-
- \draw[thick,dashed] [-latex] (1) -- (2);
-
- \draw[thick] [-[] (4) -- (5);
-
-
- \draw[thick] [-latex] (5) .. controls (7,6) .. (6,3);
-
- \draw[thick, decoration = {zigzag}, decorate] [-latex] (3) .. controls (10,10) .. (1);
-
- \draw[thick] [-latex] (9.5,5.7) -- (8,2.5) ;
-
-
-
- \end{tikzpicture}
-
diff --git a/TEX/maison-press1.tex b/TEX/maison-press1.tex
deleted file mode 100644
index 72cb9ef..0000000
--- a/TEX/maison-press1.tex
+++ /dev/null
@@ -1,22 +0,0 @@
- \begin{tikzpicture}
-
- \fill[color=gray!20] (3,25) -- (12,25) -- (12,16.5) --
- (7.5,9) -- (3,16.5) -- cycle;
-
- \input{terrain}
-
- \node (1) at (11, 24) {\LARGE 1};
- \node (2) at (4, 24) {\LARGE 2};
- \node (3) at (11, 17.5) {\LARGE 3};
- \node (4) at (4, 17.5) {\LARGE 4};
- \node (5) at (7.5, 11) {\LARGE 5};
-
-
- \node[draw,circle] (B) at (6.5,29) {\LARGE X};
-
-
- \end{tikzpicture}
-
-
-
-
diff --git a/TEX/terrain.log b/TEX/terrain.log
deleted file mode 100644
index e69de29..0000000
diff --git a/TEX/terrain.tex b/TEX/terrain.tex
deleted file mode 100644
index 07dbb6b..0000000
--- a/TEX/terrain.tex
+++ /dev/null
@@ -1,53 +0,0 @@
- %%% TOUR du terrain
-
- \draw (0,0) -- (0,28);
- \draw (15,0) -- (15,28);
- \draw (0,28) -- (15,28);
- \draw (0,0) -- (15,0);
-
-
- %%% ligne mediane
- \draw (15,14) -- (0,14);
-
- %%% rond central
- \draw (7.5,14) circle [radius=2.4];;
-
- %% panier bas
- \draw (7.5,1.776) circle [radius=0.2];;
- \draw (6.5,1.575) -- (8.5,1.575);
-
- %% panier haut
- \draw (7.5,26.2) circle [radius=0.2];;
- \draw (6.5,26.425) -- (8.5,26.425);
-
-% 4.6+1.776 = 6.376
- %% raquette basse
- \draw (5,0) -- (5,5.8);
- \draw (10,0) -- (10,5.8);
- \draw (10,5.8) -- (5,5.8);
-
- \draw (9.3,5.8) arc [radius=1.8, start angle=0, end angle= 180];
-
- %% raquette haute
- \draw (10,28) -- (10,22.2);
- \draw (5,28) -- (5,22.2);
- \draw (5,22.2) -- (10,22.2);
-
- \draw (5.6,22.2) arc [radius=1.8, start angle=180, end angle= 360];
-
-
- %% 3 points bas
- \draw (14.1,1.7) arc [radius=6.6, start angle=0, end angle= 180];
- \draw (.9,0) -- (.9,1.7);
- \draw (14.1,0) -- (14.1,1.7);
-
-
-
-%% 3 points haut
-
- \draw (0.9,26.3) arc [radius=6.6, start angle=180, end angle= 360];
- \draw (.9,28) -- (.9,26.2);
- \draw (14.1,28) -- (14.1,26.2);
-
-% \draw (0.9,19.675) -- (14.1,19.675);
-
diff --git a/arbre.PNG b/arbre.PNG
deleted file mode 100644
index b7d368f..0000000
Binary files a/arbre.PNG and /dev/null differ
diff --git a/Passes-retour-designConnexion/ballon.png b/ballon.png
similarity index 100%
rename from Passes-retour-designConnexion/ballon.png
rename to ballon.png
diff --git a/basket.css b/basket.css
index f004f82..dafc86b 100644
--- a/basket.css
+++ b/basket.css
@@ -169,4 +169,154 @@ body{
#bouttonadd:active{
box-shadow: 1px 1px 10px black inset, 0 1px 0 rgba( 255, 255, 255, 0.4);
-}
\ No newline at end of file
+}
+
+.red {
+ background-color: "red";
+ margin-left: 15%;
+}
+
+.yay {
+ display: none;
+}
+
+.popup .overlay {
+
+ top:0px;
+ left:0px;
+ width:100vw;
+ height:100vh;
+ background:rgba(0,0,0,0.7);
+ z-index:1;
+ display:none;
+}
+
+.popup .content {
+ position:absolute;
+ top:183px;
+ left:215px;
+ transform:translate(-50%,-50%) scale(0);
+ background:#fff;
+ width:430px;
+ height:370px;
+ z-index:2;
+ text-align:center;
+ padding:20px;
+ box-sizing:border-box;
+ font-family:"Open Sans",sans-serif;
+}
+
+.popup .close-btn {
+ cursor:pointer;
+ position:absolute;
+ right: 15px;
+ top:20px;
+ width:30px;
+ height:30px;
+ background:#222;
+ color:#fff;
+ font-size:25px;
+ font-weight:600;
+ line-height:30px;
+ text-align:center;
+ border-radius:50%;
+}
+.close-btn2 {
+ cursor:pointer;
+ position:absolute;
+ left: 15px;
+ top:20px;
+ width:30px;
+ height:30px;
+ background:#222;
+ color:#fff;
+ font-size:25px;
+ font-weight:600;
+ line-height:30px;
+ text-align:center;
+ border-radius:50%;
+}
+
+.popup.active .overlay {
+ display:block;
+}
+
+.popup.active .content {
+ transition:all 300ms ease-in-out;
+ transform:translate(-50%,-50%) scale(1);
+}
+
+.skin_barre /* on reprend le nom qu'on a mis dans 'class=' */
+{
+
+ width:30px;
+ height:300px;
+ /* on définit la taille du div (celle de l'image) */
+
+
+ /* et sa position initiale */
+
+ position:absolute;
+ /* le div n'est plus fixe mais libre */
+
+ background-image:url('degrade.jpg');
+ /* on définit ici l'image à afficher dans le div */
+
+ cursor:s-resize;
+ /* et enfin on définit le curseur à afficher lorsque la souris passe sur ce div */
+}
+
+
+
+/* ===== de même pour les autres ===== */
+/* skin curseur1*/
+.skin_curseur1
+{
+ width:45px;
+ height:15px;
+ position:absolute;
+ top:12px;
+ left:15px;
+ cursor:s-resize;
+ background-image:url('curseur1.png');
+}
+
+
+
+/*skin carre */
+
+.skin_carre
+{
+ width:300px;
+ height:300px;
+ position:absolute;
+ top:20px;left:60px;
+ cursor:move;
+ background-color:red; /* on définit la couleur initiale du carré */
+ background-image:url('degrade_n-b.png');
+}
+
+
+/*skin curseur2*/
+.skin_curseur2
+{
+ width:20px;
+ height:20px;
+ position:absolute;
+ top:10px;
+ left:350px;
+ cursor:move;
+ background-image:url('curseur2.png');
+}
+
+
+
+/* skin resultat */
+.skin_resultat
+{
+ position:absolute;
+ top:330px;
+ left:60px;
+ border:1px solid black; /* dessine un cadre noir autour du 'input' et d'un pixel d'épaisseur */
+ text-align:center; /* on aligne le texte au centre */
+}
diff --git a/basket.html b/basket.html
index fc708f6..fc86492 100644
--- a/basket.html
+++ b/basket.html
@@ -46,14 +46,48 @@
Partager
Sauvegarder
+
+
+ Modifier
+
+
+
+
+
+ Taille
+
+
+
@@ -83,13 +117,13 @@
@@ -191,7 +257,107 @@