Compare commits
No commits in common. 'master' and 'Golfier' have entirely different histories.
@ -0,0 +1,51 @@
|
|||||||
|
function sdf(){
|
||||||
|
window.alert("lksjdf");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function creerPartie(){
|
||||||
|
localStorage.setItem("nomJoueur", "J1");
|
||||||
|
}
|
||||||
|
|
||||||
|
function affichage(){
|
||||||
|
document.getElementById("instructions").innerHTML = localStorage.getItem("nomJoueur");
|
||||||
|
if( localStorage.getItem("nomJoueur") == 'J1'){
|
||||||
|
document.getElementById("messages").innerHTML = "Tu joues les croix"
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
document.getElementById("messages").innerHTML = "Tu joues les ronds"
|
||||||
|
window.alert(localStorage.getItem("nomJoueur"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function ValidateEmail(entre)
|
||||||
|
{
|
||||||
|
if (entre!="X" ||(entre !="x"))
|
||||||
|
{
|
||||||
|
return (true)
|
||||||
|
}
|
||||||
|
alert("You have entered an invalid email address!")
|
||||||
|
return (false)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
function rejoindrepartie(){
|
||||||
|
localStorage.setItem("nomJoueur", "J2");
|
||||||
|
}
|
||||||
|
|
||||||
|
function Tourdequi(joueur){
|
||||||
|
if(tab j1 + tabj2 .lenght %2==0){
|
||||||
|
return J1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return J2;
|
||||||
|
}
|
||||||
|
|
||||||
|
function finirpartie(){
|
||||||
|
localStorage.removeItem("nomJoueur");
|
||||||
|
}
|
||||||
|
|
||||||
|
localStorage.setItem("lastname", "Smith");
|
||||||
|
// Retrieve
|
||||||
|
document.getElementById("result").innerHTML = localStorage.getItem("lastname"); */
|
@ -0,0 +1,18 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head lang="fr">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<title>Morpion</title>
|
||||||
|
<link rel="stylesheet" href="css.css">
|
||||||
|
<script type="text/javascript" src="js.js"></script>
|
||||||
|
</head>
|
||||||
|
<body onload="sdf()">
|
||||||
|
<h1><button onclick="creerPartie()">Créer partie</button></h1>
|
||||||
|
<h1><input type="b" name="sdf" placeholder="Mettre id de la partie"><button>Rejoindre</button></h1>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head lang="fr">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<title>Morpion p2</title>
|
||||||
|
<link rel="stylesheet" href="css.css">
|
||||||
|
<script type="text/javascript" src="js.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body onload="affichage()">
|
||||||
|
<header>
|
||||||
|
<h1>Morpion</h1>
|
||||||
|
</header>
|
||||||
|
<div class="messages" id="messages">
|
||||||
|
<h2></h2>
|
||||||
|
</div>
|
||||||
|
<div class="instructions" id="instructions">
|
||||||
|
<p>Click in a box to play</p>
|
||||||
|
</div>
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<input></input required pattern="banane|cerise">
|
||||||
|
<input></input>
|
||||||
|
<input></input>
|
||||||
|
<br>
|
||||||
|
<input></input>
|
||||||
|
<input></input>
|
||||||
|
<input></input>
|
||||||
|
<br>
|
||||||
|
<input></input>
|
||||||
|
<input></input>
|
||||||
|
<input></input>
|
||||||
|
</div>
|
||||||
|
<button onclick="verifier(document.getElementById("in").value)">Valider</button>
|
||||||
|
|
||||||
|
|
||||||
|
<br> <button class="reset">Rénisitalisation</button>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
session_start();
|
|
||||||
require_once "ConnexionBDD.php";
|
|
||||||
//Actualisation de l'IDpartie
|
|
||||||
$idparte = $_SESSION['idpartie'];
|
|
||||||
echo "<div id='iddelapartie' <h2 id='ids'>Identifiant partie : </h2>";
|
|
||||||
echo "<input type='text' value='$idparte' id='Monidpartie'>";
|
|
||||||
echo "<button onclick='MaFonction()'>Copier identifiant</button> </div>";
|
|
||||||
|
|
||||||
|
|
||||||
$db=new MyDB();
|
|
||||||
$afficher = $db->query('SELECT * FROM partieCartes where IdPartie="'.$idparte.'" ');
|
|
||||||
$tableau =[];
|
|
||||||
while ($row = $afficher->fetchArray()) {
|
|
||||||
$un=$row['colUn'];
|
|
||||||
$deux=$row['colDeux'];
|
|
||||||
$trois=$row['colTrois'];
|
|
||||||
$tout=$un.','.$deux.','.$trois;
|
|
||||||
// $entier=$entier+1;
|
|
||||||
array_push($tableau,$tout);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($tableau as $val) {
|
|
||||||
//echo "<h2 class='contientphp'> $val d</h2>";
|
|
||||||
}
|
|
||||||
$comma_separated = implode(",", $tableau);
|
|
||||||
$_SESSION['listecartebdd']=$comma_separated;
|
|
@ -1,24 +0,0 @@
|
|||||||
<?php
|
|
||||||
class MyDB extends SQLite3
|
|
||||||
{
|
|
||||||
function __construct()
|
|
||||||
{
|
|
||||||
$this->open('mysqlitedb.db');
|
|
||||||
//$this->exec('CREATE TABLE partieScore(IdPartie STRING PRIMARY KEY,scorePremierJ STRING,scoreDeuxiemeJ STRING, pseudoPremierJ STRING,pseudoDeuxiemeJ STRING)');
|
|
||||||
//$this->exec('CREATE TABLE partieCartes(IdPartie STRING ,IdCarte STRING,colUn STRING, colDeux STRING, colTrois STRING)');
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function genererChaineAleatoire($longueur = 10)
|
|
||||||
{
|
|
||||||
$caracteres = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
||||||
$longueurMax = strlen($caracteres);
|
|
||||||
$chaineAleatoire = '';
|
|
||||||
for ($i = 0; $i < $longueur; $i++)
|
|
||||||
{
|
|
||||||
$chaineAleatoire .= $caracteres[rand(0, $longueurMax - 1)];
|
|
||||||
}
|
|
||||||
return $chaineAleatoire;
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
|||||||
<?php
|
|
||||||
session_start();
|
|
||||||
require_once("ConnexionBDD.php");
|
|
||||||
$db = new MyDB();
|
|
||||||
|
|
||||||
$id=$_SESSION['idpartie'];
|
|
||||||
$requete ="DELETE FROM partieScore where IdPartie='".$id."'";
|
|
||||||
$suppression = $db->query($requete);
|
|
||||||
|
|
||||||
$newid=genererChaineAleatoire(10);
|
|
||||||
$_SESSION['idpartie']=$newid;
|
|
||||||
$db->query('INSERT INTO partieScore(IdPartie) VALUES("'.$newid.'")');
|
|
||||||
|
|
||||||
$requete2 ="DELETE FROM partieCartes where IdPartie='".$id."'";
|
|
||||||
$suppression2 = $db->query($requete2);
|
|
||||||
|
|
||||||
for ($i = 1; $i <= 16; $i++) {
|
|
||||||
$db->query('INSERT INTO partieCartes(IdPartie,IdCarte) VALUES("'.$newid.'","'.$i.'")');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
|||||||
<?php
|
|
||||||
require "ConnexionBDD.php";
|
|
||||||
$db=new MyDB();
|
|
||||||
$update = $db->query('DELETE FROM partieCartes');
|
|
||||||
$update = $db->query('DELETE FROM partieScore');
|
|
@ -1,493 +0,0 @@
|
|||||||
#pageAccueil {
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cloud {
|
|
||||||
z-index: 10
|
|
||||||
}
|
|
||||||
|
|
||||||
#mount1 {
|
|
||||||
z-index: 11;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mount2 {
|
|
||||||
z-index: 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containerparam{
|
|
||||||
position: absolute;
|
|
||||||
display: flex;
|
|
||||||
margin-left: 1vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containerparam > div {
|
|
||||||
margin-right: 4vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*SETTINGS*/
|
|
||||||
#forme{
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#couleurs{
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pannel{
|
|
||||||
height: 100px;
|
|
||||||
width: 100px;
|
|
||||||
background-color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pickrcontner{
|
|
||||||
position: relative;
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: space-around;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Mode_Setting{
|
|
||||||
height: 20vw;
|
|
||||||
position: relative;
|
|
||||||
margin : 0 auto;
|
|
||||||
}
|
|
||||||
#BottomSetings{
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
height: 5vw;
|
|
||||||
width: 100%;
|
|
||||||
border-radius: 0 0 0.3vw 0.3vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#SettingBefore{
|
|
||||||
height: 5vw;
|
|
||||||
width: 5vw;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
color: black;
|
|
||||||
font-size: 3vw;
|
|
||||||
visibility: collapse;
|
|
||||||
}
|
|
||||||
#SettingAfter{
|
|
||||||
bottom: 5vw;
|
|
||||||
position: relative;
|
|
||||||
height: 5vw;
|
|
||||||
width: 5vw;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#testSettings{
|
|
||||||
position: absolute;
|
|
||||||
color: black;
|
|
||||||
bottom: 0;
|
|
||||||
left: 18vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ShapeSettings{
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
margin: auto 2vw;
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
.ShapeContener{
|
|
||||||
height: 9vw;
|
|
||||||
width: 9vw;
|
|
||||||
margin-left: 1vw;
|
|
||||||
position: relative;
|
|
||||||
display: table-cell;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
.settingShape{
|
|
||||||
background-color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Colorone{background-color: var(--colorbase);}
|
|
||||||
.Colortwo{background-color: var(--colorcarre);}
|
|
||||||
.Colorthree{background-color: var(--colorone);}
|
|
||||||
.Colorfour{background-color: var(--colortwo);}
|
|
||||||
.Colorfive{background-color: var(--colorthree);}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*Bouton info*/
|
|
||||||
#infosec{
|
|
||||||
z-index:15;
|
|
||||||
width: 2vw;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#info {
|
|
||||||
color: var(--lightprima);
|
|
||||||
text-decoration: none;
|
|
||||||
font-size: 45px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#info:hover {
|
|
||||||
color: var(--lightprima);
|
|
||||||
}
|
|
||||||
|
|
||||||
.activity {
|
|
||||||
padding: 0;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
-webkit-transition: box-shadow 0.2s ease;
|
|
||||||
-moz-transition: box-shadow 0.2s ease;
|
|
||||||
transition: box-shadow 0.2s ease;
|
|
||||||
-webkit-backface-visibility: hidden;
|
|
||||||
backface-visibility: hidden;
|
|
||||||
border-radius: 50%;
|
|
||||||
color: #B7B7B7;
|
|
||||||
display: inline-block;
|
|
||||||
font-size: 0.889em;
|
|
||||||
height: 3em;
|
|
||||||
position: relative;
|
|
||||||
text-align: center;
|
|
||||||
text-transform: lowercase;
|
|
||||||
width: 3em;
|
|
||||||
line-height: 3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
li a {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
li:hover {
|
|
||||||
box-shadow: 0 0 0 7px var(--lightsedonca);
|
|
||||||
font-size:99%;
|
|
||||||
position:relative;
|
|
||||||
right:5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
li:before {
|
|
||||||
border-radius: 50%;
|
|
||||||
bottom: 0;
|
|
||||||
box-shadow: 0 0 0 4px var(--lightsedonca);
|
|
||||||
content: '';
|
|
||||||
left: 0;
|
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
top: 0;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Les règles popups*/
|
|
||||||
.overlay {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
background: rgba(0, 0, 0, 0.7);
|
|
||||||
transition: opacity 500ms;
|
|
||||||
visibility: hidden;
|
|
||||||
opacity: 0;
|
|
||||||
z-index: 210;
|
|
||||||
}
|
|
||||||
|
|
||||||
.overlay:target {
|
|
||||||
visibility: visible;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup {
|
|
||||||
margin: 70px auto;
|
|
||||||
padding: 20px;
|
|
||||||
background: #fff;
|
|
||||||
border-radius: 5px;
|
|
||||||
width: 30%;
|
|
||||||
position: relative;
|
|
||||||
top:25%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup h2 {
|
|
||||||
margin-top: 0;
|
|
||||||
color: #333;
|
|
||||||
font-family: Tahoma, Arial, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup .close {
|
|
||||||
position: absolute;
|
|
||||||
top: 20px;
|
|
||||||
right: 30px;
|
|
||||||
transition: all 200ms;
|
|
||||||
font-size: 30px;
|
|
||||||
font-weight: bold;
|
|
||||||
text-decoration: none;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup .close:hover {
|
|
||||||
color: #06D85F;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup .content {
|
|
||||||
max-height: 30%;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Parametres*/
|
|
||||||
|
|
||||||
.popup2 {
|
|
||||||
margin: 70px auto;
|
|
||||||
padding: 20px;
|
|
||||||
background: #fff;
|
|
||||||
border-radius: 5px;
|
|
||||||
width: 45%;
|
|
||||||
height: 65%;
|
|
||||||
position: relative;
|
|
||||||
top:10%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup2 h2 {
|
|
||||||
margin-top: 0;
|
|
||||||
color: #333;
|
|
||||||
font-family: Tahoma, Arial, sans-serif;
|
|
||||||
}
|
|
||||||
h3 {
|
|
||||||
margin: 0;
|
|
||||||
color: #333;
|
|
||||||
font-family: Tahoma, Arial, sans-serif;
|
|
||||||
}
|
|
||||||
.popup2 .close {
|
|
||||||
position: absolute;
|
|
||||||
top: 20px;
|
|
||||||
right: 30px;
|
|
||||||
transition: all 200ms;
|
|
||||||
font-size: 30px;
|
|
||||||
font-weight: bold;
|
|
||||||
text-decoration: none;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
.popup2 .close:hover {
|
|
||||||
color: #06D85F;
|
|
||||||
}
|
|
||||||
.popup2 .content {
|
|
||||||
max-height: 30%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.titre{
|
|
||||||
display: ruby-base;
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
cursor: pointer;
|
|
||||||
text-indent: -9999px;
|
|
||||||
width: 2vw;
|
|
||||||
height: 1vw;
|
|
||||||
background: grey;
|
|
||||||
display: block;
|
|
||||||
border-radius: 100px;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
label:after {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
top: 0.1vw;
|
|
||||||
left: 0.1vw;
|
|
||||||
width: 0.8vw;
|
|
||||||
height: 0.8vw;
|
|
||||||
background: #fff;
|
|
||||||
border-radius: 90px;
|
|
||||||
transition: 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
input:checked + label {
|
|
||||||
background: #bada55;
|
|
||||||
}
|
|
||||||
|
|
||||||
input:checked + label:after {
|
|
||||||
left: calc(100% - 0.1vw);
|
|
||||||
transform: translateX(-100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
label:active:after {
|
|
||||||
width: 1.4vw;
|
|
||||||
}
|
|
||||||
/* J'ai trop avancé, mode multi*/
|
|
||||||
|
|
||||||
|
|
||||||
#containpseudo {
|
|
||||||
position: absolute;
|
|
||||||
height: 15%;
|
|
||||||
width: 30%;
|
|
||||||
z-index: 12;
|
|
||||||
left: 35%;
|
|
||||||
top: 30%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bouttonvalider:hover {
|
|
||||||
box-shadow: 0 0 0 8px var(--lightsedonca);
|
|
||||||
font-size: 100%;
|
|
||||||
position: relative;
|
|
||||||
transition: box-shadow 0.2s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bouttonvalider:hover {
|
|
||||||
box-shadow: 0 0 0 5px var(--lightsedonca);
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pseudoenter {
|
|
||||||
background-color: red;
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 45px;
|
|
||||||
background-color: #B130DE;
|
|
||||||
}
|
|
||||||
|
|
||||||
#inputpseudo {
|
|
||||||
position: absolute;
|
|
||||||
width: 99%;
|
|
||||||
height: 65%;
|
|
||||||
border-radius: 30px;
|
|
||||||
font-size: 3vw;
|
|
||||||
background-color: transparent;
|
|
||||||
-moz-appearance: none;
|
|
||||||
text-align: center;
|
|
||||||
color: #707070;
|
|
||||||
border-color: transparent;
|
|
||||||
font-family: impact, Arial Black;
|
|
||||||
z-index: 11;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fondinput {
|
|
||||||
background-color: red;
|
|
||||||
position: absolute;
|
|
||||||
width: 97%;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
height: 90%;
|
|
||||||
border-radius: 40px;
|
|
||||||
left: 1.5%;
|
|
||||||
top: 5%;
|
|
||||||
z-index: 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#modeprec{
|
|
||||||
height: 100%;
|
|
||||||
width: 15%;
|
|
||||||
float: left;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
#modesuiv{
|
|
||||||
height: 100%;
|
|
||||||
width: 15%;
|
|
||||||
float: right;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
#textdumode{
|
|
||||||
height: 100%;
|
|
||||||
width: 70%;
|
|
||||||
position: absolute;
|
|
||||||
left: 15%;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#buttonadd {
|
|
||||||
position: absolute;
|
|
||||||
top: 30%;
|
|
||||||
right: -12%;
|
|
||||||
height: 3vw;
|
|
||||||
width: 3vw;
|
|
||||||
border-radius: 2vw;
|
|
||||||
background-color: #B130DE;
|
|
||||||
z-index: 18;
|
|
||||||
}
|
|
||||||
|
|
||||||
#textplus {
|
|
||||||
font-size: 3vw;
|
|
||||||
font-family: arial, Arial Black;
|
|
||||||
position: absolute;
|
|
||||||
margin-top: -0.15vw;
|
|
||||||
margin-left: 0.65vw;
|
|
||||||
color: var(--lightprima);
|
|
||||||
}
|
|
||||||
|
|
||||||
#containplayers {
|
|
||||||
position: absolute;
|
|
||||||
background-color: transparent;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
width: 15vw;
|
|
||||||
height: 20vw;
|
|
||||||
z-index: 17;
|
|
||||||
right: 0%;
|
|
||||||
top: 8vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pseudojoueur {
|
|
||||||
float: right;
|
|
||||||
margin-top: 0px;
|
|
||||||
margin-bottom: 3%;
|
|
||||||
margin-right: 10%;
|
|
||||||
font-family: Lucida Console, Arial Black, Arial;
|
|
||||||
font-size: 2vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pseudolist {
|
|
||||||
width: 100%;
|
|
||||||
height: 1.7vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* === FORMES === */
|
|
||||||
|
|
||||||
.contentButton{
|
|
||||||
height: 3vw;
|
|
||||||
width: 15%;
|
|
||||||
margin : 0 auto;
|
|
||||||
position: relative;
|
|
||||||
bottom: 5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.buttonvalidersettings{
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
border-style: none;
|
|
||||||
background-color: red;
|
|
||||||
color: white;
|
|
||||||
font-family: arial;
|
|
||||||
font-size: 2vw;
|
|
||||||
border-radius: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.buttonvalidersettings:active{
|
|
||||||
background-color: blue;
|
|
||||||
}
|
|
||||||
/* LANGUES */
|
|
||||||
|
|
||||||
|
|
||||||
#cf2 img {
|
|
||||||
position:absolute;
|
|
||||||
left:0;
|
|
||||||
cursor: pointer;
|
|
||||||
-webkit-transition: opacity 0.2s ease-in-out;
|
|
||||||
-moz-transition: opacity 0.2s ease-in-out;
|
|
||||||
-o-transition: opacity 0.2s ease-in-out;
|
|
||||||
transition: opacity 0.2s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cf2 img.transparent {
|
|
||||||
opacity:0;
|
|
||||||
}
|
|
||||||
#cf_onclick {
|
|
||||||
cursor:pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
|||||||
|
|
||||||
#pageGame {
|
|
||||||
visibility: hidden;
|
|
||||||
top: -10vh;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menuhaut {
|
|
||||||
height: 10vh;
|
|
||||||
width: inherit;
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Partie Menu du haut*/
|
|
||||||
.menu{
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.retourstp {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
#Redistribution{
|
|
||||||
position:relative;
|
|
||||||
top:-3vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#affSolution {
|
|
||||||
text-align: center;
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
font-size: 2.5vw;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
width: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
#textjouer2 {
|
|
||||||
position: absolute;
|
|
||||||
text-align: center;
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
margin-top: 0.6vw;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
width: inherit;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#btnvalider2 {
|
|
||||||
position: relative;
|
|
||||||
text-align: center;
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
font-size: 2.5vw;
|
|
||||||
margin-top: 0.2vw;
|
|
||||||
margin-left: 0.2vw;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
}
|
|
||||||
|
|
||||||
#btnvalider3 {
|
|
||||||
position: relative;
|
|
||||||
text-align: center;
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
font-size: 2.5vw;
|
|
||||||
margin-top: 0.2vw;
|
|
||||||
margin-left: 0.2vw;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
}
|
|
||||||
|
|
||||||
#Redistribution2 {
|
|
||||||
position: relative;
|
|
||||||
top:-3vw;
|
|
||||||
left:68%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#Redistribution3 {
|
|
||||||
position: relative;
|
|
||||||
top:-3vw;
|
|
||||||
left: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.bouttonvalider2:hover {
|
|
||||||
box-shadow: 0 0 0 8px var(--lightsedonca);
|
|
||||||
font-size: 100%;
|
|
||||||
position: relative;
|
|
||||||
transition: box-shadow 0.2s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
#progressbar
|
|
||||||
{
|
|
||||||
position : relative;
|
|
||||||
width: 1100px;
|
|
||||||
padding:1px;
|
|
||||||
background-color:white;
|
|
||||||
border:1px solid black;
|
|
||||||
height:10px;
|
|
||||||
border-radius: 5px;
|
|
||||||
margin-top: 40px;
|
|
||||||
margin-right: auto;
|
|
||||||
margin-left: auto;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#indicateur
|
|
||||||
{
|
|
||||||
width: 800px;
|
|
||||||
background-color : green;
|
|
||||||
height:10px;
|
|
||||||
margin: 0;
|
|
||||||
|
|
||||||
}
|
|
@ -1,84 +0,0 @@
|
|||||||
/*Ecran*/
|
|
||||||
@media screen and (min-width: 960px) {
|
|
||||||
/*ROND*/
|
|
||||||
.anneau {
|
|
||||||
position: relative;
|
|
||||||
background-color: var(--colorbase);
|
|
||||||
border-radius: var(--v);
|
|
||||||
height: var(--v);
|
|
||||||
width: var(--v);
|
|
||||||
display: table-cell;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
.anneau2 {
|
|
||||||
position: relative;
|
|
||||||
background-color: white;
|
|
||||||
border-radius: var(--v);
|
|
||||||
height: var(--v);
|
|
||||||
width: var(--v);
|
|
||||||
left : calc((var(--u) - var(--v))/2);
|
|
||||||
display: table-cell;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
.anneau3 {
|
|
||||||
position: relative;
|
|
||||||
background-color: var(--colorbase);
|
|
||||||
border-radius: var(--v);
|
|
||||||
height: var(--v);
|
|
||||||
width: var(--v);
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
.rondinterieur {
|
|
||||||
background-color: var(--lighttercia);
|
|
||||||
height: var(--w);
|
|
||||||
width: var(--w);
|
|
||||||
display: table;
|
|
||||||
margin: 0 auto;
|
|
||||||
border-radius: var(--w);
|
|
||||||
}
|
|
||||||
.rond {
|
|
||||||
display: table;
|
|
||||||
margin: 0 auto;
|
|
||||||
background-color: var(--colorbase);
|
|
||||||
height: var(--w);
|
|
||||||
width: var(--w);
|
|
||||||
border-radius: var(--w);
|
|
||||||
}
|
|
||||||
|
|
||||||
.rondcache {
|
|
||||||
display: table;
|
|
||||||
margin: 0 auto;
|
|
||||||
background-color: black;
|
|
||||||
border-radius: var(--y);
|
|
||||||
}
|
|
||||||
.rond2 {
|
|
||||||
display: table;
|
|
||||||
margin: 0 auto;
|
|
||||||
background-color: white;
|
|
||||||
height: var(--w);
|
|
||||||
width: var(--w);
|
|
||||||
border-radius: var(--w);
|
|
||||||
}
|
|
||||||
.rond3 {
|
|
||||||
position: relative;
|
|
||||||
top : calc((var(--v) - var(--w))/ 2);
|
|
||||||
left : calc((var(--v) - var(--w))/2);
|
|
||||||
display: table-cell;
|
|
||||||
vertical-align: middle;
|
|
||||||
background-color: white;
|
|
||||||
height: var(--w);
|
|
||||||
width: var(--w);
|
|
||||||
border-radius: var(--w);
|
|
||||||
}
|
|
||||||
.rond4 {
|
|
||||||
display: table;
|
|
||||||
margin: 0 auto;
|
|
||||||
background-color: var(--colorbase);
|
|
||||||
height: var(--w);
|
|
||||||
width: var(--w);
|
|
||||||
border-radius: var(--w);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,128 +0,0 @@
|
|||||||
:root{
|
|
||||||
/*couleur héhé*/
|
|
||||||
--lightprima: #DEDEDE;
|
|
||||||
--lightsedonca: #B7B7B7;
|
|
||||||
--lighttercia: #E6E6E6;
|
|
||||||
/*Couleur bases*/
|
|
||||||
|
|
||||||
--colorbase : #e9546f;/*ROND*/
|
|
||||||
--colorcarre : #c97fb3;/*CARRE*/
|
|
||||||
--colorone : #00a088;/*TRIANGLE*/
|
|
||||||
--colortwo : #5880c1;/*CROIX*/
|
|
||||||
|
|
||||||
--colorseven : #e9546f;/*ROND*/
|
|
||||||
--coloreight : #c97fb3;/*CARRE*/
|
|
||||||
--colornine : #00a088;/*TRIANGLE*/
|
|
||||||
--colorten : #5880c1;/*CROIX*/
|
|
||||||
--colorthree : #E6792F;/*LOSANGE*/
|
|
||||||
--colorfour : #E6DA27;/*PENTA*/
|
|
||||||
--colorfive : #2E6DB4;/*HEXA*/
|
|
||||||
--colorsix : #E6792F;/*HOCTO*/
|
|
||||||
|
|
||||||
/*Tailles cartes*/
|
|
||||||
--tailleTablette : 12vw;
|
|
||||||
--taille: 10vw;
|
|
||||||
/*Les formes*/
|
|
||||||
--u: calc(var(--x) / 2.75);
|
|
||||||
--v: calc(var(--y) / 2.75);
|
|
||||||
--w: calc(var(--z) / 2.75);
|
|
||||||
/*Les formes settings*/
|
|
||||||
--x : 10vw;
|
|
||||||
--y : 7vw;
|
|
||||||
--z : 3.75vw;
|
|
||||||
/*Formes ete*/
|
|
||||||
--l: 3vw;
|
|
||||||
--m: 2.5vw;
|
|
||||||
--n: 1.5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.test{
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
cursor: pointer;
|
|
||||||
z-index: 60;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
body {
|
|
||||||
background-color: var(--lightprima);
|
|
||||||
height: 100%;
|
|
||||||
overflow-x: hidden;
|
|
||||||
overflow-y: hidden;
|
|
||||||
/*Desactiver la selection*/
|
|
||||||
-webkit-user-select: none; /* Chrome / Safari */
|
|
||||||
-moz-user-select: none; /* Firefox */
|
|
||||||
-ms-user-select: none; /* IE 10+ */
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ContainBottom {
|
|
||||||
position: absolute;
|
|
||||||
margin-left: 25vw;
|
|
||||||
height: 12vw;
|
|
||||||
width: auto;
|
|
||||||
bottom: 0;
|
|
||||||
z-index: 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clic{
|
|
||||||
position: absolute;
|
|
||||||
left: 55vw;
|
|
||||||
top : 7vw;
|
|
||||||
height: auto;
|
|
||||||
width: 15vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#card-conteneur{
|
|
||||||
z-index: 20;
|
|
||||||
position: absolute;
|
|
||||||
left: 0vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-container {
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
list-style: none;
|
|
||||||
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -moz-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: -webkit-flex;
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
-webkit-flex-flow: row wrap;
|
|
||||||
justify-content: space-around;
|
|
||||||
margin-top: -7vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,619 +0,0 @@
|
|||||||
/*Ecran*/
|
|
||||||
@media screen and (min-width: 992px) {
|
|
||||||
|
|
||||||
/*PARTIE FORMES*/
|
|
||||||
.containform3 {
|
|
||||||
position: relative;
|
|
||||||
height: var(--x);
|
|
||||||
width: var(--x);
|
|
||||||
display: table-cell;
|
|
||||||
/*vertical-align: middle;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
.containinteCarte{
|
|
||||||
top:calc((var(--l) - var(--n)) / 2);
|
|
||||||
left:calc((var(--l) - var(--n)) / 2);
|
|
||||||
height: var(--n);
|
|
||||||
width: var(--n);
|
|
||||||
z-index: 2;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containexteCarte{
|
|
||||||
top:calc((var(--l) - var(--m)) / 2);
|
|
||||||
left:calc((var(--l) - var(--m)) / 2);
|
|
||||||
height: var(--m);
|
|
||||||
width: var(--m);
|
|
||||||
z-index: 1;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containform3carte {
|
|
||||||
position: relative;
|
|
||||||
height: var(--l);
|
|
||||||
width: var(--l);
|
|
||||||
display: table-cell;
|
|
||||||
/*vertical-align: middle;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
.containinte {
|
|
||||||
/*PROBLEME SIZE*/
|
|
||||||
top: calc((var(--y) - var(--z)) / 2);
|
|
||||||
left: calc((var(--y) - var(--z)) / 2);
|
|
||||||
height: var(--z);
|
|
||||||
width: var(--z);
|
|
||||||
z-index: 2;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cache {
|
|
||||||
top: calc((var(--x) - var(--y)) / 2.8);
|
|
||||||
left: calc((var(--x) - var(--y)) / 2.2);
|
|
||||||
height: calc(var(--y)*1.05);
|
|
||||||
width: calc(var(--y)*1.05);
|
|
||||||
z-index: 2;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
#choosemode {
|
|
||||||
height: 4vw;
|
|
||||||
width: 16vw;
|
|
||||||
position: absolute;
|
|
||||||
left: 42vw;
|
|
||||||
top: 44vh;
|
|
||||||
z-index: 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
#choosedimension {
|
|
||||||
height: 4vw;
|
|
||||||
width: 16vw;
|
|
||||||
position: absolute;
|
|
||||||
left: 42vw;
|
|
||||||
top: 50vh;
|
|
||||||
z-index: 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
#conteneurmode {
|
|
||||||
width: 80%;
|
|
||||||
height: 2vw;
|
|
||||||
left: 10%;
|
|
||||||
top: 25%;
|
|
||||||
position: absolute;
|
|
||||||
margin: 0 auto;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
border-radius: 5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#triangleprec {
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
margin: 0.25vw auto 0 auto;
|
|
||||||
border-top: 0.75vw solid transparent;
|
|
||||||
border-right: 1.25vw solid grey;
|
|
||||||
border-bottom: 0.75vw solid transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#trianglesuiv {
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
margin: 0.25vw auto 0 auto;
|
|
||||||
border-top: 0.75vw solid transparent;
|
|
||||||
border-left: 1.25vw solid grey;
|
|
||||||
border-bottom: 0.75vw solid transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#textmode {
|
|
||||||
font-family: Lucida Console, Arial Black, Arial;
|
|
||||||
font-size: 1vw;
|
|
||||||
color: #707070;
|
|
||||||
text-align: center;
|
|
||||||
margin: 5% auto 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#textdimension {
|
|
||||||
font-family: Lucida Console, Arial Black, Arial;
|
|
||||||
font-size: 1vw;
|
|
||||||
color: #707070;
|
|
||||||
text-align: center;
|
|
||||||
margin: 5% auto 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#formSize {
|
|
||||||
margin: 0 auto;
|
|
||||||
width: 100%;
|
|
||||||
height: 3vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-container .bar .fill {
|
|
||||||
display: block;
|
|
||||||
width: 50%;
|
|
||||||
height: 100%;
|
|
||||||
background-color: #6200ee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-container .slider {
|
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
width: 100%;
|
|
||||||
height: 10px;
|
|
||||||
border-radius: 5px;
|
|
||||||
outline: none;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider.container {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-container .bar {
|
|
||||||
position: absolute;
|
|
||||||
z-index: 1;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 10px;
|
|
||||||
border-radius: 5px;
|
|
||||||
background-color: #c6aee7;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
/*Moz*/
|
|
||||||
.slider-container .slider::-moz-range-thumb {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
width: 1vw;
|
|
||||||
height: 1vw;
|
|
||||||
background-color: #6200ee;
|
|
||||||
border-radius: 1vw;
|
|
||||||
cursor: pointer;
|
|
||||||
outline: none;
|
|
||||||
box-shadow: 0 0 0 0 rgba(98, 0,238, .1);
|
|
||||||
transition: .3s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-container .slider::-moz-range-thumb:hover {
|
|
||||||
box-shadow: 0 0 0 10px rgba(98,0,238,.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-container .slider:active::-moz-range-thumb {
|
|
||||||
box-shadow: 0 0 0 20px rgba(98,0,238,.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*===========================================*/
|
|
||||||
|
|
||||||
.logoboutton {
|
|
||||||
font-size: 2vw;
|
|
||||||
color: var(--lightprima);
|
|
||||||
margin: 0.25vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Externe*/
|
|
||||||
.bouttonMenuHaut {
|
|
||||||
height: 4vw;
|
|
||||||
width: 4vw;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
border-radius: 50%;
|
|
||||||
margin: 0 auto;
|
|
||||||
margin-top: 0.45vw;
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
#affPoints {
|
|
||||||
text-align: center;
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
font-size: 2vw;
|
|
||||||
margin-top: 1.2vw;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
}
|
|
||||||
|
|
||||||
.divmenu {
|
|
||||||
width: 10vw;
|
|
||||||
height: inherit;
|
|
||||||
margin-right: 1vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containButtonForm {
|
|
||||||
height: 2.5vw;
|
|
||||||
width: 2.5vw;
|
|
||||||
margin: 0.75vw;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.buttonretour {
|
|
||||||
position: relative;
|
|
||||||
height: 4vh;
|
|
||||||
width: 4vh;
|
|
||||||
border-radius: 55vw;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
z-index: 5;
|
|
||||||
margin-left: 2vw;
|
|
||||||
top: 1.75vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-item {
|
|
||||||
background: var(--lightsedonca);
|
|
||||||
width: var(--taille);
|
|
||||||
border-radius: 0.75vw;
|
|
||||||
padding-right: 0.15vw;
|
|
||||||
padding-left: 0.15vw;
|
|
||||||
padding-bottom: 0.25vw;
|
|
||||||
list-style: none;
|
|
||||||
display: flex;
|
|
||||||
margin-right: 0.4vw;
|
|
||||||
margin-left: 0.4vw;
|
|
||||||
margin-bottom: 1vw;
|
|
||||||
-webkit-flex-flow: row wrap;
|
|
||||||
justify-content: space-around;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-form {
|
|
||||||
width: 3vw;
|
|
||||||
padding-left: 0.1vw;
|
|
||||||
margin-top: 0.25vw;
|
|
||||||
height: 3vw;
|
|
||||||
border-radius: 10px;
|
|
||||||
display: table-cell;
|
|
||||||
position: relative;
|
|
||||||
vertical-align: middle;
|
|
||||||
background-color: var(--lighttercia);
|
|
||||||
}
|
|
||||||
|
|
||||||
.containcards {
|
|
||||||
overflow-x: auto;
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(8,auto);
|
|
||||||
grid-template-rows: repeat(2,auto);
|
|
||||||
padding-top: 1vw;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logop2 img {
|
|
||||||
width: 12vw;
|
|
||||||
padding-top: 1vh;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.txt {
|
|
||||||
position: absolute;
|
|
||||||
font-family: Arial Black;
|
|
||||||
color: var(--lightprima);
|
|
||||||
font-size: 1.5vw;
|
|
||||||
left: 0.4vw;
|
|
||||||
top: -1.6vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo img {
|
|
||||||
position: absolute;
|
|
||||||
width: 12vw;
|
|
||||||
left: 44vw;
|
|
||||||
top: 13%;
|
|
||||||
z-index: 11;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mounts img {
|
|
||||||
position: absolute;
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
pointer-events: none;
|
|
||||||
margin-left: -10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#contourbuttonvalider {
|
|
||||||
position: absolute;
|
|
||||||
border-radius: 45px;
|
|
||||||
left: 9.2vw;
|
|
||||||
height: 4vw;
|
|
||||||
width: 12vw;
|
|
||||||
top: 1vw;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
z-index: 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bouttonvalider {
|
|
||||||
position: absolute;
|
|
||||||
height: 3.4vw;
|
|
||||||
width: 11.4vw;
|
|
||||||
top: 0.3vw;
|
|
||||||
left: 0.3vw;
|
|
||||||
border-radius: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.violet {
|
|
||||||
background-color: #B130DE;
|
|
||||||
}
|
|
||||||
|
|
||||||
.vert {
|
|
||||||
background-color: #00CC66;
|
|
||||||
}
|
|
||||||
|
|
||||||
#textjouerr {
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
position: absolute;
|
|
||||||
font-size: 2.5vw;
|
|
||||||
margin-top: 0.2vw;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
text-align: center;
|
|
||||||
width: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
#containBottom{
|
|
||||||
position: absolute;
|
|
||||||
bottom: 3vh;
|
|
||||||
width: auto;
|
|
||||||
left: 50%;
|
|
||||||
z-index: 20;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#containScore {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
position: relative;
|
|
||||||
left: -50%;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.titreScore{
|
|
||||||
font: 700 5vh "Poppins", sans-serif;
|
|
||||||
color: #2B2D2F;
|
|
||||||
position: relative;
|
|
||||||
left: -50%;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.case-score{
|
|
||||||
padding: 4px;
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
width: 6vw;
|
|
||||||
height: 6vw;
|
|
||||||
margin: 1vw;
|
|
||||||
cursor: default;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.case-score .score-description {
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
padding: 10px 15px;
|
|
||||||
width: calc(100% - 30px);
|
|
||||||
height: calc(100% - 20px);
|
|
||||||
transition: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.case-score .score-position {
|
|
||||||
font: 700 2vw/1.3 "Poppins", sans-serif;
|
|
||||||
margin: 0 0 0;
|
|
||||||
transition: 0.2s ease 150ms;
|
|
||||||
font-size: 2vw;
|
|
||||||
font-family:"Poppins", sans-serif;
|
|
||||||
}
|
|
||||||
.case-score .score-pseudo, .score-points {
|
|
||||||
font: 500 12px "Poppins", sans-serif;
|
|
||||||
margin-top: -0.2em;
|
|
||||||
font-size: 0.8vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.case-score:after {
|
|
||||||
z-index: 10;
|
|
||||||
background: #f9f8f7;
|
|
||||||
color: #333;
|
|
||||||
width: 180px;
|
|
||||||
position: absolute;
|
|
||||||
top: 80%;
|
|
||||||
opacity: 0;
|
|
||||||
transition: opacity 0.3s ease 0.3s, top 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.3s;
|
|
||||||
height: auto;
|
|
||||||
font-size: 12px;
|
|
||||||
line-height: 1.4;
|
|
||||||
padding: 10px;
|
|
||||||
margin: 0 0 0 -50px;
|
|
||||||
border-radius: 6px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.case-score:hover {
|
|
||||||
transform: scale(1.12);
|
|
||||||
z-index: 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
.case-score:hover .score-description {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
.case-score:hover .score-position,
|
|
||||||
.case-score:hover .score-pseudo,
|
|
||||||
.case-score:hover .score-points {
|
|
||||||
-webkit-text-fill-color: #222;
|
|
||||||
}
|
|
||||||
.case-score:hover:after {
|
|
||||||
top: 105%;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.first {
|
|
||||||
background: linear-gradient(to bottom right, #f3f9a6 0%, #cbc634 100%);
|
|
||||||
}
|
|
||||||
.first .score-position,
|
|
||||||
.first .score-pseudo,
|
|
||||||
.first .score-points {
|
|
||||||
background: -webkit-linear-gradient(#2B2D2F, #2B2D2F);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.second {
|
|
||||||
background: linear-gradient(to bottom right, #37cfdc 0%, #5a88e5 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.second .score-position,
|
|
||||||
.second .score-pseudo,
|
|
||||||
.second .score-points {
|
|
||||||
background: -webkit-linear-gradient(#2B2D2F, #2B2D2F);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.third {
|
|
||||||
background: linear-gradient(to bottom right, #ff616d 0%, #ffc171 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.third .score-position,
|
|
||||||
.third .score-pseudo,
|
|
||||||
.third .score-points {
|
|
||||||
background: -webkit-linear-gradient(#2B2D2F, #2B2D2F);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nopodium {
|
|
||||||
background: linear-gradient(to bottom right, #2c3e50 0%, #B7B7B7 90%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.nopodium .score-position,
|
|
||||||
.nopodium .score-pseudo,
|
|
||||||
.nopodium .score-points {
|
|
||||||
background: -webkit-linear-gradient(#3A3B3C, #3A3B3C );
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infosec2{
|
|
||||||
z-index:15;
|
|
||||||
width: 2vw;
|
|
||||||
position: relative;
|
|
||||||
margin: 0 auto;
|
|
||||||
margin-left: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#multiParams{
|
|
||||||
height: 5vw;
|
|
||||||
width: 25vw;
|
|
||||||
position: absolute;
|
|
||||||
margin: 0 auto;
|
|
||||||
top: 58vh;
|
|
||||||
left: 38.5%;
|
|
||||||
z-index: 15;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#buttonMulti {
|
|
||||||
border-radius: 45px;
|
|
||||||
height: 2.5vw;
|
|
||||||
width: 10.4vw;
|
|
||||||
top: 1vw;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
z-index: 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
#buttonMulti2 {
|
|
||||||
border-radius: 45px;
|
|
||||||
height: 2.5vw;
|
|
||||||
width: 10.4vw;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
z-index: 15;
|
|
||||||
margin-top: 1vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bouttonvalider2 {
|
|
||||||
position: relative;
|
|
||||||
height: 2vw;
|
|
||||||
width: 10vw;
|
|
||||||
top: 0.25vw;
|
|
||||||
left: 0.2vw;
|
|
||||||
border-radius: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#textmulticreer {
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
font-size: 1.5vw;
|
|
||||||
margin-top: 0.1vw;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
text-align: center;
|
|
||||||
width: inherit;
|
|
||||||
}
|
|
||||||
#textmultirejoindre {
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
font-size: 1.5vw;
|
|
||||||
margin-top: 0.1vw;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
text-align: center;
|
|
||||||
width: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
#conteneurCreate{
|
|
||||||
width: 40%;
|
|
||||||
height: 2.2vw;
|
|
||||||
left: 50%;
|
|
||||||
top: 3%;
|
|
||||||
position: absolute;
|
|
||||||
margin: 0 auto;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
border-radius: 5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#conteneurJoin{
|
|
||||||
width: 40%;
|
|
||||||
height: 2.2vw;
|
|
||||||
left: 50%;
|
|
||||||
top: 65%;
|
|
||||||
position: absolute;
|
|
||||||
margin: 0 auto;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
border-radius: 5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form__field {
|
|
||||||
font-family: inherit;
|
|
||||||
width: 70%;
|
|
||||||
border: 0;
|
|
||||||
border-bottom: 2px solid #9b9b9b;
|
|
||||||
outline: 0;
|
|
||||||
font-size: 1vw;
|
|
||||||
color: black;
|
|
||||||
padding: 0.8vh 0;
|
|
||||||
background: transparent;
|
|
||||||
transition: border-color 0.2s;
|
|
||||||
margin-left: 1.5vw;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.form__field::placeholder {
|
|
||||||
color: gray;
|
|
||||||
}
|
|
||||||
.form__field:placeholder-shown ~ .form__label {
|
|
||||||
font-size: 1.3rem;
|
|
||||||
cursor: text;
|
|
||||||
top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form__label {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
display: block;
|
|
||||||
transition: 0.2s;
|
|
||||||
font-size: 1rem;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form__field:focus {
|
|
||||||
padding-bottom: 6px;
|
|
||||||
font-weight: 700;
|
|
||||||
border-width: 3px;
|
|
||||||
border-image: linear-gradient(to right, #11998e, #38ef7d);
|
|
||||||
border-image-slice: 1;
|
|
||||||
}
|
|
||||||
.form__field:focus ~ .form__label {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
display: block;
|
|
||||||
transition: 0.2s;
|
|
||||||
font-size: 1rem;
|
|
||||||
color: #11998e;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,138 +0,0 @@
|
|||||||
.containform {
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.ajustementPetiteForme{
|
|
||||||
margin-top: 25%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ajustementGrandeForme{
|
|
||||||
margin-top: 0.2vw;
|
|
||||||
margin-left: 0.2vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containform2{
|
|
||||||
position: relative;
|
|
||||||
height: var(--x);
|
|
||||||
width: var(--x);
|
|
||||||
display: table-cell;
|
|
||||||
vertical-align: middle;
|
|
||||||
background-color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*ROND*/
|
|
||||||
.containexte{
|
|
||||||
height: var(--y);
|
|
||||||
width: var(--y);
|
|
||||||
margin: 0 auto;
|
|
||||||
position: relative;
|
|
||||||
top: calc(var(--x)/8);
|
|
||||||
}
|
|
||||||
|
|
||||||
#cacherond{
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.round{
|
|
||||||
border-radius: 5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cb{
|
|
||||||
background-color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cn{
|
|
||||||
background-color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* UTILISATION FORMES CARTES*/
|
|
||||||
.containformCarte{
|
|
||||||
position: relative;
|
|
||||||
height: var(--x);
|
|
||||||
width: var(--x);
|
|
||||||
display: table-cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
.carre{
|
|
||||||
-webkit-clip-path: inset(0 0 0 0);
|
|
||||||
clip-path: inset(0 0 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.triangle{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
|
|
||||||
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.castriangle{
|
|
||||||
margin-top: calc( (var(--y) - var(--z)) / 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.caspenta{
|
|
||||||
margin-top: calc( (var(--y) - var(--z)) / 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
.castrianglec{
|
|
||||||
margin-top: calc( (var(--m) - var(--n)) / 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.caspentac{
|
|
||||||
margin-top: calc( (var(--m) - var(--n)) / 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
.losange{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
|
|
||||||
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.croix{
|
|
||||||
-webkit-clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
|
|
||||||
clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.croixinte{
|
|
||||||
-webkit-clip-path: polygon(26% 23%, 22% 27%, 45% 50%, 22% 74%, 27% 78%, 50% 55%, 74% 78%, 78% 73%, 55% 50%, 78% 27%, 73% 23%, 50% 46%);
|
|
||||||
clip-path: polygon(26% 23%, 22% 27%, 45% 50%, 22% 74%, 27% 78%, 50% 55%, 74% 78%, 78% 73%, 55% 50%, 78% 27%, 73% 23%, 50% 46%);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.penta{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
|
|
||||||
clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hexa{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
|
|
||||||
clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hocto{
|
|
||||||
-webkit-clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
|
|
||||||
clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.rondv2{
|
|
||||||
-webkit-clip-path: circle(50% at 50% 50%);
|
|
||||||
clip-path: circle(50% at 50% 50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.rond{
|
|
||||||
-webkit-clip-path: circle(50% at 50% 50%);
|
|
||||||
clip-path: circle(50% at 50% 50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.formeinte{
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.formeexte{
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
/*Demi Ecran*/
|
|
||||||
@media screen and (max-width: 768px) {
|
|
||||||
body{
|
|
||||||
background-color: green;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,622 +0,0 @@
|
|||||||
/*DemTéléphone 1i Ecran*/
|
|
||||||
@media screen and (min-width: 0px) and (max-width: 992px) {
|
|
||||||
|
|
||||||
.containform3 {
|
|
||||||
position: relative;
|
|
||||||
height: calc(1.25*var(--x));
|
|
||||||
width: calc(2*var(--x));
|
|
||||||
display: table-cell;
|
|
||||||
vertical-align: middle;
|
|
||||||
left: -2vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containform3carte {
|
|
||||||
position: relative;
|
|
||||||
height: var(--l);
|
|
||||||
width: var(--l);
|
|
||||||
display: table-cell;
|
|
||||||
/*vertical-align: middle;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
.containinte{
|
|
||||||
/*PROBLEME SIZE*/
|
|
||||||
top: calc(1.5*((var(--y) - var(--z)) / 2));
|
|
||||||
left: calc(1.5*((var(--y) - var(--z)) / 2));
|
|
||||||
height: calc(1.5*var(--z));
|
|
||||||
width: calc(1.5*var(--z));
|
|
||||||
z-index: 2;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containinteCarte{
|
|
||||||
top:calc((var(--l) - var(--n)) / 1.3);
|
|
||||||
left:calc((var(--l) - var(--n)) / 1.2);
|
|
||||||
height: var(--n);
|
|
||||||
width: var(--n);
|
|
||||||
z-index: 2;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containexteCarte{
|
|
||||||
top:calc((var(--l) - var(--m)) / 0.8);
|
|
||||||
left:calc((var(--l) - var(--m)) / 0.7);
|
|
||||||
height: var(--m);
|
|
||||||
width: var(--m);
|
|
||||||
z-index: 1;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cache{
|
|
||||||
top: calc(0.91*((var(--x) - var(--y)) / 2.8));
|
|
||||||
left: calc(4.55*((var(--x) - var(--y)) / 2.2));
|
|
||||||
height: calc(1.5*var(--y)*1.05);
|
|
||||||
width: calc(1.5*var(--y)*1.05);
|
|
||||||
z-index: 2;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
#formSize{
|
|
||||||
margin : 0 auto;
|
|
||||||
width: 100%;
|
|
||||||
height: 3vw;
|
|
||||||
position: relative;
|
|
||||||
top: 3vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-container .bar .fill {
|
|
||||||
display: block;
|
|
||||||
width: 50%;
|
|
||||||
height: 100%;
|
|
||||||
background-color: #6200ee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-container .slider {
|
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
width: 100%;
|
|
||||||
height: 10px;
|
|
||||||
border-radius: 5px;
|
|
||||||
outline: none;
|
|
||||||
top: -0.25vw;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
.slider.container{
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.slider-container .bar {
|
|
||||||
position: absolute;
|
|
||||||
z-index: 1;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 10px;
|
|
||||||
border-radius: 5px;
|
|
||||||
background-color: #c6aee7;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
/*Moz*/
|
|
||||||
.slider-container .slider::-moz-range-thumb {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
width: 2vw;
|
|
||||||
height: 2vw;
|
|
||||||
background-color: #6200ee;
|
|
||||||
border-radius: 1vw;
|
|
||||||
cursor: pointer;
|
|
||||||
outline: none;
|
|
||||||
box-shadow: 0 0 0 0 rgba(98, 0 ,238, .1);
|
|
||||||
transition: .3s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-container .slider::-moz-range-thumb:hover {
|
|
||||||
box-shadow: 0 0 0 10px rgba(98,0,238,.1);
|
|
||||||
}
|
|
||||||
.slider-container .slider:active::-moz-range-thumb {
|
|
||||||
box-shadow: 0 0 0 20px rgba(98,0,238,.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.logop2 img {
|
|
||||||
width: 20vh;
|
|
||||||
padding-top: 1vh;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.txt {
|
|
||||||
position: absolute;
|
|
||||||
font-family: Arial Black;
|
|
||||||
color: var(--lightprima);
|
|
||||||
font-size: 5.5vw;
|
|
||||||
left: 2.25vw;
|
|
||||||
top: -1vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo img {
|
|
||||||
position: absolute;
|
|
||||||
width: 30vw;
|
|
||||||
left: 35vw;
|
|
||||||
top: 2%;
|
|
||||||
z-index: 11;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mounts img {
|
|
||||||
position: absolute;
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
pointer-events: none;
|
|
||||||
margin-left: -1vw;
|
|
||||||
margin-top: -1vw;
|
|
||||||
object-fit: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
#contourbuttonvalider {
|
|
||||||
position: absolute;
|
|
||||||
border-radius: 45px;
|
|
||||||
left: -10vw;
|
|
||||||
top: -10vh;
|
|
||||||
height: 15vw;
|
|
||||||
width: 50vw;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
z-index: 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bouttonvalider {
|
|
||||||
position: absolute;
|
|
||||||
height: 13vw;
|
|
||||||
width: 47vw;
|
|
||||||
top: 1.1vw;
|
|
||||||
left: 1.5vw;
|
|
||||||
border-radius: 30px;
|
|
||||||
background-color: #B130DE;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bouttonvalider2 {
|
|
||||||
position: absolute;
|
|
||||||
height: 6.8vw;
|
|
||||||
width: 22.8vw;
|
|
||||||
top: 1.1vw;
|
|
||||||
left: 1.1vw;
|
|
||||||
border-radius: 30px;
|
|
||||||
background-color: #00CC66;
|
|
||||||
}
|
|
||||||
|
|
||||||
#textjouer {
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
position: absolute;
|
|
||||||
font-size: 10vw;
|
|
||||||
margin-top: 0.2vw;
|
|
||||||
width: inherit;
|
|
||||||
text-align: center;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
}
|
|
||||||
|
|
||||||
#textjouerr {
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
position: absolute;
|
|
||||||
font-size: 10vw;
|
|
||||||
margin-top: 0.2vw;
|
|
||||||
width: inherit;
|
|
||||||
text-align: center;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
}
|
|
||||||
|
|
||||||
#choosemode {
|
|
||||||
height: 7vw;
|
|
||||||
width: 50vw;
|
|
||||||
position: absolute;
|
|
||||||
left: 25vw;
|
|
||||||
top: 40vh;
|
|
||||||
z-index: 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
#choosedimension {
|
|
||||||
height: 7vw;
|
|
||||||
width: 50vw;
|
|
||||||
position: absolute;
|
|
||||||
left: 25vw;
|
|
||||||
top: 50vh;
|
|
||||||
z-index: 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
#conteneurmode{
|
|
||||||
width: 80%;
|
|
||||||
height: 80%;
|
|
||||||
left : 10%;
|
|
||||||
position: absolute;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
border-radius: 5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#triangleprec{
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
margin: 0.25vw auto 0 auto;
|
|
||||||
border-top: 2vw solid transparent;
|
|
||||||
border-right: 4vw solid grey;
|
|
||||||
border-bottom: 2vw solid transparent;
|
|
||||||
margin-top: 0.75vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#trianglesuiv{
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
margin: 0.25vw auto 0 auto;
|
|
||||||
border-top: 2vw solid transparent;
|
|
||||||
border-left: 4vw solid grey;
|
|
||||||
border-bottom: 2vw solid transparent;
|
|
||||||
margin-top: 0.75vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#textmode {
|
|
||||||
font-family: Lucida Console, Arial Black, Arial;
|
|
||||||
font-size: 3vw;
|
|
||||||
color: #707070;
|
|
||||||
text-align:center;
|
|
||||||
margin: 5% auto 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#textdimension {
|
|
||||||
font-family: Lucida Console, Arial Black, Arial;
|
|
||||||
font-size: 3vw;
|
|
||||||
color: #707070;
|
|
||||||
text-align:center;
|
|
||||||
margin: 5% auto 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logoboutton{
|
|
||||||
font-size: 2vw;
|
|
||||||
color: var(--lightprima);
|
|
||||||
margin: 1vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Externe*/
|
|
||||||
.bouttonMenuHaut{
|
|
||||||
height: 4vw;
|
|
||||||
width: 4vw;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
border-radius: 50%;
|
|
||||||
margin: 0 auto;
|
|
||||||
margin-top: 2.5vw;
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.divmenu {
|
|
||||||
width: 25vw;
|
|
||||||
height: inherit;
|
|
||||||
margin-right: 1vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#affPoints {
|
|
||||||
text-align: center;
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
font-size: 2vw;
|
|
||||||
margin-top: 3.5vw;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
}
|
|
||||||
|
|
||||||
.containcards {
|
|
||||||
overflow-x: auto;
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(4,auto);
|
|
||||||
grid-template-rows: repeat(4,auto);
|
|
||||||
padding-top: 1vw;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-item {
|
|
||||||
flex-grow: 1;
|
|
||||||
background: var(--lightsedonca);
|
|
||||||
width: var(--tailleTablette);
|
|
||||||
border-radius: 0.75vw;
|
|
||||||
padding-right: 0.15vw;
|
|
||||||
padding-left: 0.15vw;
|
|
||||||
padding-bottom: 0.25vw;
|
|
||||||
list-style: none;
|
|
||||||
display: flex;
|
|
||||||
margin-right: 0.4vw;
|
|
||||||
margin-left: 0.4vw;
|
|
||||||
margin-bottom: 1vw;
|
|
||||||
-webkit-flex-flow: row wrap;
|
|
||||||
justify-content: space-around;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-form {
|
|
||||||
width: 4vh;
|
|
||||||
padding-left: 0.1vw;
|
|
||||||
margin-top: 0.25vw;
|
|
||||||
height: 4vh;
|
|
||||||
border-radius: 10px;
|
|
||||||
display: table-cell;
|
|
||||||
position: relative;
|
|
||||||
vertical-align: middle;
|
|
||||||
background-color: var(--lighttercia);
|
|
||||||
}
|
|
||||||
|
|
||||||
#containBottom{
|
|
||||||
position: absolute;
|
|
||||||
bottom: -0%;
|
|
||||||
width: auto;
|
|
||||||
left: 50%;
|
|
||||||
z-index: 20;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#containScore {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
position: relative;
|
|
||||||
left: -50%;
|
|
||||||
flex-flow: row wrap;
|
|
||||||
width: 80vw;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.titreScore{
|
|
||||||
font: 700 5vh "Poppins", sans-serif;
|
|
||||||
color: #2B2D2F;
|
|
||||||
position: relative;
|
|
||||||
left: -50%;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.case-score{
|
|
||||||
padding: 4px;
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
width: 12vw;
|
|
||||||
height: 12vw;
|
|
||||||
margin: 1vw;
|
|
||||||
cursor: default;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.case-score .score-description {
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
padding: 10px 15px;
|
|
||||||
width: calc(100% - 30px);
|
|
||||||
height: calc(100% - 20px);
|
|
||||||
transition: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.case-score .score-position {
|
|
||||||
font: 700 3vw "Poppins", sans-serif;
|
|
||||||
margin-left: -1vw;
|
|
||||||
transition: 0.2s ease 150ms;
|
|
||||||
}
|
|
||||||
.case-score .score-pseudo, .score-points {
|
|
||||||
font: 500 12px "Poppins", sans-serif;
|
|
||||||
margin-top: -0.2em;
|
|
||||||
margin-left: -1vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.case-score:after {
|
|
||||||
z-index: 10;
|
|
||||||
background: #f9f8f7;
|
|
||||||
color: #333;
|
|
||||||
width: 180px;
|
|
||||||
position: absolute;
|
|
||||||
top: 80%;
|
|
||||||
opacity: 0;
|
|
||||||
transition: opacity 0.3s ease 0.3s, top 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.3s;
|
|
||||||
height: auto;
|
|
||||||
font-size: 12px;
|
|
||||||
line-height: 1.4;
|
|
||||||
padding: 10px;
|
|
||||||
margin: 0 0 0 -50px;
|
|
||||||
border-radius: 6px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.case-score:hover {
|
|
||||||
transform: scale(1.12);
|
|
||||||
z-index: 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
.case-score:hover .score-description {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
.case-score:hover .score-position,
|
|
||||||
.case-score:hover .score-pseudo,
|
|
||||||
.case-score:hover .score-points {
|
|
||||||
-webkit-text-fill-color: #222;
|
|
||||||
}
|
|
||||||
.case-score:hover:after {
|
|
||||||
top: 105%;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.first {
|
|
||||||
background: linear-gradient(to bottom right, #f3f9a6 0%, #cbc634 100%);
|
|
||||||
}
|
|
||||||
.first .score-position,
|
|
||||||
.first .score-pseudo,
|
|
||||||
.first .score-points {
|
|
||||||
background: -webkit-linear-gradient(#2B2D2F, #2B2D2F);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.second {
|
|
||||||
background: linear-gradient(to bottom right, #37cfdc 0%, #5a88e5 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.second .score-position,
|
|
||||||
.second .score-pseudo,
|
|
||||||
.second .score-points {
|
|
||||||
background: -webkit-linear-gradient(#2B2D2F, #2B2D2F);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.third {
|
|
||||||
background: linear-gradient(to bottom right, #ff616d 0%, #ffc171 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.third .score-position,
|
|
||||||
.third .score-pseudo,
|
|
||||||
.third .score-points {
|
|
||||||
background: -webkit-linear-gradient(#2B2D2F, #2B2D2F);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nopodium {
|
|
||||||
background: linear-gradient(to bottom right, #2c3e50 0%, #B7B7B7 90%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.nopodium .score-position,
|
|
||||||
.nopodium .score-pseudo,
|
|
||||||
.nopodium .score-points {
|
|
||||||
background: -webkit-linear-gradient(#3A3B3C, #3A3B3C );
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content{
|
|
||||||
margin-top: -5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infosec2{
|
|
||||||
position: relative;
|
|
||||||
z-index:15;
|
|
||||||
width: 2vw;
|
|
||||||
left: 5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cf2 {
|
|
||||||
position:relative;
|
|
||||||
margin-left: 14vh;
|
|
||||||
top: 2.5vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.last{
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#multiParams{
|
|
||||||
height: 15vw;
|
|
||||||
width: 55vw;
|
|
||||||
position: absolute;
|
|
||||||
margin: 0 auto;
|
|
||||||
top: 58vh;
|
|
||||||
left: 25%;
|
|
||||||
z-index: 15;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
#buttonMulti {
|
|
||||||
border-radius: 45px;
|
|
||||||
height: 5.5vw;
|
|
||||||
width: 22.4vw;
|
|
||||||
top: 1vw;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
z-index: 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
#buttonMulti2 {
|
|
||||||
border-radius: 45px;
|
|
||||||
height: 5.5vw;
|
|
||||||
width: 22.4vw;
|
|
||||||
top: 1vw;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
z-index: 15;
|
|
||||||
margin-top: 1vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bouttonvalider2 {
|
|
||||||
position: relative;
|
|
||||||
height: 4.5vw;
|
|
||||||
width: 20vw;
|
|
||||||
top: 0.5vw;
|
|
||||||
left: 1.3vw;
|
|
||||||
border-radius: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#textmulti {
|
|
||||||
font-family: Montserrat, impact, Arial Black;
|
|
||||||
font-size: 3vw;
|
|
||||||
margin-top: 0.3vw;
|
|
||||||
color: var(--lightsedonca);
|
|
||||||
text-align: center;
|
|
||||||
width: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
#conteneurCreate{
|
|
||||||
width: 40%;
|
|
||||||
height: 5.2vw;
|
|
||||||
left: 50%;
|
|
||||||
top: 3%;
|
|
||||||
position: absolute;
|
|
||||||
margin: 0 auto;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
border-radius: 5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#conteneurJoin{
|
|
||||||
width: 40%;
|
|
||||||
height: 5.2vw;
|
|
||||||
left: 50%;
|
|
||||||
top: 45%;
|
|
||||||
position: absolute;
|
|
||||||
margin: 0 auto;
|
|
||||||
background-color: var(--lightsedonca);
|
|
||||||
border-radius: 5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form__field {
|
|
||||||
font-family: inherit;
|
|
||||||
width: 70%;
|
|
||||||
border: 0;
|
|
||||||
border-bottom: 2px solid #9b9b9b;
|
|
||||||
outline: 0;
|
|
||||||
font-size: 2.5vw;
|
|
||||||
color: black;
|
|
||||||
padding: 0.8vh 0;
|
|
||||||
background: transparent;
|
|
||||||
transition: border-color 0.2s;
|
|
||||||
margin-left: 3.5vw;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.form__field::placeholder {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
.form__field:placeholder-shown ~ .form__label {
|
|
||||||
font-size: 1.3rem;
|
|
||||||
cursor: text;
|
|
||||||
top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form__label {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
display: block;
|
|
||||||
transition: 0.2s;
|
|
||||||
font-size: 1rem;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form__field:focus {
|
|
||||||
padding-bottom: 6px;
|
|
||||||
font-weight: 700;
|
|
||||||
border-width: 3px;
|
|
||||||
border-image: linear-gradient(to right, #11998e, #38ef7d);
|
|
||||||
border-image-slice: 1;
|
|
||||||
}
|
|
||||||
.form__field:focus ~ .form__label {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
display: block;
|
|
||||||
transition: 0.2s;
|
|
||||||
font-size: 1rem;
|
|
||||||
color: #11998e;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
.violet {
|
|
||||||
background-color: #B130DE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
<?php
|
|
||||||
session_start();
|
|
||||||
$pseudo = $_POST['pseudo'];
|
|
||||||
$_SESSION['pseudo'] = $pseudo;
|
|
||||||
$idpartie = $_SESSION['idpartie'];
|
|
||||||
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
<?php
|
|
||||||
$pseudo = $_POST['pts'];
|
|
||||||
$_SESSION['pts'] = $pseudo;
|
|
||||||
$idpartie = $_SESSION['idpartie'];
|
|
@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
require "ConnexionBDD.php";
|
|
||||||
session_start();
|
|
||||||
$db=new MyDB();
|
|
||||||
|
|
||||||
$cartes=$_POST['cartestables'];
|
|
||||||
$_SESSION['cartestables']=$cartes;
|
|
||||||
$idpartie = $_SESSION['idpartie'];
|
|
||||||
|
|
||||||
$tableau = $cartes;
|
|
||||||
for ($i = 0; $i <= 15; $i++) {
|
|
||||||
$valcol1= substr($tableau[$i],-25,7);
|
|
||||||
$valcol2= substr($tableau[$i],-14,7);
|
|
||||||
$valcol3= substr($tableau[$i],-7);
|
|
||||||
|
|
||||||
$update = $db->query('UPDATE partieCartes SET "colUn" = "'.$valcol1.'","colDeux"="'.$valcol2.'","colTrois"="'.$valcol3.'" where IdPartie="'.$idpartie.'" AND IdCarte="'.($i+1).'" ');
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
<?php
|
|
||||||
session_start();
|
|
||||||
$idpartie = $_POST['idpartie'];
|
|
||||||
$_SESSION['idpartie'] = $idpartie;
|
|
Before Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 24 KiB |
@ -1,112 +0,0 @@
|
|||||||
var FormeSelect = ["rond"];
|
|
||||||
var ListeCouleur = ["colorbase","colorcarre","colorone","colortwo"];
|
|
||||||
var ListeCouleurModif = ["colorseven","coloreight","colornine","colorten","colorthree","colorfour","colorfive","colorsix"];
|
|
||||||
var ListeClassForme = ["rond","carre","triangle","croix","losange","penta","hexa","hocto"];
|
|
||||||
|
|
||||||
//3 modes : 0 = couleurs // 1 = formes // 2 = personnaliser les cartes
|
|
||||||
var mode = 0;
|
|
||||||
var valRange;
|
|
||||||
|
|
||||||
function ableCache(formName){
|
|
||||||
cacheName = "cache"+formName;
|
|
||||||
const pos = FormeSelect.indexOf(formName);
|
|
||||||
if (pos > -1) {
|
|
||||||
FormeSelect.splice(pos, 1);
|
|
||||||
}
|
|
||||||
document.getElementById(cacheName).style.display = "block";
|
|
||||||
}
|
|
||||||
|
|
||||||
function disableCache(formName){
|
|
||||||
if (FormeSelect.length < 4)
|
|
||||||
{
|
|
||||||
cacheName = "cache"+formName;
|
|
||||||
document.getElementById(cacheName).style.display = "none";
|
|
||||||
FormeSelect.push(formName);
|
|
||||||
for(const form in ListeClassForme){
|
|
||||||
//si la couleur est dans la liste selectionnée
|
|
||||||
if(formName == ListeClassForme[form]){
|
|
||||||
//recuperer la position de la couleur dans laquel on va le mettre
|
|
||||||
var positionColor = FormeSelect.length - 1;
|
|
||||||
var recupCouleur = getComputedStyle(document.body).getPropertyValue('--'+ListeCouleurModif[form]);
|
|
||||||
var dansQuelCouleur = '--'+ListeCouleur[positionColor];
|
|
||||||
|
|
||||||
document.documentElement.style.setProperty(dansQuelCouleur, recupCouleur);
|
|
||||||
|
|
||||||
console.log("Couleur "+ recupCouleur +" mettre dans : " + dansQuelCouleur);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function changeContour(value){
|
|
||||||
var newvalue = value * 0.055 + 1;
|
|
||||||
document.documentElement.style.setProperty('--z', newvalue+'vw');
|
|
||||||
var valcard = value * 0.013 + 1;
|
|
||||||
document.documentElement.style.setProperty('--n', valcard+'vw');
|
|
||||||
//document.documentElement.style.setProperty('--n', newvalue+'vw');
|
|
||||||
//document.getElementById("SettingName").innerHTML = newvalue;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getVarColor(color){
|
|
||||||
var getvar = color;
|
|
||||||
getvar = getvar.substring(6,getvar.length-1);
|
|
||||||
|
|
||||||
return getvar;
|
|
||||||
}
|
|
||||||
|
|
||||||
function varColorToHex(color){
|
|
||||||
hex = getComputedStyle(document.documentElement).getPropertyValue(color);
|
|
||||||
hex = hex.substring(1,hex.length);
|
|
||||||
return hex;
|
|
||||||
}
|
|
||||||
|
|
||||||
function settingOpen(){
|
|
||||||
//document.getElementById("iddelapartie").style.visibility = "hidden";
|
|
||||||
var elements = document.getElementsByClassName("pcr-button");
|
|
||||||
for (var i = 0; i < elements.length; i++) {
|
|
||||||
elements[i].classList.add(ListeClassForme[i]);
|
|
||||||
}
|
|
||||||
recupCookies();
|
|
||||||
}
|
|
||||||
|
|
||||||
function SettingClose(){
|
|
||||||
//save cookies
|
|
||||||
document.cookie = "forme1="+FormeSelect[1]+";secure";
|
|
||||||
document.cookie = "forme2="+FormeSelect[2]+";secure";
|
|
||||||
document.cookie = "forme3="+FormeSelect[3]+";secure";
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function recupCookies(){
|
|
||||||
var theCookies = document.cookie.split(';');
|
|
||||||
theCookies[0] = ' '+theCookies[0];
|
|
||||||
var FormeCookie = [];
|
|
||||||
|
|
||||||
for(var i = 1; i <= theCookies.length; i++){
|
|
||||||
var aString = theCookies[i-1].substring(8);
|
|
||||||
if(aString != "undefined"){
|
|
||||||
FormeCookie.push(aString);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(const form in FormeCookie)
|
|
||||||
{
|
|
||||||
if(FormeSelect.indexOf(FormeCookie[form]) < 0){
|
|
||||||
disableCache(FormeCookie[form]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(FormeCookie);
|
|
||||||
console.log("Formes select : "+FormeSelect);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function affichageParamMulti(num){
|
|
||||||
//si 1 affichage, si 0 on cachell
|
|
||||||
if(num == 1){
|
|
||||||
document.getElementById("multiParams").style.display = "block";
|
|
||||||
} else {
|
|
||||||
document.getElementById("multiParams").style.display = "none";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
<?php
|
|
||||||
session_start();
|
|
||||||
$var = $_SESSION['listecartebdd'];
|
|
||||||
echo $var;
|
|
@ -1,193 +0,0 @@
|
|||||||
# RECHERCHE DE SWISH INTELLIGENTE#
|
|
||||||
|
|
||||||
Ce document, présente une version de l'algorithme de recherche utilisé dans notre projet. Il a pour objectif d'énumérer tous les Swish possibles de 2, 3, 4, ou 5 cartes sur un plateau de jeu présentées à un joueur. Il pourra également être utilisé pour aider les joueurs si aucun Swish n'est possible et ainsi débloquer le jeu ou arrêter la partie.
|
|
||||||
|
|
||||||
## DEFINITION DES STRUCTURES ##
|
|
||||||
|
|
||||||
### ENSEMBLE ###
|
|
||||||
### Attributs ###
|
|
||||||
//Permet de déterminer si un ensemble de carte peut **théoriquement** former un Swish en regardant uniquement la couleur de leurs **Figures**
|
|
||||||
|
|
||||||
- **ensemble** //Liste d'entier représentant les index des cartes dans le plateau de jeu
|
|
||||||
- **v** //Entier notifiant si l'ensemble d'index peut **théoriquement** former un Swish
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## DEFINITION DES FONCTIONS UTILISEE POUR CETTE RECHERCHE ##
|
|
||||||
|
|
||||||
# SOMME CARRE ELEMENT #
|
|
||||||
|
|
||||||
**Objectif** : Calculer la somme des puissances de 2 d'une liste d'entier envoyé en paramètre.
|
|
||||||
|
|
||||||
**sommeCarreElement(liste: int[])** : Int
|
|
||||||
|
|
||||||
**Entrées** :
|
|
||||||
|
|
||||||
-**liste** : liste d'entier
|
|
||||||
|
|
||||||
**Sortie** :
|
|
||||||
|
|
||||||
-**int** : Somme des puissances de 2 de l'ensemble
|
|
||||||
|
|
||||||
### COMMENT FAIRE ###
|
|
||||||
|
|
||||||
- Pour chaque entier présent dans la liste envoyé en parametre
|
|
||||||
|
|
||||||
- Mettre 2 à la puissance de l'entier présent à cet index et faire une somme.
|
|
||||||
|
|
||||||
Une fois la somme calculée, on retourne le résultat.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# COMPARAISON EMPILEMENT #
|
|
||||||
|
|
||||||
**Objectif** : Enlever les doublons d'une liste envoyée en paramètre.
|
|
||||||
|
|
||||||
**Pourquoi cette fonction ?** : Notre recherche intelligente est capable de trouver tout les SWISH possibles sur un plateau de jeu mais également TOUTES les façons de les obtenir. Pour des SWISH à 4 ou 5 cartes, le temps de recherche est fortement allongé du fait que pour un SWISH avec un tas composé de n **Cartes"**, il existe 4^n variantes de ce même tas.
|
|
||||||
|
|
||||||
Calculer plusieurs fois le même tas différements mélangé fais perdre beaucoup de temps. Cette fonction va donc, en calculant ces sommes, enlever les doublons et gagner du temps pour le confort de l'utilisateur.
|
|
||||||
|
|
||||||
**comparaisonEmpilement(liste: Ensemble[], debut: int)** : int[]
|
|
||||||
|
|
||||||
**Entrées** :
|
|
||||||
|
|
||||||
-liste** : Liste d'Ensemble, contient tout les ensembles qui peuvent **théoriquement** former un Swish.
|
|
||||||
|
|
||||||
- debut** : entier permettant de savoir à quel index ded la liste nous sommes
|
|
||||||
|
|
||||||
**Sortie** :
|
|
||||||
|
|
||||||
-**Ensemble[]** : Nouvelle liste d'ensemble ne contenant plus de doublon **d'Ensemble**
|
|
||||||
|
|
||||||
### COMMENT FAIRE ###
|
|
||||||
|
|
||||||
-Si début est supérieur ou égal à l'index du dernier élément de la liste cela signifie que l'algorithme possède une liste sans doublon et a terminé ses opérations. On retourne donc la liste actuelle.
|
|
||||||
|
|
||||||
-On récupère tout les éléments de la liste de 0 jusqu'à l'index **début** qui ne sont pas en doublon.
|
|
||||||
|
|
||||||
-On calcule la **sommeCarreElement** de l'élément présent à l'index **début** de la liste pour l'identifier.
|
|
||||||
|
|
||||||
-Une fois cette somme récupérée, on la compare avec la **sommeCarreElement** de tous les éléments de la liste restant
|
|
||||||
|
|
||||||
-Si les **sommeCarreElement** sont différent on récupère l'élément à cet index
|
|
||||||
-Une fois les doublons de l'élément à l'index **début** retiré, on appelle récursivement cette fonction **comparaisonEmpilement()** avec pour paramètre la liste mis à jour et début incrémenté.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# RECHERCHE CARTE COMPLEMENTAIRE #
|
|
||||||
|
|
||||||
-**Objectif**: Rechercher toutes les cartes du plateau de jeu contenant une figure complémentaire (type différent et couleur identique) avec la figure envoyée en paramètre.
|
|
||||||
|
|
||||||
|
|
||||||
**carteComplementaire**(figure: Figure, debut: int): int[]
|
|
||||||
|
|
||||||
**Entrées** :
|
|
||||||
|
|
||||||
-**figure**: Structure **Figure** depuis laquelle nous allons rechercher toutes les cartes avec une **Figure** complémentaire.
|
|
||||||
|
|
||||||
-**debut** : Entier permettant de notifier où l'on se trouve dans le plateau de jeu dans le but de ne pas créer de boucle dans les recherches.
|
|
||||||
|
|
||||||
**Sortie**
|
|
||||||
|
|
||||||
-**int[]** : Liste d'entier contenant les index des cartes comportant une **Figure** complémentaire dans le plateau de jeu.
|
|
||||||
|
|
||||||
### COMMENT FAIRE ###
|
|
||||||
|
|
||||||
-Pour toutes les cartes du plateau de jeu située entre l'index début et la fin du plateau.
|
|
||||||
|
|
||||||
-On regarde si les cartes ont une **Figure** de type différent et de couleur identique au parametre **figure** envoyée dans la fonction.
|
|
||||||
-Si c'est le cas un ajoute l'index de cette carte dans une liste.
|
|
||||||
-Sinon rien.
|
|
||||||
|
|
||||||
-Une fois toutes les cartes du plateau de jeu vérifiées, on retourne la liste d'index remplie
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# RECHERCHE ENSEMBLE INTELLIGENT #
|
|
||||||
|
|
||||||
-**Objectif**: Retourner une liste **d'Ensemble** contenant des ensembles de carte qui peuvent former un Swish par rapport à un indice de carte donné.
|
|
||||||
|
|
||||||
**rechercherPertinent**(nbCarte: int, debut: int, carte: int): Ensemble[]
|
|
||||||
|
|
||||||
**Entrées**:
|
|
||||||
|
|
||||||
-**nbCarte**: Information sur le nombre de **Cartes** que l'algorithme doit encore trouver pour chercher un SWISH à n **Cartes**
|
|
||||||
|
|
||||||
-**debut** : Indice dans le plateau de jeu du support du SWISH (première carte de l'empilement)
|
|
||||||
|
|
||||||
-**carte** : Indice dans le plateau de jeu de la carte que l'algorithme traite actuellement.
|
|
||||||
|
|
||||||
**Sortie**
|
|
||||||
|
|
||||||
-**Ensemble[]** : Liste **d'Emssemble** contenant de liste d'indice pouvant potentiellement former des SWISH
|
|
||||||
|
|
||||||
### COMMENT FAIRE ###
|
|
||||||
|
|
||||||
-Si l'algorithme n'a plus de carte à rechercher (**nbCarte** = 0)
|
|
||||||
|
|
||||||
-On regarde si les figures de la première et de la dernière carte de l'ensemble sont complémentaire
|
|
||||||
|
|
||||||
- Si elles le sont, on ajoute l'indice de la carte que l'algorithme traite (**carte**) dans une structure **Ensemble** et on la retourne
|
|
||||||
|
|
||||||
- Si elles ne le sont pas, on ajoute l'indice de la carte que l'algorithme traite (**carte**) dans une structure **Ensemble** et on la retourne en notifiant **l'Enssemble** que cette liste est mauvaise.
|
|
||||||
|
|
||||||
-On recupère tout les index des **Cartes** pouvant compléter le point de la **Carte** à l'index **carte**
|
|
||||||
|
|
||||||
-Si la liste d'indice est vide alors on retourne un code d'erreur
|
|
||||||
|
|
||||||
-Sinon pour chaque index de carte complémentaire on appelle récursivement cette fonction **recherchePertinente** en envoyant, nbCarte décrémenté, debut et l'indice de la carte.
|
|
||||||
|
|
||||||
-Une fois tous ces résultats récupérés on les retournes.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
||||||
# TEST DES ENSEMBLES #
|
|
||||||
|
|
||||||
-**Objectif**: Tester tous les **Ensemble** d'une liste notifier et compter si les **Ensemble** sont correcte
|
|
||||||
|
|
||||||
**testAllEnsemble**(liste: Ensemble[]):int
|
|
||||||
|
|
||||||
**Entrees** :
|
|
||||||
|
|
||||||
-**liste**: Liste **d'Ensemble** à tester
|
|
||||||
|
|
||||||
**Sortie** :
|
|
||||||
|
|
||||||
-**int**: Correspond au nombre de Swish trouvé
|
|
||||||
|
|
||||||
### COMMENT FAIRE ###
|
|
||||||
|
|
||||||
-Pour toutes les **Ensembles** présents dans la liste
|
|
||||||
|
|
||||||
-On récupère les cartes correspondant aux indices
|
|
||||||
|
|
||||||
-Une fois toutes les cartes récupérées on teste notre tas dans la fonction **AssemblageARBRE**
|
|
||||||
|
|
||||||
-Si le SWISH est possible on incrémente le nombre de SWISH trouvé et on recommence avec le tas de carte suivant
|
|
||||||
|
|
||||||
-Une fois tous les **Ensembles** on retourne le nombre de SWISH trouvé.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# TEST INTELLIGENT #
|
|
||||||
|
|
||||||
|
|
||||||
-**Objectif**: Rechercher tous les SWISH possibles dans un plateau de jeu.
|
|
||||||
|
|
||||||
-**testPertinent**(void):void
|
|
||||||
|
|
||||||
### COMMENT FAIRE ###
|
|
||||||
|
|
||||||
-Pour des tas allant de 2 à 5 **Carte**
|
|
||||||
|
|
||||||
-Pour chaque **Carte** du plateau de jeu
|
|
||||||
|
|
||||||
-On lance une **recherchePertinente** en envoyant le nombre de **Cartes** de notre tas, le numéro de la carte à partir de laquelle on veut les **Ensembles**possibles.
|
|
||||||
|
|
||||||
-Une fois tous les **Ensembles** récupérés on vérifie qu'il n'y a pas de doublon en lançant la fonction **comparaisonElement** de ces résultats.
|
|
||||||
|
|
||||||
-Une fois les doublons retirés on teste tous les **Ensembles** dans la fonction **testAllEnsemble**
|
|
||||||
-On affiche le nombre de SWISH trouvé et on fait apparaitre sur l'écran du joueur un SWISH à 5 cartes.
|
|
||||||
|
|
||||||
---
|
|
@ -1,216 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
||||||
<title></title>
|
|
||||||
<link rel="stylesheet" href="style.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<!--ROND-->
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb rond"></div>
|
|
||||||
</div>
|
|
||||||
<div class="containexte">
|
|
||||||
<div class="formeexté cn rond"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn rond"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform2">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb rond"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn rond"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--CARRE-->
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb carre"></div>
|
|
||||||
</div>
|
|
||||||
<div class="containexte">
|
|
||||||
<div class="formeexté cn carre"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn carre"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform2">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb carre"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn carre"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<!--TRIANGLE-->
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class="castriangle cb formeinté triangle"></div>
|
|
||||||
</div>
|
|
||||||
<div class="containexte">
|
|
||||||
<div class="formeexté cn triangle"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class="castriangle cn formeinté triangle"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform2">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class="castriangle cb formeinté triangle"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class="castriangle cn formeinté triangle"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--LOSANGE-->
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb losange"></div>
|
|
||||||
</div>
|
|
||||||
<div class="containexte">
|
|
||||||
<div class="formeexté cn losange"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn losange"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform2">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb losange"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn losange"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<!--CROIX-->
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb croix"></div>
|
|
||||||
</div>
|
|
||||||
<div class="containexte">
|
|
||||||
<div class="formeexté cn croix"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn croix"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform2">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb croix"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn croix"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--PENTA-->
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb penta"></div>
|
|
||||||
</div>
|
|
||||||
<div class="containexte">
|
|
||||||
<div class="formeexté cn penta"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn penta"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform2">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb penta"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn penta"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<!--HEXA-->
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb hexa"></div>
|
|
||||||
</div>
|
|
||||||
<div class="containexte">
|
|
||||||
<div class="formeexté cn hexa"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn hexa"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform2">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb hexa"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn hexa"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--HOCTO-->
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb hocto"></div>
|
|
||||||
</div>
|
|
||||||
<div class="containexte">
|
|
||||||
<div class="formeexté cn hocto"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn hocto"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform2">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cb hocto"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="containform">
|
|
||||||
<div class="containinte">
|
|
||||||
<div class=" formeinté cn hocto"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,99 +0,0 @@
|
|||||||
:root{
|
|
||||||
--x : 10vw;
|
|
||||||
--y : 8vw;
|
|
||||||
--z : 4vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containform {
|
|
||||||
position: relative;
|
|
||||||
height: var(--x);
|
|
||||||
width: var(--x);
|
|
||||||
display: table-cell;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
.containform2{
|
|
||||||
position: relative;
|
|
||||||
height: var(--x);
|
|
||||||
width: var(--x);
|
|
||||||
display: table-cell;
|
|
||||||
vertical-align: middle;
|
|
||||||
background-color: black;
|
|
||||||
}
|
|
||||||
/*ROND*/
|
|
||||||
.containexte{
|
|
||||||
margin: 0 auto;
|
|
||||||
height: var(--y);
|
|
||||||
width: var(--y);
|
|
||||||
}
|
|
||||||
|
|
||||||
.containinte{
|
|
||||||
/*PROBLEME SIZE*/
|
|
||||||
top: calc((var(--x) - var(--z)) / 2);
|
|
||||||
left: calc((var(--x) - var(--z)) / 2);
|
|
||||||
height: var(--z);
|
|
||||||
width: var(--z);
|
|
||||||
z-index: 2;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rond{
|
|
||||||
-webkit-clip-path: circle(50% at 50% 50%);
|
|
||||||
clip-path: circle(50% at 50% 50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cb{
|
|
||||||
background-color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cn{
|
|
||||||
background-color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.formeinté{
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.formeexté{
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.carre{
|
|
||||||
-webkit-clip-path: inset(0 0 0 0);
|
|
||||||
clip-path: inset(0 0 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.triangle{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
|
|
||||||
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.castriangle{
|
|
||||||
margin-top: calc( (var(--y) - var(--z)) / 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.losange{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
|
|
||||||
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.croix{
|
|
||||||
-webkit-clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
|
|
||||||
clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.penta{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
|
|
||||||
clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hexa{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
|
|
||||||
clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hocto{
|
|
||||||
-webkit-clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
|
|
||||||
clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
|
|
||||||
}
|
|
||||||
|
|
@ -1,148 +0,0 @@
|
|||||||
#COMMENT GENERER DES CARTES SWISH 3*4#
|
|
||||||
|
|
||||||
##Sommaire##
|
|
||||||
- Introduction
|
|
||||||
- Les Cartes Possibles
|
|
||||||
- Les Types de Cartes
|
|
||||||
- Génération des doublons
|
|
||||||
- Conclusion
|
|
||||||
|
|
||||||
##Introduction ##
|
|
||||||
|
|
||||||
On peut croire qu'il existe un très grand nombre de possibilités de cartes à cause du nombre d'emplacements de Figures possible. 3*4 soit 12 au total.
|
|
||||||
|
|
||||||
Cependant, le jeu physique de swish utilise des cartes transparentes autirisant la rotation de celles-ci. Dès lors, plusieurs **variantes** d'une même carte sont possibles en retournant la carte de départ comme ici :
|
|
||||||
|
|
||||||
<img src="img/Parallélisme.png" alt="Markdown Monster icon"/>
|
|
||||||
|
|
||||||
Le but de cette étude est donc de savoir qu'elles sont les cartes possibles en prenant en compte toutes les variantes et comment générer le jeu physique Swish.
|
|
||||||
|
|
||||||
## Les Cartes Possibles ##
|
|
||||||
|
|
||||||
Pour éviter d'énumérer toutes les cartes au risque d'avoir des doublons. Nous devons comprendre le comportement des rotations en s'aidant d'un repère.
|
|
||||||
|
|
||||||
Dans notre cas, on sait que chaque carte possède 2 Figures :
|
|
||||||
|
|
||||||
- Une petite : un point
|
|
||||||
- Une Grande : un cercle
|
|
||||||
|
|
||||||
Pour cette étude nous allons choisir le point de chaque carte comme repère.
|
|
||||||
|
|
||||||
Un point sur une carte peut avoir plusieurs positions. Il faut donc déterminer quelles sont les positions jumelées, c'est-à-dire, les positions qu'un point peut avoir en faisant des rotations.
|
|
||||||
|
|
||||||
Nous allons nous aider du code couleur présent sur les cartes.
|
|
||||||
|
|
||||||
### Point Bleu et Rouge ###
|
|
||||||
Ces points possèdent 4 positions jumelées chacun. Comme ici :
|
|
||||||
<img src="img/ParallélismePointBleu.png" alt="Markdown Monster icon"/>
|
|
||||||
<img src="img/ParallélismePointRouge.png" alt="Markdown Monster icon"/>
|
|
||||||
|
|
||||||
### Point Vert et Violet###
|
|
||||||
Ces points possèdent 2 positions jumelées chacun. La différence entre ces points et les autres réside dans le fait qu'il existe une symétrie axiale causée par le nombre impair de colonne sur les cartes.
|
|
||||||
|
|
||||||
<img src="img/ParallélismePointVert.png" alt="Markdown Monster icon"/>
|
|
||||||
<img src="img/ParallélismePointViolet.png" alt="Markdown Monster icon"/>
|
|
||||||
----
|
|
||||||
|
|
||||||
Maintenant que nous savons les positions de point possible. Pour chaque couleur de point, (Rouge,Bleu,Vert,Violet), nous allons garder qu'une seule position d'un point (haut-droit) puis énumerer toutes les positions qu'un cercle peut prendre sur une carte afin de créer un ensemble de carte Swish.
|
|
||||||
|
|
||||||
### Point Bleu et Rouge ###
|
|
||||||
Sur une carte il existe 12 positions différentes causées par le quadrillage 3*4 d'une carte. Si l'une des positions est déjà prise par un point (Bleu ou Rouge) le cercle peut alors avoir 11 positions possibles comme ici :
|
|
||||||
|
|
||||||
<img src="img/PossibiliteesBleuRouge.png" alt="Markdown Monster icon"/>
|
|
||||||
|
|
||||||
Pour ces points il existe donc 11 possibilitées de carte chacun soit 22 cartes.
|
|
||||||
|
|
||||||
### Point Vert et Violet ###
|
|
||||||
Pour ces points il existe une symétrie axiale déjà énumérée au-dessus à cause du nombre impair de colonne sur une carte. Lorsqu'un point se situe sur la colonne centrale, une symétrie se crée entre les deux autres colonnes. Ainsi les cercles ne possèdent pas 11 positions possibles mais plus que 7 comme ici:
|
|
||||||
|
|
||||||
<img src="img/PossibiliteesVertViolet.png" alt="Markdown Monster icon"/>
|
|
||||||
|
|
||||||
Pour ces points il existe donc 7 possibilitées de carte chacun soit 14 cartes.
|
|
||||||
|
|
||||||
**Au total nous trouvons 36 cartes possibles en prenant en compte les rotations**
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
##Les Types De Carte##
|
|
||||||
|
|
||||||
Après avoir énuméré toutes les cartes possibles. Nous pouvons analyser les cartes crées et repérer des propriétés.
|
|
||||||
|
|
||||||
En effet nous pouvons déjà séparer toutes les cartes en deux familles :
|
|
||||||
### Cartes unies###
|
|
||||||
|
|
||||||
Cette famille contient uniquement les cartes possèdant un point et un cercle de même couleur.
|
|
||||||
|
|
||||||
<img src="img/CarteUniRougeBleu.png" alt="Markdown Monster icon"/>
|
|
||||||
|
|
||||||
La propriété principale d'une carte unie est que sa **complémentaire** (carte avec laquelle elle forme un assemblage de 2 cartes) est elle-même. Cette propriété va nous aider pour la génération des cartes plus tard.
|
|
||||||
|
|
||||||
### Cartes bicolores###
|
|
||||||
|
|
||||||
Cette famille contient toutes les autres cartes possibles exceptées les cartes unies. C'est-à-dire les cartes composées d'un point et d'un cercle de couleurs différentes.
|
|
||||||
|
|
||||||
À la différence des cartes unies, la complémentaire d'une carte bicolore n'est pas elle-même. Mais une carte différente composée d'un cercle et d'un point de couleur et position opposée afin de former un assemblage correct. Comme-ici :
|
|
||||||
|
|
||||||
<img src="img/DemonstrationAssemblageCarteBicolores.png" alt="Markdown Monster icon"/>
|
|
||||||
|
|
||||||
Nous savons qu'il existe 36 possibilités de cartes. 8 d'entre elles sont des cartes unies. Il reste donc 28 cartes bicolores que l'on peut rassembler en 14 paires de cartes complémentaires.
|
|
||||||
|
|
||||||
Ces 14 paires peuvent être elles aussi regrouper en fonction de leurs duos de couleurs formés par leurs figures.
|
|
||||||
|
|
||||||
Par exemple voici les familles des duos (Vert-Bleu) et (Violet-Rouge) composées de 2 paires de cartes complémentaires chacune:
|
|
||||||
|
|
||||||
<img src="img/FamilleDuosBleuVert-RougeViolet.png" alt="Markdown Monster icon"/>
|
|
||||||
|
|
||||||
**Remarque: Le fait de regrouper les cartes bicolores en famille de plus en plus précise va nous aider à comprendre le principe de génération des cartes.**
|
|
||||||
|
|
||||||
##Génération des doublons##
|
|
||||||
|
|
||||||
Un jeu de cartes Swish contient 60 cartes. Sachant qu'il n'existe que 36 possibilités de cartes. Nous savons donc que le jeu possède des doublons.
|
|
||||||
|
|
||||||
Cependant, si nous doublons toutes les cartes 36*2, nous obtenons un tas de 72 cartes. Il y a donc 12 cartes en trop. 12 cartes qui n'ont pas de doublons dans le paquet mais lesquels ?
|
|
||||||
|
|
||||||
En réalité, les 12 cartes manquantes sont en lien avec les paires complémentaires des familles de duos de couleurs vues au-dessus.
|
|
||||||
|
|
||||||
En effet, il existe un total de 6 familles de duos de couleurs :
|
|
||||||
|
|
||||||
###Bleu-Rouge###
|
|
||||||
<img src="img/FamilleDuosBleuRouge.png" alt="Markdown Monster icon"/>
|
|
||||||
###Bleu-Vert###
|
|
||||||
<img src="img/FamilleDuosBleuVert.png" alt="Markdown Monster icon"/>
|
|
||||||
###Bleu-Violet###
|
|
||||||
<img src="img/FamilleDuosBleuViolet.png" alt="Markdown Monster icon"/>
|
|
||||||
###Rouge-Vert###
|
|
||||||
<img src="img/FamilleDuosRougeVert.png" alt="Markdown Monster icon"/>
|
|
||||||
###Rouge-Violet###
|
|
||||||
<img src="img/FamilleDuosRougeViolet.png" alt="Markdown Monster icon"/>
|
|
||||||
###Violet-Vert###
|
|
||||||
<img src="img/FamilleDuosVertViolet.png" alt="Markdown Monster icon"/>
|
|
||||||
|
|
||||||
À cause de la symétrie axiale causée par le nombre impair de colonne sur les cartes, les familles de duos possèdent un nombre de cartes et donc de paires différents.
|
|
||||||
|
|
||||||
Pour générer les 60 cartes, nous devons doubler toutes les cartes unies de façon à pouvoir former les paires complémentaires. Sachant qu'il y a 8 cartes unies nous obtenons 16 cartes pour le moment.
|
|
||||||
|
|
||||||
Pour les cartes bicolores il faut s'intéresser aux familles de duos de couleurs. Pour chaque famille il existe un nombre de paires de cartes complémentaires. La logique est très simple, nous allons doubler toutes les paires sauf une.
|
|
||||||
|
|
||||||
**Par exemple** pour la famille (Bleu-Vert) nous avons 2 paires de cartes complémentaires :
|
|
||||||
|
|
||||||
<img src="img/FamilleDuosBleuVert.png" alt="Markdown Monster icon"/>
|
|
||||||
|
|
||||||
**Mais une seule est doublée pour obtenir ces cartes dans le jeu physique**
|
|
||||||
|
|
||||||
<img src="img/DoublonBleuVert.png" alt="Markdown Monster icon"/>
|
|
||||||
|
|
||||||
**REMARQUE** : **Ce processus est utilisé pour toutes les familles de duos sauf les familles (Vert-Violet) et (Bleu-Rouge) qui sont des familles particulières.**
|
|
||||||
|
|
||||||
En effet pour la famille (Vert-Violet)
|
|
||||||
**Nous allons doubler toutes les paires.**
|
|
||||||
Tandis que pour la famille (Bleu-Rouge).
|
|
||||||
**Deux paires ne vont pas être doublées.** Nous avons finalement nos 60 cartes dans le paquet en évitant de doubler un total de 12 cartes.
|
|
||||||
|
|
||||||
##CONCLUSION##
|
|
||||||
|
|
||||||
En suivant le processus nous avons réussi à enlever 12 cartes du jeu et ainsi obtenir le tas de 60 cartes que le jeu physique utilise.
|
|
||||||
|
|
||||||
**Mais pourquoi enlever 12 cartes ?**
|
|
||||||
|
|
||||||
Cela peut s'expliquer car les règles du jeu précisent que durant une partie, 16 cartes sont présentées aux joueurs. Dans des cas extrêmement rares, les 16 cartes ne peuvent être assemblées. Enlever ces 12 cartes, c'est tout simplement réduire les possibilités pour qu'un événement pareil se déroule dans une partie même si les possibilitées ne sont tout de même pas nul...
|
|
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 17 KiB |
@ -1,44 +0,0 @@
|
|||||||
:root{
|
|
||||||
--taille : 10vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.carte {
|
|
||||||
background-color: #B7B7B7;
|
|
||||||
border-radius: 0.75vw;
|
|
||||||
padding-right: 0.15vw;
|
|
||||||
padding-left: 0.15vw;
|
|
||||||
padding-bottom: 0.25vw;
|
|
||||||
display: flex;
|
|
||||||
margin-right: 0.4vw;
|
|
||||||
margin-left: 0.4vw;
|
|
||||||
margin-bottom: 1vw;
|
|
||||||
width: var(--taille);
|
|
||||||
-webkit-flex-flow: row wrap;
|
|
||||||
justify-content: space-around;
|
|
||||||
}
|
|
||||||
/*1 + 3*x colonne*/
|
|
||||||
.case{
|
|
||||||
width: 3vw;
|
|
||||||
padding-left: 0.1vw;
|
|
||||||
margin-top: 0.25vw;
|
|
||||||
height: 3vw;
|
|
||||||
border-radius: 10px;
|
|
||||||
background-color: #E6E6E6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.troispar4{
|
|
||||||
width: 10vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.troispar3{
|
|
||||||
width: 10vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.quatrepar3{
|
|
||||||
width: 13vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#conteneur{
|
|
||||||
height: 30vw;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
function generer(){
|
|
||||||
//recupere les valeurs
|
|
||||||
//alert(document.getElementById("colonne").value);
|
|
||||||
var nbColonne = document.getElementById("colonne").value;
|
|
||||||
var nbLigne = document.getElementById("ligne").value;
|
|
||||||
|
|
||||||
//text de vérification
|
|
||||||
document.getElementById("verif").innerHTML = "Carte de dimension " + nbColonne + "x" + nbLigne + " ";
|
|
||||||
creerCarte(nbColonne, nbLigne);
|
|
||||||
}
|
|
||||||
|
|
||||||
function creerCarte(column, row){
|
|
||||||
//creer la carte
|
|
||||||
var carte = document.createElement('div');
|
|
||||||
carte.className = "carte";
|
|
||||||
carte.id = "carte";
|
|
||||||
|
|
||||||
for(var i = 0; i < column*row; i++){
|
|
||||||
var casee = document.createElement('div');
|
|
||||||
casee.className = "case";
|
|
||||||
carte.appendChild(casee);
|
|
||||||
}
|
|
||||||
|
|
||||||
document.getElementById("conteneur").appendChild(carte);
|
|
||||||
|
|
||||||
//mettre a jour la taille /!\ c'est ca le plus important
|
|
||||||
var newTaille = column * 3.2 + 1;
|
|
||||||
document.documentElement.style.setProperty('--taille', newTaille + "vw");
|
|
||||||
|
|
||||||
//afficher carte
|
|
||||||
var carteinser = document.getElementById("carte");
|
|
||||||
|
|
||||||
}
|
|
@ -1,140 +0,0 @@
|
|||||||
:root{
|
|
||||||
--taille : 10vw;
|
|
||||||
--x: 3vw;
|
|
||||||
--y: 2.5vw;
|
|
||||||
--z: 1.5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.carte {
|
|
||||||
background-color: #B7B7B7;
|
|
||||||
border-radius: 0.75vw;
|
|
||||||
padding-right: 0.15vw;
|
|
||||||
padding-left: 0.15vw;
|
|
||||||
padding-bottom: 0.25vw;
|
|
||||||
display: flex;
|
|
||||||
margin-right: 0.4vw;
|
|
||||||
margin-left: 0.4vw;
|
|
||||||
margin-bottom: 1vw;
|
|
||||||
width: var(--taille);
|
|
||||||
-webkit-flex-flow: row wrap;
|
|
||||||
justify-content: space-around;
|
|
||||||
}
|
|
||||||
/*1 + 3*x colonne*/
|
|
||||||
.case{
|
|
||||||
width: 3vw;
|
|
||||||
padding-left: 0.1vw;
|
|
||||||
margin-top: 0.25vw;
|
|
||||||
height: 3vw;
|
|
||||||
border-radius: 10px;
|
|
||||||
display: table-cell;
|
|
||||||
position: relative;
|
|
||||||
vertical-align: middle;
|
|
||||||
background-color: #E6E6E6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.troispar4{
|
|
||||||
width: 10vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.troispar3{
|
|
||||||
width: 10vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.quatrepar3{
|
|
||||||
width: 13vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#conteneur{
|
|
||||||
height: 30vw;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containinte{
|
|
||||||
top:calc((var(--x) - var(--z)) / 2);
|
|
||||||
left:calc((var(--x) - var(--z)) / 2);
|
|
||||||
height: var(--z);
|
|
||||||
width: var(--z);
|
|
||||||
z-index: 2;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containexte{
|
|
||||||
top:calc((var(--x) - var(--y)) / 2);
|
|
||||||
left:calc((var(--x) - var(--y)) / 2);
|
|
||||||
height: var(--y);
|
|
||||||
width: var(--y);
|
|
||||||
z-index: 1;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.formeinte{
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.formeexte{
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.containform3{
|
|
||||||
position: relative;
|
|
||||||
height: var(--x);
|
|
||||||
width: var(--x);
|
|
||||||
display: table-cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cb {
|
|
||||||
background-color: #E6E6E6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cn {
|
|
||||||
background-color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rond{
|
|
||||||
-webkit-clip-path: circle(50% at 50% 50%);
|
|
||||||
clip-path: circle(50% at 50% 50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.carre{
|
|
||||||
-webkit-clip-path: inset(0 0 0 0);
|
|
||||||
clip-path: inset(0 0 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.triangle{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
|
|
||||||
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.castriangle{
|
|
||||||
margin-top: calc( (var(--y) - var(--z)) / 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.caspenta{
|
|
||||||
margin-top: calc( (var(--y) - var(--z)) / 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
.losange{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
|
|
||||||
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.croix{
|
|
||||||
-webkit-clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
|
|
||||||
clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.penta{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
|
|
||||||
clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hexa{
|
|
||||||
-webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
|
|
||||||
clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hocto{
|
|
||||||
-webkit-clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
|
|
||||||
clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
function generer(){
|
|
||||||
//recupere les valeurs
|
|
||||||
//alert(document.getElementById("colonne").value);
|
|
||||||
var nbColonne = document.getElementById("colonne").value;
|
|
||||||
var nbLigne = document.getElementById("ligne").value;
|
|
||||||
|
|
||||||
//text de vérification
|
|
||||||
document.getElementById("verif").innerHTML = "Carte de dimension " + nbColonne + "x" + nbLigne + " ";
|
|
||||||
creerCarte(nbColonne, nbLigne);
|
|
||||||
}
|
|
||||||
|
|
||||||
function creerCarte(column, row){
|
|
||||||
//creer la carte
|
|
||||||
var carte = document.createElement('div');
|
|
||||||
carte.className = "carte";
|
|
||||||
carte.id = "carte";
|
|
||||||
|
|
||||||
for(var i = 0; i < column*row; i++){
|
|
||||||
var casee = document.createElement('div');
|
|
||||||
casee.className = "case";
|
|
||||||
carte.appendChild(casee);
|
|
||||||
}
|
|
||||||
|
|
||||||
document.getElementById("conteneur").appendChild(carte);
|
|
||||||
|
|
||||||
//mettre a jour la taille /!\ c'est ca le plus important
|
|
||||||
var newTaille = column * 3.2 + 1;
|
|
||||||
document.documentElement.style.setProperty('--taille', newTaille + "vw");
|
|
||||||
|
|
||||||
//afficher carte
|
|
||||||
var carteinser = document.getElementById("carte");
|
|
||||||
|
|
||||||
}
|
|
@ -0,0 +1,79 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="BranchesTreeState">
|
||||||
|
<expand>
|
||||||
|
<path>
|
||||||
|
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
||||||
|
<item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
||||||
|
<item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
||||||
|
<item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
||||||
|
<item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" />
|
||||||
|
</path>
|
||||||
|
</expand>
|
||||||
|
<select />
|
||||||
|
</component>
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="84a6c709-118a-43ab-819c-2d175d74c8bf" name="Default Changelist" comment="" />
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="ComposerSettings">
|
||||||
|
<execution />
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../.." />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectId" id="1oWUJCl0mYM5y6OYNDgEnTIUDL7" />
|
||||||
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||||
|
<component name="ProjectViewState">
|
||||||
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
|
<option name="showLibraryContents" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">
|
||||||
|
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||||
|
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
||||||
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||||
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||||
|
<property name="vue.rearranger.settings.migration" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="84a6c709-118a-43ab-819c-2d175d74c8bf" name="Default Changelist" comment="" />
|
||||||
|
<created>1613401765703</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1613401765703</updated>
|
||||||
|
<workItem from="1613401766817" duration="893000" />
|
||||||
|
<workItem from="1613495239926" duration="82000" />
|
||||||
|
<workItem from="1613495323995" duration="681000" />
|
||||||
|
<workItem from="1613499683985" duration="93000" />
|
||||||
|
<workItem from="1613499778895" duration="2337000" />
|
||||||
|
<workItem from="1613502533837" duration="4404000" />
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
<option name="version" value="3" />
|
||||||
|
</component>
|
||||||
|
<component name="Vcs.Log.Tabs.Properties">
|
||||||
|
<option name="TAB_STATES">
|
||||||
|
<map>
|
||||||
|
<entry key="MAIN">
|
||||||
|
<value>
|
||||||
|
<State />
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
<option name="oldMeFiltersMigrated" value="true" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,116 @@
|
|||||||
|
<link rel="stylesheet" href="css.css">
|
||||||
|
<link rel="shortcut icon" type="image/png" href="test.ico"/>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<h1>Morpion</h1>
|
||||||
|
<p>
|
||||||
|
<form method="post">
|
||||||
|
<input type="text" name="forme" required="required" placeholder="Mettre X ou O" maxlength="1">
|
||||||
|
<input type="number" name="case" required="required" placeholder="Emplacement (1-9)" maxlength="1">
|
||||||
|
<button type="submit">Inserer</button>
|
||||||
|
</form>
|
||||||
|
</p>
|
||||||
|
<?php
|
||||||
|
require("MyDB.php");
|
||||||
|
|
||||||
|
$db = new MyDB();
|
||||||
|
$idpartie = "SZFSF";
|
||||||
|
$db->query('INSERT INTO partie(Id) VALUES("'.$idpartie.'")');
|
||||||
|
echo "<h2>Id : $idpartie</h2>" ;
|
||||||
|
$colonne="";
|
||||||
|
|
||||||
|
if(isset($_POST['case'])){
|
||||||
|
|
||||||
|
if($_POST['case']=='1'){
|
||||||
|
$colonne='un';
|
||||||
|
}
|
||||||
|
elseif ($_POST['case']=='2'){
|
||||||
|
$colonne='deux';
|
||||||
|
}
|
||||||
|
elseif ($_POST['case']=='3'){
|
||||||
|
$colonne='trois';
|
||||||
|
}
|
||||||
|
elseif ($_POST['case']=='4'){
|
||||||
|
$colonne='quatre';
|
||||||
|
}
|
||||||
|
elseif ($_POST['case']=='5'){
|
||||||
|
$colonne='cinq';
|
||||||
|
}
|
||||||
|
elseif ($_POST['case']=='6'){
|
||||||
|
$colonne='six';
|
||||||
|
}
|
||||||
|
elseif ($_POST['case']=='7'){
|
||||||
|
$colonne='sept';
|
||||||
|
}
|
||||||
|
elseif ($_POST['case']=='8'){
|
||||||
|
$colonne='huit';
|
||||||
|
}
|
||||||
|
elseif ($_POST['case']=='9'){
|
||||||
|
$colonne='neuf';
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$colonne='null';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$valeur="";
|
||||||
|
if(isset($_POST['forme'])){
|
||||||
|
$valeur=$_POST['forme'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
header("refresh: 2");
|
||||||
|
//$db->exec('CREATE TABLE partie(Id STRING,un STRING,deux STRING,trois STRING, quatre STRING,cinq STRING,six STRING,sept STRING,huit STRING,neuf STRING)');
|
||||||
|
if(isset($colonne)and $valeur!="" and $colonne!=''){
|
||||||
|
|
||||||
|
$aff=$db->query('SELECT "'.$colonne.'" FROM partie where Id="'.$idpartie.'" ');
|
||||||
|
$res = $aff->fetchArray();
|
||||||
|
|
||||||
|
if(strlen($res[$colonne])==1){
|
||||||
|
echo " <p> Insertion impossible une valeur est déjà à l'intérieur</p> <br>";
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$update = $db->query('UPDATE partie SET "'.$colonne.'" = "'.$valeur.'" where Id="'.$idpartie.'" ');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//$db->query('INSERT INTO partie(Id) VALUES("'.$idpartie.'")');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$afficher = $db->query('SELECT * FROM partie where Id="'.$idpartie.'" ');
|
||||||
|
while ($row = $afficher->fetchArray()) {
|
||||||
|
|
||||||
|
$un=$row['un'];
|
||||||
|
$deux=$row['deux'];
|
||||||
|
$trois=$row['trois'];
|
||||||
|
$quatre=$row['quatre'];
|
||||||
|
$cinq=$row['cinq'];
|
||||||
|
$six=$row['six'];
|
||||||
|
$sept=$row['sept'];
|
||||||
|
$huit=$row['huit'];
|
||||||
|
$neuf=$row['neuf'];
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
echo "
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>$un</td>
|
||||||
|
<td>$deux</td>
|
||||||
|
<td>$trois</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>$quatre</td>
|
||||||
|
<td>$cinq</td>
|
||||||
|
<td>$six</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>$sept</td>
|
||||||
|
<td>$huit</td>
|
||||||
|
<td>$neuf</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
";
|
||||||
|
|
||||||
|
?>
|
@ -0,0 +1,40 @@
|
|||||||
|
body{
|
||||||
|
margin: 0; /* pour éviter les marges */
|
||||||
|
text-align: center; /* pour corriger le bug de centrage IE */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 4em;
|
||||||
|
font-weight: 700;
|
||||||
|
font-family: 'Titillium Web';
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
td:nth-last-of-type(2) {
|
||||||
|
border-left: 2px solid black;
|
||||||
|
border-right: 2px solid black;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr:nth-last-of-type(2) td{
|
||||||
|
border-top: 2px solid black;
|
||||||
|
border-bottom: 2px solid black;
|
||||||
|
}
|
||||||
|
|
||||||
|
p{
|
||||||
|
text-align: center;
|
||||||
|
color: #F43C3F
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 9.4 KiB |
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
@ -0,0 +1,12 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
|
<option name="ignoredIdentifiers">
|
||||||
|
<list>
|
||||||
|
<option value="main.helloHandler.*" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</inspection_tool>
|
||||||
|
</profile>
|
||||||
|
</component>
|
@ -0,0 +1,6 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8" project-jdk-type="Python SDK" />
|
||||||
|
</project>
|
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/ServerPyt.iml" filepath="$PROJECT_DIR$/.idea/ServerPyt.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,140 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="BranchesTreeState">
|
||||||
|
<expand>
|
||||||
|
<path>
|
||||||
|
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
||||||
|
<item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
||||||
|
</path>
|
||||||
|
</expand>
|
||||||
|
<select />
|
||||||
|
</component>
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="28254644-08db-40a1-8497-05ce7fa43f93" name="Default Changelist" comment="" />
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectId" id="1kKwlpoG7vbAj2OMN8ReQMzKG2s" />
|
||||||
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||||
|
<component name="ProjectViewState">
|
||||||
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
|
<option name="showLibraryContents" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">
|
||||||
|
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||||
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||||
|
<property name="restartRequiresConfirmation" value="false" />
|
||||||
|
</component>
|
||||||
|
<component name="RunManager" selected="Python.server">
|
||||||
|
<configuration name="client" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||||
|
<module name="ServerPyt" />
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||||
|
<option name="IS_MODULE_SDK" value="true" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/client.py" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<option name="EMULATE_TERMINAL" value="false" />
|
||||||
|
<option name="MODULE_MODE" value="false" />
|
||||||
|
<option name="REDIRECT_INPUT" value="false" />
|
||||||
|
<option name="INPUT_FILE" value="" />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<configuration name="server" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||||
|
<module name="ServerPyt" />
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||||
|
<option name="IS_MODULE_SDK" value="true" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/server.py" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<option name="EMULATE_TERMINAL" value="false" />
|
||||||
|
<option name="MODULE_MODE" value="false" />
|
||||||
|
<option name="REDIRECT_INPUT" value="false" />
|
||||||
|
<option name="INPUT_FILE" value="" />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<recent_temporary>
|
||||||
|
<list>
|
||||||
|
<item itemvalue="Python.server" />
|
||||||
|
<item itemvalue="Python.client" />
|
||||||
|
</list>
|
||||||
|
</recent_temporary>
|
||||||
|
</component>
|
||||||
|
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="28254644-08db-40a1-8497-05ce7fa43f93" name="Default Changelist" comment="" />
|
||||||
|
<created>1605462744659</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1605462744659</updated>
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="Vcs.Log.Tabs.Properties">
|
||||||
|
<option name="TAB_STATES">
|
||||||
|
<map>
|
||||||
|
<entry key="MAIN">
|
||||||
|
<value>
|
||||||
|
<State />
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
<option name="oldMeFiltersMigrated" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="WindowStateProjectService">
|
||||||
|
<state width="1899" height="281" key="GridCell.Tab.0.bottom" timestamp="1605469519241">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1899" height="281" key="GridCell.Tab.0.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1605469519241" />
|
||||||
|
<state width="1899" height="281" key="GridCell.Tab.0.center" timestamp="1605469519241">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1899" height="281" key="GridCell.Tab.0.center/0.0.1920.1040@0.0.1920.1040" timestamp="1605469519241" />
|
||||||
|
<state width="1899" height="281" key="GridCell.Tab.0.left" timestamp="1605469519241">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1899" height="281" key="GridCell.Tab.0.left/0.0.1920.1040@0.0.1920.1040" timestamp="1605469519241" />
|
||||||
|
<state width="1899" height="281" key="GridCell.Tab.0.right" timestamp="1605469519241">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1899" height="281" key="GridCell.Tab.0.right/0.0.1920.1040@0.0.1920.1040" timestamp="1605469519241" />
|
||||||
|
<state width="1899" height="348" key="GridCell.Tab.1.bottom" timestamp="1605463596920">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1899" height="348" key="GridCell.Tab.1.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1605463596920" />
|
||||||
|
<state width="1899" height="348" key="GridCell.Tab.1.center" timestamp="1605463596920">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1899" height="348" key="GridCell.Tab.1.center/0.0.1920.1040@0.0.1920.1040" timestamp="1605463596920" />
|
||||||
|
<state width="1899" height="348" key="GridCell.Tab.1.left" timestamp="1605463596920">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1899" height="348" key="GridCell.Tab.1.left/0.0.1920.1040@0.0.1920.1040" timestamp="1605463596920" />
|
||||||
|
<state width="1899" height="348" key="GridCell.Tab.1.right" timestamp="1605463596920">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1899" height="348" key="GridCell.Tab.1.right/0.0.1920.1040@0.0.1920.1040" timestamp="1605463596920" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,40 @@
|
|||||||
|
import socket
|
||||||
|
import threading
|
||||||
|
|
||||||
|
class Client:
|
||||||
|
def __init__(self):
|
||||||
|
self.create_connection()
|
||||||
|
|
||||||
|
def create_connection(self):
|
||||||
|
self.s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
|
||||||
|
|
||||||
|
while 1:
|
||||||
|
try:
|
||||||
|
host = input("Entrez l'adresse IP de l'Host : ")
|
||||||
|
port = int(input("Entrez le port : "))
|
||||||
|
self.s.connect((host,port))
|
||||||
|
|
||||||
|
break
|
||||||
|
except:
|
||||||
|
print("Impossible de se connecter au serveur")
|
||||||
|
|
||||||
|
self.username = input('Entrez votre pseudo : ')
|
||||||
|
self.s.send(self.username.encode())
|
||||||
|
|
||||||
|
message_handler = threading.Thread(target=self.handle_messages,args=())
|
||||||
|
message_handler.start()
|
||||||
|
|
||||||
|
input_handler = threading.Thread(target=self.input_handler,args=())
|
||||||
|
input_handler.start()
|
||||||
|
|
||||||
|
def handle_messages(self):
|
||||||
|
while 1:
|
||||||
|
print(self.s.recv(1204).decode())
|
||||||
|
print("")
|
||||||
|
|
||||||
|
def input_handler(self):
|
||||||
|
while 1:
|
||||||
|
print("Message : ",end='')
|
||||||
|
self.s.send((self.username+' - '+input()).encode())
|
||||||
|
|
||||||
|
client = Client()
|
@ -0,0 +1,62 @@
|
|||||||
|
import socket
|
||||||
|
import threading
|
||||||
|
|
||||||
|
class Server:
|
||||||
|
def __init__(self):
|
||||||
|
self.start_server()
|
||||||
|
|
||||||
|
def start_server(self):
|
||||||
|
self.s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
|
||||||
|
|
||||||
|
host = socket.gethostbyname(socket.gethostname())
|
||||||
|
port = int(input("Entrez le port sur lequel le serveur va être : "))
|
||||||
|
|
||||||
|
self.clients = []
|
||||||
|
|
||||||
|
self.s.bind((host,port))
|
||||||
|
self.s.listen(100)
|
||||||
|
|
||||||
|
print("Ip de l'host "+str(host))
|
||||||
|
print('Marche sur le port '+str(port))
|
||||||
|
|
||||||
|
self.username_lookup = {}
|
||||||
|
|
||||||
|
while True:
|
||||||
|
c, addr = self.s.accept()
|
||||||
|
|
||||||
|
username = c.recv(1024).decode()
|
||||||
|
|
||||||
|
print('Nouvelle connection : Pseudo '+str(username))
|
||||||
|
self.broadcast('Nouvelle personne à rejoind : Pseudo '+username)
|
||||||
|
|
||||||
|
self.username_lookup[c] = username
|
||||||
|
|
||||||
|
self.clients.append(c)
|
||||||
|
|
||||||
|
threading.Thread(target=self.handle_client,args=(c,addr,)).start()
|
||||||
|
|
||||||
|
def broadcast(self,msg):
|
||||||
|
for connection in self.clients:
|
||||||
|
connection.send(msg.encode())
|
||||||
|
|
||||||
|
def handle_client(self,c,addr):
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
msg = c.recv(1024)
|
||||||
|
except:
|
||||||
|
c.shutdown(socket.SHUT_RDWR)
|
||||||
|
self.clients.remove(c)
|
||||||
|
|
||||||
|
print(str(self.username_lookup[c])+' est parti')
|
||||||
|
self.broadcast(str(self.username_lookup[c])+' a quite')
|
||||||
|
|
||||||
|
break
|
||||||
|
|
||||||
|
if msg.decode() != '':
|
||||||
|
print(str(msg.decode()))
|
||||||
|
for connection in self.clients:
|
||||||
|
if connection != c:
|
||||||
|
connection.send(msg)
|
||||||
|
|
||||||
|
|
||||||
|
server = Server()
|
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="dataSourceStorageLocal">
|
||||||
|
<data-source name="mysqlitedb" uuid="c0187b2b-b8fe-4f13-a0ec-505670256d89">
|
||||||
|
<database-info product="" version="" jdbc-version="" driver-name="" driver-version="" dbms="SQLITE" exact-version="0" />
|
||||||
|
<auth-provider>no-auth</auth-provider>
|
||||||
|
<schema-mapping />
|
||||||
|
</data-source>
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="b6d72cad-e941-4c3a-b6c5-e3bcc6cd6173" name="Default Changelist" comment="" />
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="ComposerSettings">
|
||||||
|
<execution />
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../.." />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectId" id="1oALKuaprZel0d2LL4ieQVOpaAs" />
|
||||||
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||||
|
<component name="ProjectViewState">
|
||||||
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
|
<option name="showLibraryContents" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">
|
||||||
|
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||||
|
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
||||||
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||||
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||||
|
<property name="vue.rearranger.settings.migration" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="b6d72cad-e941-4c3a-b6c5-e3bcc6cd6173" name="Default Changelist" comment="" />
|
||||||
|
<created>1612724389515</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1612724389515</updated>
|
||||||
|
<workItem from="1612724391269" duration="576000" />
|
||||||
|
<workItem from="1612725088185" duration="2000" />
|
||||||
|
<workItem from="1612725454839" duration="44000" />
|
||||||
|
<workItem from="1612725511845" duration="12000" />
|
||||||
|
<workItem from="1612725585349" duration="2899000" />
|
||||||
|
<workItem from="1613499659831" duration="8000" />
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
<option name="version" value="3" />
|
||||||
|
</component>
|
||||||
|
<component name="Vcs.Log.Tabs.Properties">
|
||||||
|
<option name="TAB_STATES">
|
||||||
|
<map>
|
||||||
|
<entry key="MAIN">
|
||||||
|
<value>
|
||||||
|
<State />
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
<option name="oldMeFiltersMigrated" value="true" />
|
||||||
|
</component>
|
||||||
|
</project>
|
Before Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 62 KiB |
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="WEB_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|