Mis à jour de certain Problème + ajout bouton test génaration main.js et index.html

Golfier
Yannis 5 years ago
parent 3a699e2731
commit 3104c74b51

@ -1,141 +0,0 @@
# 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

@ -1,354 +0,0 @@
# 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

@ -1,103 +0,0 @@
# PROJET TUTORE SWISH
## Objectif général du projet :
Codage dun jeu (hébergé sur un site internet) basé sur le jeu Swish. Les règles
doivent être les mêmes au minimum et peut intégrer des fonctionnalités supplémentaires.
En suivant la méthode de travail “agile”, on doit pouvoir fournir une version minimaliste
fonctionnelle du projet avant l'implémentation de fonctionnalité.
> source agile : https://fr.wikipedia.org/wiki/M%C3%A9thode_agile
## Version minimal et options :
Swish : Jeu de 60 cartes composé chacun de billes et de cerceaux, de 4 couleurs
différentes possibles. 16 cartes sont posés sur une table et le joueur doit faire superposer
des cartes de manière que chaque bille soit dans le cerceau de même couleur dune autre
carte.
Fonctionnalités supplémentaire : Un mode multijoueur, mode de jeux : no time-limit
et course contre la montre, mode jour et nuit, mode daltonien, mode difficile, voir ses
statistiques (best score)
> source swish : https://reglesdejeux.github.io/regles-du-jeu-swish/index.html
## Organisation de travail :
### INDIVIDUS RÔLES
```
LAFOURCADE Pascal Encadrant et référent
TOFFIN Cyril Participant au projet
SOUCHON Théo Participant au projet
PERALDE François Participant au projet
SEVRET Yannis Participant au projet
GOLFIER Alexandre Participant au projet
```
### TÂCHES
|François|Cyril|Théo|Yannis|Alexandre|
|--------|-----|----|------|---------|
|Mode jour| | Cahier des charges|fonction matrice comparaison cartes | Test multijoueur|
|Mode daltonien | | | | |
## Diagramme dutilisation :
<img src="../img/DiagUtilisiation.png"
alt="Markdown Monster icon" />
## Description du diagramme dutilisation :
### Cas n°1 : Utiliser le ModeNuit-Jour :
```
● Acteur : Joueur / Admin
● Condition dutilisation : Lutilisateur doit être sur le site
● Description : Fonctionnalité permettant de dinverser la clarté des couleurs du site,
entre clair et sombre.
● Scénario de succès :
○ Lutilisateur arrive sur le site
○ Lutilisateur clique sur le bouton “ModeNuit-Jour”
○ La clarté des couleurs est inversé
```
### Cas n°2 : Joueur une partie :
```
● Acteur : Joueur / Admin
● Condition dutilisation : Lutilisateur doit être sur le site
● Description : Fonctionnalité permettant de lancer une partie de swish.
● Scénario de succès :
○ Lutilisateur arrive sur le site
○ Lutilisateur clique sur le bouton “Lancer une partie”
○ La partie est lancé
```
### Cas n°3 : Voir ses statistiques :
```
● Acteur : Joueur / Admin
● Condition dutilisation : Lutilisateur doit être sur le site et avoir joué une partie
● Description : Fonctionnalité permettant de voir ses statistiques sur ses parties de
swish.
● Scénario de succès :
○ Lutilisateur arrive sur le site
○ Lutilisateur clique sur le bouton “Statistique”
○ Les statistiques sont affiché
● Scénario d'échec :
○ Lutilisateur arrive sur le site
○ Lutilisateur clique sur le bouton “Statistique”
○ Un message derreur est affiché
```
### Cas n°4 : Voir les règles du jeu :
```
● Acteur : Joueur / Admin
● Condition dutilisation : Lutilisateur doit être sur l'accueil du site
● Description : Fonctionnalité permettant de voir les règles du jeu swish.
● Scénario de succès :
○ Lutilisateur arrive sur le site
○ Lutilisateur clique sur le bouton “Règles”
○ Les règles sont affichées
```
## Problèmes rencontrés :
Pour voir ses statistiques, faut-il un compte? Est-ce local? Faut un nom dutilisateur
?

File diff suppressed because it is too large Load Diff

@ -1,12 +0,0 @@
---
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 |

@ -1,3 +0,0 @@
# swish
Swish web

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

@ -1,148 +0,0 @@
<!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 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>

@ -1,235 +0,0 @@
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(){
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";
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";
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();
}
Loading…
Cancel
Save