@ -0,0 +1,141 @@
|
||||
# GESTION DIVERSE DE CARTE#
|
||||
|
||||
## CREATION DE CARTE
|
||||
|
||||
**CreationCarte(void):** Carte:Matrice(4,3)
|
||||
|
||||
**Entrées** : void
|
||||
|
||||
**Sortie** : Carte:Matrice(4,3)
|
||||
|
||||
### Début
|
||||
|
||||
> ###Variables locales :
|
||||
>
|
||||
> **Carte**:Tableau(4,3) d'entiers = 0
|
||||
>
|
||||
> **Cox1,Cox2,Coy1,Coy2** : entiers
|
||||
> ---
|
||||
>
|
||||
> **Cox1** <- entier entre 1 et 3;
|
||||
>
|
||||
> **Coy1** <- entier entre 1 et 4;
|
||||
>
|
||||
> **Carte(Coy1,Cox1)** <- 1;
|
||||
>
|
||||
> **Cox2** <- entier entre 1 et 3;
|
||||
>
|
||||
> **Coy2** <- entier entre 1 et 4;
|
||||
>
|
||||
> **tant que** ( **Cox1** == **Cox2** et **Coy1** == **Coy2** ) **faire**
|
||||
>
|
||||
> >**Cox2** <- entier entre 1 et 3;
|
||||
> >
|
||||
> >**Coy2** <- entier entre 1 et 4;
|
||||
>
|
||||
> **fin tant que**
|
||||
>
|
||||
> **Carte(Coy2,Cox2)** <- 2;
|
||||
|
||||
### FIN
|
||||
|
||||
## ROTATION DE CARTE
|
||||
|
||||
**rotationVerticale(Carte:Tableau(4,3) d'entiers)** :Carte:Tableau(4,3) d'entiers
|
||||
|
||||
**Entrées** : Carte:Tableau(4,3) d'entiers
|
||||
|
||||
**Sortie** : Carte:Tableau(4,3) d'entiers
|
||||
|
||||
### Début
|
||||
> ###Variables locales
|
||||
>
|
||||
> Inv:Tableau(3,3) d'entier <- [0,0,1;0,1,0;1,0,0];
|
||||
>
|
||||
> ---
|
||||
>
|
||||
> Carte <- Carte * Inv;
|
||||
>
|
||||
### FIN
|
||||
---
|
||||
|
||||
**rotationHorizontale(Carte:Tableau(4,3) d'entiers)** :Carte:Tableau(4,3) d'entiers
|
||||
|
||||
**Entrées** : Carte:Tableau(4,3) d'entiers
|
||||
|
||||
**Sortie** : Carte:Tableau(4,3) d'entiers
|
||||
|
||||
### Début
|
||||
> ###Variables locales
|
||||
>
|
||||
> Inv:Tableau(4,4)d'entiers <- [0,0,0,1;0,0,1,0;0,1,0,0;1,0,0,0];
|
||||
>
|
||||
> Carte2:Tableau(3,4) d'entiers;
|
||||
>
|
||||
> ---
|
||||
>
|
||||
> Cart2 <- Carte' * Inv;
|
||||
>
|
||||
> Carte <- Carte2';
|
||||
>
|
||||
### FIN
|
||||
|
||||
|
||||
## RECHERCHE COORDONNEES##
|
||||
|
||||
**rechercheCo(Carte:Tableau(4,3) d'entiers)** : xCercle,yCercle,xPoint,yPoint entiers
|
||||
|
||||
**Entrees** : Carte:Tableau(4,3) d'entiers
|
||||
|
||||
**Sortie** : xCercle,yCercle,xPoint,yPoint entiers
|
||||
|
||||
### Debut
|
||||
>###Variables Locales
|
||||
> Cox,Coy : entiers
|
||||
>
|
||||
> xCercle,yCercle,xPoint,yPoint : entiers
|
||||
>
|
||||
> ---
|
||||
> Cox <- 1
|
||||
>
|
||||
> Coy <- 1
|
||||
>
|
||||
> tant que 1
|
||||
>
|
||||
>>Si Cox == 4 alors
|
||||
>>
|
||||
>>>Si Coy == 4 alors
|
||||
>>>
|
||||
>>>>break;
|
||||
>>>
|
||||
>>>Fin Si
|
||||
>>
|
||||
>>>Cox <- 1
|
||||
>>
|
||||
>>>Coy <- Coy + 1
|
||||
>
|
||||
>>Fin Si
|
||||
>
|
||||
>>>
|
||||
>
|
||||
>>Si Carte(Coy,Cox) == 1 alors
|
||||
>
|
||||
>>> xPoint <- Cox
|
||||
>
|
||||
>>> yPoint <- Coy
|
||||
>
|
||||
>> Fin Si
|
||||
>
|
||||
>>Si Carte(Coy,Cox) == 2 alors
|
||||
>
|
||||
>>>xCercle <- Cox
|
||||
>
|
||||
>>>yCercle <- Coy
|
||||
>
|
||||
>> Fin Si
|
||||
>
|
||||
>Cox <- Cox + 1
|
||||
>
|
||||
>Fin tant que
|
||||
|
||||
### Fin
|
@ -0,0 +1,354 @@
|
||||
# ANALYSE DE CARTE#
|
||||
|
||||
## COMPARAISON DE CARTE##
|
||||
|
||||
**ComparaisonDeCarte(CarteMere:Matrice(4,3), Carte:Matrice(4,3))** : entier
|
||||
|
||||
**Entrées** : **CarteMere** et **Carte** :Matrice(4,3)
|
||||
|
||||
**Sortie** : entier
|
||||
|
||||
**Objectif** : Determine si les Cartes possèdent une liaison ( point <=> cercle )
|
||||
|
||||
### DEBUT###
|
||||
> ###Variables locales :
|
||||
> **Cox1,Cox2,Coy1,Coy2** des entiers
|
||||
>
|
||||
> ---
|
||||
>
|
||||
> **Si** **CarteMere** est NULL alors
|
||||
>
|
||||
>// L'assemblage est parfait car il n'y a pas de contrainte
|
||||
>
|
||||
>> retourne 2
|
||||
>
|
||||
>**Fin Si**
|
||||
>
|
||||
>//Recherche des coordonnées du point et du cercle sur la variable **Carte**
|
||||
>
|
||||
> **Cox1,Coy1,Cox2,Coy2** = rechercheCo(**Carte**)
|
||||
>
|
||||
>
|
||||
> // **CAS N°1 :** Il existe déjà un ensemble ( point <=> cercle) sur **CarteMere** là où **Carte** posséde un point ou un rond
|
||||
>
|
||||
> **Si** **CarteMere**(Coy1,Cox1) == 3 ou **CarteMere**(Coy2,Cox2) == 3 alors
|
||||
>
|
||||
>>// Impossible d'empiler
|
||||
>
|
||||
>>retourne 0
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
>// **CAS N°2 :** L'empilement est parfait ! Les coordonnées du point et du cercle de **Carte** peuvent créer deux liaisons ( point <=> cercle ) avec **CarteMere**
|
||||
>
|
||||
>**Si** **CarteMere**(Coy1,Cox1) == 1 **et** **CarteMere**(Coy2,Cox2) == 2 alors
|
||||
>
|
||||
>>// Les coordonnées sont bonnes
|
||||
>
|
||||
>>retourne 2
|
||||
>
|
||||
>Fin Si
|
||||
>
|
||||
>// **CAS N°3 :** Il est possible de créer une liaison ( point <=> cercle ) entre **CarteMere** et **Carte**
|
||||
>
|
||||
>**Si** **CarteMere**(Coy1,Cox1) == 1 **ou** **CarteMere**(Coy2,Cox2) == 2 alors
|
||||
>
|
||||
>>//Liaison Possible
|
||||
>
|
||||
>>retourne 1
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
>// **CAS N°4 :** On ne peut rien faire avec ces cartes
|
||||
>
|
||||
>retourne 0
|
||||
|
||||
### FIN
|
||||
|
||||
## COMPARAISON TOTAL DE LA CARTE
|
||||
|
||||
**ComparaisonTotal(CarteMere:Matrice(4,3) d'entiers,CarteFille:Matrice(4,3), index entier)**:entier,Tableau(4,3) d'entiers
|
||||
|
||||
**Entrees** : **CarteMere,CarteFille** :Matrice(4,3), **index** entier
|
||||
|
||||
**Sortie** : entier,Matrice(4,3)
|
||||
|
||||
**Objectif** : Determine si les Cartes possèdent une liaison ( point <=> cercle ) MAIS avec toutes les possibilitées de rotation de **Carte**
|
||||
|
||||
###DEBUT
|
||||
>###Variables locales
|
||||
>
|
||||
> **Code,Code1** des entiers
|
||||
>
|
||||
>---
|
||||
>
|
||||
>**Si** **CarteMere** est NULL alors
|
||||
>
|
||||
>
|
||||
>> // Il n'y a rien à faire
|
||||
>
|
||||
>>retour **1,CarteFille**
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
>// **Note** : Cette fonction sait combien de fois elle a été appelée grâce à la variable **index**. En effet pour une carte donnée il existe 4 variantes d'elle-même. La fonction va donc appeler au fur et à mesure toutes ses variantes et les tester.
|
||||
>
|
||||
>//On obtient ces opérations suivantes
|
||||
>
|
||||
> **Si** index == 1 alors
|
||||
>
|
||||
>> // On effectue une rotation verticale pour obtenir **la 2eme variante**
|
||||
>
|
||||
>>CarteFille <- rotationVerticale(CarteFille)
|
||||
>
|
||||
>**Fin Si**
|
||||
>
|
||||
>**Si** index == 2 alors
|
||||
>
|
||||
>>// On effectue une rotation Horizontale pour obtenir **la 3eme variante**
|
||||
>
|
||||
>>CarteFille <- rotationHorizontale(CarteFille)
|
||||
>
|
||||
>**Fin Si**
|
||||
>
|
||||
>**Si** index == 3 alors
|
||||
>
|
||||
>>// On effectue une rotation Vertivale pour obtenir **la 4eme variante**
|
||||
>
|
||||
>>CarteFille <- rotationVerticale(CarteFille)
|
||||
>
|
||||
>**Fin Si**
|
||||
>
|
||||
>**Si** index == 4 alors
|
||||
>
|
||||
>>// aucune variante ne colle avec **CarteMere**
|
||||
>
|
||||
>>retourne **-1,CarteMere**
|
||||
>
|
||||
>**Fin Si**
|
||||
>
|
||||
>//Après avoir modifié **CarteFille** on peut tester la variante avec **CarteMere**
|
||||
>
|
||||
>**Code** <- ComparaisonDeCarte(**CarteMere**,**CarteFille**)
|
||||
>
|
||||
>**Si** **Code** == 2 alors
|
||||
>
|
||||
>>// L'empilement est parfait donc on empile les cartes
|
||||
>
|
||||
>>**CarteMere** = **CarteMere** + **CarteFille**
|
||||
>
|
||||
>>retourne **Code,CarteMere**
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
>**Si** **Code** == 1 alors*
|
||||
>
|
||||
>> // **NOTE :** il est important de vérifier ce cas présent. En effet si une seule liaison est possible, certaines cartes offrent plusieurs possibilités d'assemblage impliquant deux variantes. Comment savoir laquelle est la bonne pour le tas final ? La fonction va le faire remarquer.
|
||||
>
|
||||
>>**Code1** <- ComparaisonDeCarte(**TasDeCarte,rotationHorizontale(CarteFille)**)
|
||||
>
|
||||
>>**Si** **Code1** == 1 alors
|
||||
>
|
||||
>>>// Les variantes horizontalement symétriques possèdent toutes les deux une liaison avec **CarteMere** on ne peut pas savoir laquelle est la bonne pour faire le tas final.
|
||||
>
|
||||
>>> retour **4, CarteFille**
|
||||
>
|
||||
>>**Fin Si**
|
||||
>
|
||||
>**Si** **Code1** == 2 alors
|
||||
>
|
||||
>>>// La variante horizontalement symétrique s'assemble parfaitement, on l'assemble donc.
|
||||
>
|
||||
>>> **CarteMere** = **CarteMere + rotationVerticale(CarteFille)**
|
||||
>
|
||||
>>>retourne **2, CarteMere**
|
||||
>
|
||||
>>**Fin Si**
|
||||
>
|
||||
>>// On teste maintenant avec la variante verticalement symétrique
|
||||
>
|
||||
>>**Code1** <- ComparaisonDeCarte(**CarteMere**,**rotationVerticale(CarteFille)**)
|
||||
>
|
||||
>>**Si** **Code1** == 2 alors
|
||||
>
|
||||
>>>// La variante verticalement symétrique s'assemble parfaitement, on l'assemble donc.
|
||||
>
|
||||
>>> **CarteMere** <- **CarteMere** + **rotationVerticale(CarteFille)**
|
||||
>
|
||||
>>>retourne **2, CarteMere**
|
||||
>
|
||||
>>**Fin Si**
|
||||
>
|
||||
>> **Si** Code1 == 1 alors
|
||||
>
|
||||
>>>// Les variantes verticalement symétriques possèdent toutes les deux une liaison avec **CarteMere** on ne peut pas savoir laquelle est la bonne pour faire le tas final.
|
||||
>
|
||||
>>> retourne **3,CarteFille**
|
||||
>
|
||||
>>**Fin Si**
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
>// Si aucune liaison n'est possible, on appelle à nouveau la fonction en Incrémentant **index**
|
||||
>
|
||||
> retourne ComparaisonTotal(**CarteMere**,**CarteFille**,**index** + 1)
|
||||
>
|
||||
### FIN
|
||||
|
||||
# ASSEMBLAGE
|
||||
|
||||
**Assemblage(TasDeCarte: Liste Matrice(4,3),CarteMere:Matrice(4,3)** :entier, Matrice(4,3)
|
||||
|
||||
**Entree** : **TasDeCarte** Liste Matrice(4,3), CarteMere Matrice(4,3)
|
||||
|
||||
**Sortie** : entier, Matrice(4,3)
|
||||
|
||||
**Objectif** : Savoir si un tas de carte envoyé en paramètre peut être empiler ou non
|
||||
|
||||
### DEBUT
|
||||
>###Variable locale
|
||||
>
|
||||
>**Carte** Matrice(4,3)
|
||||
>
|
||||
>**CopieCarteMere** Matrice(4,3)
|
||||
>
|
||||
>**Code** entier
|
||||
>
|
||||
>**CarteParallele** Matrice(4,3)
|
||||
>
|
||||
>---
|
||||
>
|
||||
>// Si le tas de carte est NULL il ne peut pas rapporter de point donc on ne peut pas l'assembler sinon on traite la première carte
|
||||
>
|
||||
>**Si** **TasDeCarte** est NULL
|
||||
>
|
||||
>>retourne **0, CarteMere**
|
||||
>
|
||||
>**Sinon**
|
||||
>
|
||||
>> **Carte** = teteL(**TasDeCarte**)
|
||||
>
|
||||
>> // On garde une copie de **CarteMere**
|
||||
>
|
||||
>> **CopieCarteMere** = **CarteMere**
|
||||
>
|
||||
>> // On regarde si **Carte** peut s'assembler avec **CarteMere**
|
||||
>
|
||||
>> **Code**,**CarteMere** = Comparaisontotal(**CarteMere**,**Carte**,**0**)
|
||||
>
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
>// En fonction du Résultat obtenue on traite
|
||||
>
|
||||
>// Cas 1 : Si Code vaut 2 et que TasDeCarte est NULL on a atteint la fin du paquet et l'assemblage est parfait
|
||||
>
|
||||
>**Si** **Code** vaut 2 et **TasDeCarte** est NULL
|
||||
>
|
||||
>> retourne **2, CarteMere**
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
>// Cas 2 : TasDeCarte est NULL mais l'assemblage n'est pas parfait. On ne peut pas assembler correctement le tas de carte. On le signal
|
||||
>
|
||||
>**Si** **TasDeCarte** est NULL et **Code** different de 2
|
||||
>
|
||||
>> retourne **0,CarteMere**
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
>
|
||||
>// **NOTE** : à ce stade si l'algorithme lit ces lignes nous savons que **TasDeCarte** n'est pas NULL. Seul la valeur de **Code** retourné par **ComparaisonTotal nous interesse
|
||||
>
|
||||
>//Cas 3 : **Code** vaut 2 ou 0, l'assemblage est parfait ou impossible mais il reste des cartes à traiter. Il faut donc insérer cette carte à la fin de la liste et continuer en traitant les autres carte.
|
||||
>
|
||||
>
|
||||
>
|
||||
>
|
||||
>
|
||||
>
|
||||
>
|
||||
>
|
||||
>Si **Code** vaut 2 ou **Code** vaut 0 ou **Code** vaut -1
|
||||
>
|
||||
>> **TasDeCarte** = insrq(**TasDeCarte**,**Carte**)
|
||||
>
|
||||
>> retourne Assemblage(**TasDeCarte**,**CopieCarteMere**)
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
>// Cas 4: **Code** vaut 3, il y a plusieur possibilitées d'assemblage.On va donc essayer les deux possibilités proposées.
|
||||
>
|
||||
>//**NOTE** Dans ce cas la fonction **comparaisontotal** retourne la carte possédant la symétrie. Donc **CarteMere** est devenue cette carte. d'où l'importance de **CopieCarteMere**
|
||||
>
|
||||
>**Si** **Code** vaut 3
|
||||
>
|
||||
>> **CarteParallele** = **CarteMere**
|
||||
>
|
||||
>> // On teste les deux possibilité
|
||||
>
|
||||
>> **Code**,**CarteMere** = Assemblage(**TasDeCarte**,**CopieCarteMere** + **CarteParallele**)
|
||||
>
|
||||
>> **Code1**,**CarteMere1** = Assemblage(**TasDeCarte**,**CopieCarteMere** + rotationVerticale(**CarteParallele**))
|
||||
>
|
||||
>> // On regarde si l'une des deux possibilité fonctionne
|
||||
>
|
||||
>>**Si** **Code1** vaut 2
|
||||
>
|
||||
>>> retourne **2,CarteMere1**
|
||||
>
|
||||
>> **Fin si**
|
||||
>
|
||||
>>**Si** **Code** vaut 2
|
||||
>
|
||||
>>> retourne **2,CarteMere**
|
||||
>
|
||||
>>**Fin Si**
|
||||
>
|
||||
>>// Sinon aucun assemblage est bon
|
||||
>
|
||||
>> retourne **0,CarteMere**
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
>// Cas 5: **Code** vaut 4, il y a plusieur possibilitées d'assemblage.On va donc essayer les deux possibilités proposées.
|
||||
>
|
||||
>**Si** **Code** vaut 4
|
||||
>
|
||||
>> **CarteParallele** = **CarteMere**
|
||||
>
|
||||
>> // On teste les deux possibilité
|
||||
>
|
||||
>> **Code**,**CarteMere** = Assemblage(**TasDeCarte**,**CopieCarteMere** + **CarteParallele**)
|
||||
>
|
||||
>> **Code1**,**CarteMere1** = Assemblage(**TasDeCarte**,**CopieCarteMere** + rotationHorizontale(**CarteParallele**))
|
||||
>
|
||||
>> // On regarde si l'une des deux possibilité fonctionne
|
||||
>
|
||||
>>**Si** **Code1** vaut 2
|
||||
>
|
||||
>>> retourne **2,CarteMere1**
|
||||
>
|
||||
>> **Fin si**
|
||||
>
|
||||
>>**Si** **Code** vaut 2
|
||||
>
|
||||
>>> retourne **2,CarteMere**
|
||||
>
|
||||
>>**Fin Si**
|
||||
>
|
||||
>>// Sinon aucun assemblage est bon
|
||||
>
|
||||
>> retourne **0,CarteMere**
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
>// Cas 6 : Code vaut 1 On continue l'assemblage en appelant une nouvelle instance de l'algorithme.
|
||||
>
|
||||
>**Si** Code vaut 1
|
||||
>
|
||||
>> retourne Assemblage(**TasDeCarte**,**CarteMere**)
|
||||
>
|
||||
>**Fin si**
|
||||
>
|
||||
### FIN
|
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: "Fichier des contacts"
|
||||
---
|
||||
|
||||
|
||||
| Nom | Prenom | Telephone | Email perso | Telephone des parents |
|
||||
|---------|-----------|----------------|----------------------------|----------------------|
|
||||
| Golfier | Alexandre | 06 47 33 37 79 | alexandre@golfier.eu | 06 14 11 49 31 |
|
||||
| Peralde | François | 07 82 58 66 51 | francois.peralde@gmail.com | 02 41 52 31 89 |
|
||||
| Souchon | Théo | 06 95 40 82 34 | souchontpro@gmail.com | 06 61 92 74 87 |
|
||||
| Sevret | Yannis | 06 44 26 97 21 | sevret.yannis@gmail.com | 02 48 61 15 42 |
|
||||
| Toffin | Cyril | 07 68 75 74 20 | cyril.toffin@gmail.com | 04 76 84 95 41 |
|
@ -0,0 +1,3 @@
|
||||
# swish
|
||||
|
||||
Swish web
|
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 9.5 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 24 KiB |
@ -0,0 +1,157 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head lang="fr">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<title>SwishGame</title>
|
||||
<link rel="stylesheet" type="text/css" href="css/style.css">
|
||||
<script type="text/javascript" src="js/main.js"></script>
|
||||
</head>
|
||||
<body onload="ChoisirPseudo()">
|
||||
|
||||
|
||||
|
||||
<div id="pageAccueil">
|
||||
<div class="logo">
|
||||
<a onclick="journuit()">
|
||||
<img src="imgs/swishjour.png" id="imglogo">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="containpseudo">
|
||||
<a onclick="lancerpartie()">
|
||||
<div id="contourbuttonvalider">
|
||||
<div class="bouttonvalider">
|
||||
<h1 id="textjouer">JOUER</h1>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
<div id="containpseudo">
|
||||
<div id="pseudoenter">
|
||||
<div id="fondinput">
|
||||
<input onkeypress="ajouterplayer(event)" maxlength="12" id="inputpseudo">
|
||||
</div>
|
||||
</div>
|
||||
<a onclick="EnvoyerNouveauNom()">
|
||||
<div id="contourbuttonvalider">
|
||||
<div class="bouttonvalider" >
|
||||
<h1 id="textjouer">JOUER</h1>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<div id="buttonadd">
|
||||
<a onclick="addplayer()">
|
||||
<h2 id="textplus">+</h2>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="containplayers">
|
||||
</div>
|
||||
-->
|
||||
|
||||
<div id="ContainBottom">
|
||||
<!-- Forme : rond-->
|
||||
<div class="containform">
|
||||
<div class="anneau">
|
||||
<div class="rondinterieur inté"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="containform">
|
||||
<div class="rond"></div>
|
||||
</div>
|
||||
|
||||
<!-- Forme : carré-->
|
||||
<div class="containform">
|
||||
<div class="carre">
|
||||
<div class="carreinterieur inté"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="containform">
|
||||
<div class="pcarre"></div>
|
||||
</div>
|
||||
|
||||
<!-- Forme : triangle-->
|
||||
<div class="containform">
|
||||
<div class="triangle">
|
||||
<div class="trianglerinterieur"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="containform">
|
||||
<div class="ptriangle"></div>
|
||||
</div>
|
||||
|
||||
<!-- Forme : pentagone-->
|
||||
<div class="containform">
|
||||
<div class="triangletrapezeinte"></div>
|
||||
<div class="trapezeinte"></div>
|
||||
<div class="triangletrapeze"></div>
|
||||
<div class="trapeze"></div>
|
||||
</div>
|
||||
|
||||
<div class="containform">
|
||||
<div class="triangletrapezep"></div>
|
||||
<div class="trapezep"></div>
|
||||
</div>
|
||||
|
||||
<!-- Forme : losange -->
|
||||
<div class="containform">
|
||||
<div class="losangephaut"></div>
|
||||
<div class="losangepbas"></div>
|
||||
<div class="losangephauti"></div>
|
||||
<div class="losangepbasi"></div>
|
||||
|
||||
</div>
|
||||
<div class="containform">
|
||||
<div class="losangephautc"></div>
|
||||
<div class="losangepbasc"></div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mounts">
|
||||
<img src="imgs/lightcloud.png" id="cloud">
|
||||
<img src="imgs/mount1.png" id="mount1">
|
||||
<img src="imgs/mount2.png" id="mount2">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="pageGame">
|
||||
<div class="menuhaut">
|
||||
<div id="Redistribution">
|
||||
<a onclick="creecarte()">
|
||||
<div id="contourbuttonvalider">
|
||||
<div class="bouttonvalider">
|
||||
<h1 id="textjouer">RELANCER</h1>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="logop2">
|
||||
<a onclick="journuit()">
|
||||
<img src="imgs/swishjour.png" id="imglogo2">
|
||||
</a>
|
||||
</div>
|
||||
<a class="retourstp" onclick="retour()">
|
||||
<div class="buttonretour">
|
||||
<h1 class="txt">X</h1>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="containcards" class="containcards">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
@ -0,0 +1,263 @@
|
||||
var mode = 1;
|
||||
var nbplayers = 1;
|
||||
var lightprima = "#DEDEDE";
|
||||
var lightsedonca = "#B7B7B7";
|
||||
var lighttercia = "#E6E6E6";
|
||||
|
||||
var darkprima = "#474747";
|
||||
var darkseconda = "#393939";
|
||||
var darktercia = "#606060";
|
||||
var carteselect = [];
|
||||
|
||||
function journuit(){
|
||||
//mode jour
|
||||
if(mode%2 == 0){
|
||||
//changer logo swish
|
||||
document.getElementById("imglogo").src = "imgs/swishjour.png";
|
||||
document.getElementById("imglogo2").src = "imgs/swishjour.png";
|
||||
|
||||
document.getElementById("fondinput").style.backgroundColor = lightsedonca;
|
||||
document.getElementById("contourbuttonvalider").style.backgroundColor = lightsedonca;
|
||||
document.getElementById("textjouer").style.color = lightsedonca;
|
||||
document.getElementById("textplus").style.color = lightprima;
|
||||
//changer montagnesfond
|
||||
document.getElementById("mount1").src = "imgs/mount1.png";
|
||||
document.getElementById("mount2").src = "imgs/mount2.png";
|
||||
//nuages
|
||||
document.getElementById("cloud").src = "imgs/lightcloud.png";
|
||||
//changer background color
|
||||
document.getElementById("containplayers").style.color = lightsedonca;
|
||||
//maj couleur principales
|
||||
document.documentElement.style.setProperty('--lightprima',lightprima);
|
||||
document.documentElement.style.setProperty('--lightsedonca',lightsedonca);
|
||||
document.documentElement.style.setProperty('--lighttercia',lighttercia);
|
||||
}
|
||||
//mode nuit
|
||||
else {
|
||||
//changer logo swish
|
||||
document.getElementById("imglogo").src = "imgs/swishnuit.png";
|
||||
document.getElementById("imglogo2").src = "imgs/swishnuit.png";
|
||||
//bouttonjouer
|
||||
document.getElementById("fondinput").style.backgroundColor = darkseconda;
|
||||
document.getElementById("contourbuttonvalider").style.backgroundColor = darkseconda;
|
||||
document.getElementById("textjouer").style.color = darkseconda;
|
||||
document.getElementById("textplus").style.color = darkprima;
|
||||
//changer montagnesfond
|
||||
document.getElementById("mount1").src = "imgs/darkmount1.png";
|
||||
document.getElementById("mount2").src = "imgs/darkmount2.png";
|
||||
//nuages
|
||||
document.getElementById("cloud").src = "imgs/darkcloud.png";
|
||||
//mode nuit
|
||||
//document.getElementById("containplayers").style.color = darkseconda;
|
||||
//maj couleur principales
|
||||
document.documentElement.style.setProperty('--lightprima',darkprima);
|
||||
document.documentElement.style.setProperty('--lightsedonca',darkseconda);
|
||||
document.documentElement.style.setProperty('--lighttercia',darktercia);
|
||||
}
|
||||
mode=mode+1;
|
||||
}
|
||||
|
||||
function lancerpartie() {
|
||||
document.getElementById("pageAccueil").style.visibility = "hidden";
|
||||
creecarte();
|
||||
document.getElementById("pageGame").style.visibility = "visible";
|
||||
}
|
||||
|
||||
function retour() {
|
||||
document.getElementById("pageAccueil").style.visibility = "visible";
|
||||
document.getElementById("pageGame").style.visibility = "hidden";
|
||||
}
|
||||
|
||||
|
||||
function creecarte() {
|
||||
|
||||
while (document.getElementById("containcards").firstElementChild != null) {
|
||||
document.getElementById("containcards").firstElementChild.remove();
|
||||
}
|
||||
for (var j = 1; j <= 16; j++) {
|
||||
//lien clicable
|
||||
var newlink = document.createElement('a');
|
||||
newlink.id = j;
|
||||
//fonction de selection
|
||||
newlink.onclick = function selectioncarte() {
|
||||
macarte = this.id;
|
||||
lacarte = "card" + macarte;
|
||||
if (document.getElementById(lacarte).style.boxShadow != "") {
|
||||
var pos = carteselect.indexOf(lacarte);
|
||||
carteselect.splice(pos, 1);
|
||||
document.getElementById(lacarte).style.boxShadow = "";
|
||||
}
|
||||
else {
|
||||
if (carteselect.length < 5) {
|
||||
carteselect.push(lacarte);
|
||||
document.getElementById(lacarte).style.boxShadow = "0 0 1vw red, 0 0 1vw red";
|
||||
}
|
||||
else
|
||||
window.alert("Bonjour !");
|
||||
}
|
||||
};
|
||||
//div carte
|
||||
var divconteneur = document.createElement('div');
|
||||
divconteneur.className = "flex-item";
|
||||
divconteneur.id = "card" + j;
|
||||
|
||||
|
||||
|
||||
//div case
|
||||
//ICI A VOIR POUR AJOUTER LES FORMES EN FONCTION DE LA MATRICE
|
||||
var uneMatrice = creaMatrice();
|
||||
for (var i = 0; i < 12; i++) {
|
||||
|
||||
var divcase = document.createElement('div');
|
||||
divcase.className = "item-form";
|
||||
|
||||
// Point ou anneau trouvé => création
|
||||
if (uneMatrice[i % 3][Math.floor(i / 3)] == 1) {
|
||||
|
||||
var divContainForm = document.createElement('div');
|
||||
divContainForm.className = "containform";
|
||||
|
||||
var unRond = document.createElement('div');
|
||||
unRond.className = "rond";
|
||||
//unRond.style.backgroundColor = "#000DFF";
|
||||
|
||||
if (i == 0 || i == 2 || i == 9 || i == 11) {
|
||||
unRond.style.backgroundColor = "#00CBFF";
|
||||
}
|
||||
if (i == 1 || i == 10) {
|
||||
unRond.style.backgroundColor = "#00FF6E";
|
||||
}
|
||||
if (i == 4 || i == 7) {
|
||||
unRond.style.backgroundColor = "#C800FF";
|
||||
}
|
||||
divContainForm.appendChild(unRond);
|
||||
divcase.appendChild(divContainForm);
|
||||
|
||||
}
|
||||
|
||||
// Point ou anneau trouvé => création
|
||||
if (uneMatrice[i % 3][Math.floor(i / 3)] == 2) {
|
||||
|
||||
var divContainForm = document.createElement('div');
|
||||
divContainForm.className = "containform";
|
||||
|
||||
var unCercle = document.createElement('div');
|
||||
unCercle.className = "anneau";
|
||||
|
||||
if (i == 0 || i == 2 || i == 9 || i == 11) {
|
||||
unCercle.style.backgroundColor = "#00CBFF";
|
||||
}
|
||||
if (i == 1 || i == 10) {
|
||||
unCercle.style.backgroundColor = "#00FF6E";
|
||||
}
|
||||
if (i == 4 || i == 7) {
|
||||
unCercle.style.backgroundColor = "#C800FF";
|
||||
}
|
||||
|
||||
var unRond = document.createElement('div');
|
||||
unRond.className = "rondinterieur inté";
|
||||
|
||||
unCercle.appendChild(unRond);
|
||||
divContainForm.appendChild(unCercle);
|
||||
divcase.appendChild(divContainForm);
|
||||
|
||||
}
|
||||
//ajout de l'élément dans la carte
|
||||
divconteneur.appendChild(divcase);
|
||||
}
|
||||
newlink.appendChild(divconteneur);
|
||||
document.getElementById("containcards").appendChild(newlink);
|
||||
}
|
||||
}
|
||||
|
||||
function getRandom(min, max) {
|
||||
return Math.round(Math.random() * (max - min) + min)
|
||||
}
|
||||
|
||||
function creaMatrice() {
|
||||
var cols = 3;
|
||||
var rows = 4;
|
||||
var myMatrice = new Array();
|
||||
for (var i = 0; i < cols; i++) {
|
||||
myMatrice[i] = new Array();
|
||||
for (var j = 0; j < rows; j++) {
|
||||
myMatrice[i][j] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
var Cox1, Coy1, Cox2, Coy2;
|
||||
|
||||
Cox1 = getRandom(0, 2);
|
||||
Coy1 = getRandom(0, 3);
|
||||
|
||||
myMatrice[Cox1][Coy1] = 1;
|
||||
|
||||
Cox2 = getRandom(0, 2);
|
||||
Coy2 = getRandom(0, 3);
|
||||
|
||||
while (Cox2 == Cox1 && Coy1 == Coy2) {
|
||||
Cox2 = getRandom(0, 2);
|
||||
Coy2 = getRandom(0, 3);
|
||||
}
|
||||
myMatrice[Cox2][Coy2] = 2;
|
||||
|
||||
return myMatrice;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function ChoisirPseudo(){
|
||||
let nom = localStorage.getItem('nom');
|
||||
if(nom==null){
|
||||
nom="SWISH";
|
||||
}
|
||||
document.getElementById('inputpseudo').setAttribute('value', nom);
|
||||
};
|
||||
|
||||
function EnvoyerNouveauNom(){
|
||||
let pseudo = document.getElementById('inputpseudo').value;
|
||||
localStorage.setItem('nom', pseudo);
|
||||
document.location.reload(true);
|
||||
|
||||
};
|
||||
|
||||
/*
|
||||
function addplayer(){
|
||||
//j'ai mis une limite de 6joueurs, mais c'est à voir
|
||||
if(nbplayers < 7){
|
||||
//création de la div contenant le pseudo
|
||||
var divpseudo = document.createElement('div');
|
||||
divpseudo.id = 'pseudolist';
|
||||
//reprise du pseudo entré par le joueur
|
||||
var pseudo = document.getElementById("inputpseudo").value;
|
||||
//vérification si pseudo vide pour lui donner un pseudo du style "Joueur3"
|
||||
if(pseudo == "")
|
||||
{
|
||||
pseudo = "Joueur " + nbplayers;
|
||||
}
|
||||
//création du text-pseudo
|
||||
var tag = document.createElement("p");
|
||||
tag.className = "pseudojoueur";
|
||||
var text = document.createTextNode(pseudo);
|
||||
tag.appendChild(text);
|
||||
//mise du text dans la division
|
||||
divpseudo.appendChild(tag);
|
||||
//insertion pseudo dans liste
|
||||
document.getElementById("containplayers").appendChild(divpseudo);
|
||||
//remise input vide ;)
|
||||
document.getElementById("inputpseudo").value = "";
|
||||
nbplayers = nbplayers +1;
|
||||
}
|
||||
}
|
||||
|
||||
function ajouterplayer(event){
|
||||
if(event.keyCode == 13)
|
||||
addplayer();
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|