nom mode + retour page + algo de generation 3eme carte + 3x3mod

master
readhame 5 years ago
parent 53efdfacb3
commit 3a60b1e640

@ -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>

@ -44,19 +44,12 @@
<property name="DefaultHtmlFileTemplate" value="HTML File" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/vues/images" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../test" />
</component>
<component name="ReadonlyStatusHandler">
<option name="SHOW_DIALOG" value="false" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\wamp64\www\HyperSet\vues\images" />
<recent name="C:\wamp64\www\HyperSet\vues" />
<recent name="C:\wamp64\www\HyperSet" />
<recent name="C:\wamp64\www\HyperSet\bdd" />
<recent name="C:\wamp64\www\HyperSet\site\vues\js" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\wamp64\www\HyperSet\vues\images" />
<recent name="C:\wamp64\www\HyperSet\DAL" />
@ -64,6 +57,13 @@
<recent name="C:\wamp64\www\HyperSet\site" />
<recent name="C:\wamp64\www\HyperSet" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\wamp64\www\HyperSet\vues\images" />
<recent name="C:\wamp64\www\HyperSet\vues" />
<recent name="C:\wamp64\www\HyperSet" />
<recent name="C:\wamp64\www\HyperSet\bdd" />
<recent name="C:\wamp64\www\HyperSet\site\vues\js" />
</key>
</component>
<component name="SvnConfiguration">
<configuration />
@ -101,6 +101,9 @@
<workItem from="1593102504672" duration="528000" />
<workItem from="1593166507430" duration="19623000" />
<workItem from="1593356039878" duration="8833000" />
<workItem from="1593437869110" duration="7108000" />
<workItem from="1593450224651" duration="111000" />
<workItem from="1593512353865" duration="16143000" />
</task>
<servers />
</component>
@ -120,10 +123,10 @@
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="690" y="267" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1592564996566" />
<state x="267" y="278" key="FileChooserDialogImpl" timestamp="1593185301624">
<state x="267" y="278" key="FileChooserDialogImpl" timestamp="1593520198428">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="267" y="278" key="FileChooserDialogImpl/0.0.1920.1040@0.0.1920.1040" timestamp="1593185301624" />
<state x="267" y="278" key="FileChooserDialogImpl/0.0.1920.1040@0.0.1920.1040" timestamp="1593520198428" />
<state width="196" height="457" key="HiddenNamespacesPopup" timestamp="1591707100032">
<screen x="0" y="0" width="1920" height="1040" />
</state>
@ -140,10 +143,10 @@
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="498" height="446" key="SwitcherDM/0.0.1920.1040@0.0.1920.1040" timestamp="1592141850590" />
<state x="1136" y="344" key="com.intellij.ide.util.TipDialog" timestamp="1593356049353">
<state x="1136" y="344" key="com.intellij.ide.util.TipDialog" timestamp="1593512389695">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="1136" y="344" key="com.intellij.ide.util.TipDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1593356049353" />
<state x="1136" y="344" key="com.intellij.ide.util.TipDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1593512389695" />
<state x="701" y="162" key="refactoring.ChangeSignatureDialog" timestamp="1593090265720">
<screen x="0" y="0" width="1920" height="1040" />
</state>

@ -1,5 +1,5 @@
<?php
ini_set('display_errors', 0);
class Controlleur
{

@ -126,6 +126,30 @@ class Deck {
}
}
}
}elseif ($changes === 'deal0') {
$colors = array('green', 'red', 'purple');
$shapes = array('oval', 'diamond', 'wave');
$fills = array('solid', 'stripped', 'open');
$border = 'simple';
//$numbers = array(1, 2, 3);
$number = 3;
$index0 = 1;
foreach ($colors as $color) {
foreach ($shapes as $shape) {
foreach ($fills as $fill) {
//foreach ($borders as $border) {
//foreach ($numbers as $number) {
$cardAttributes = new CardAttributes($color, $shape, $fill, $border, $number, $index0);
$card = new Card($cardAttributes, $this);
$index0++;
//}
//}
}
}
}
}
}
@ -139,12 +163,12 @@ class Deck {
public function deal() {
public function deal($nbCartes) {
// shuffle the deck
$this->shuffle();
// remove 12 cards from the top and return them
$dealtCards = array_chop($this->cards, 12);
$dealtCards = array_chop($this->cards, $nbCartes);
return $dealtCards;
}

@ -9,10 +9,10 @@ class Game {
$this->deck = $deck;
}
public function start() {
public function start($nbCarte) {
// call the deck's deal function and return the cards dealt
return $this->deck->deal();
return $this->deck->deal($nbCarte);
}
}

@ -13,33 +13,40 @@ if (isset($_GET['action']) && $_GET['action'] == 'deal') {
$_SESSION['deck'] = new Deck($_GET['action']);
$_SESSION['game'] = new Game($_SESSION['deck']);
$game = $_SESSION['game'];
echo json_encode($game->start());
echo json_encode($game->start(20));
} else if (isset($_GET['action']) && $_GET['action'] == 'deal1') {
$_SESSION['deck1'] = new Deck($_GET['action']);
$_SESSION['game1'] = new Game($_SESSION['deck1']);
$game = $_SESSION['game1'];
echo json_encode($game->start());
echo json_encode($game->start(45));
} else if (isset($_GET['action']) && $_GET['action'] == 'deal2') {
$_SESSION['deck2'] = new Deck($_GET['action']);
$_SESSION['game2'] = new Game($_SESSION['deck2']);
$game = $_SESSION['game2'];
echo json_encode($game->start());
echo json_encode($game->start(20));
} else if (isset($_GET['action']) && $_GET['action'] == 'deal3') {
$_SESSION['deck3'] = new Deck($_GET['action']);
$_SESSION['game3'] = new Game($_SESSION['deck3']);
$game = $_SESSION['game3'];
echo json_encode($game->start());
echo json_encode($game->start(20));
} else if (isset($_GET['action']) && $_GET['action'] == 'deal4') {
$_SESSION['deck4'] = new Deck($_GET['action']);
$_SESSION['game4'] = new Game($_SESSION['deck4']);
$game = $_SESSION['game4'];
echo json_encode($game->start());
echo json_encode($game->start(20));
} else if (isset($_GET['action']) && $_GET['action'] == 'submit'){
}else if (isset($_GET['action']) && $_GET['action'] == 'deal0') {
$_SESSION['deck0'] = new Deck($_GET['action']);
$_SESSION['game0'] = new Game($_SESSION['deck0']);
$game = $_SESSION['game0'];
echo json_encode($game->start(12));
}
else if (isset($_GET['action']) && $_GET['action'] == 'submit'){
$deck = $_SESSION['deck'];
echo json_encode($deck->threeMore());
}
@ -58,4 +65,7 @@ else if (isset($_GET['action']) && $_GET['action'] == 'submit3'){
else if (isset($_GET['action']) && $_GET['action'] == 'submit4'){
$deck = $_SESSION['deck4'];
echo json_encode($deck->threeMore());
}else if (isset($_GET['action']) && $_GET['action'] == 'submit0'){
$deck = $_SESSION['deck0'];
echo json_encode($deck->threeMore());
}

@ -74,7 +74,7 @@ select::-ms-expand {
.settings-btn {
width: 70px;
height: 70px;
position: absolute;
position: fixed;
top: 6%;
right: 1%;
}
@ -200,7 +200,7 @@ select::-ms-expand {
.explain-btn {
width: 70px;
height: 70px;
position: absolute;
position: fixed;
top: 90%;
right: 1%;
@ -403,4 +403,24 @@ input:checked + .slider .on {
font-weight: bold;
text-align: center;
font-family: textFont, sans-serif;
}
.back-btn{
position: fixed;
top: 6%;
left: 1%;
}
.back-btn img {
cursor: pointer;
-webkit-transform: rotate(0) scale(1.5);
transform: rotate(0) scale(1);
-webkit-transition: .3s ease-in-out;
transition: .3s ease-in-out;
}
.back-btn img:hover{
-webkit-transform: rotate(0) scale(1.2);
transform: rotate(0) scale(1.2);
}

@ -32,7 +32,7 @@ h1 {
.card {
display: table-cell;
width: 400px;
width: 290px;
height: 200px;
border: 2px solid #ccc;
@ -48,12 +48,25 @@ h1 {
}
.game-board {
margin-top: 5%;
height: auto;
width: auto;
transform: rotate(90deg);
height: 1000px;
margin-right: 22%;
}
.game-board0 {
margin-top: 22%;
height: auto;
width: auto;
transform: rotate(90deg);
}
.game-board1 {
margin-top: -27%;
height: auto;
width: auto;
transform: rotate(90deg);
}
.shape {
display: inline-block;
@ -76,7 +89,7 @@ h1 {
.wave {
border-radius: 15px 180px 15px 180px;
transform: rotate(1deg) skewX(0.5deg) scaleX(0.8);
width: 45px;
width: 50px;
}
@ -85,7 +98,8 @@ h1 {
.oval {
border-radius: 40px / 50px;
transform: rotate(0.5deg) skewX(1deg) scaleX(0.8);
width: 55px;
width: 50px;
height: 100px;
}
@ -93,12 +107,13 @@ h1 {
.rectangle{
transform: rotate(0.5deg) skewX(1deg) scaleX(0.8);
width: 55px;
width: 50px;
}
.triangle{
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
width: 50px;
}
@ -119,42 +134,48 @@ $borders = array('plein', 'point', 'rond', 'zigzag','hachure');
.green.pointille{
background-image: radial-gradient(green 20%, white 20%),
radial-gradient(#fafafa 20%, transparent 20%);
background-position: 0 0, 5px 5px;
background-size: 20px 20px;
background-image: radial-gradient(green 40%, #F5F5F5 40%),
radial-gradient(green 20%, #F5F5F5 20%),
radial-gradient(#fafafa 10%, transparent 10%);
background-position: 0 0, 1px 1px;
background-size: 15px 15px;
border: 2px solid green;
}
.red.pointille{
background-image: radial-gradient(red 20%, white 20%),
radial-gradient(#fafafa 20%, transparent 20%);
background-position: 0 0, 5px 5px;
background-size: 20px 20px;
background-image: radial-gradient(red 40%, #F5F5F5 40%),
radial-gradient(red 20%, #F5F5F5 20%),
radial-gradient(#fafafa 10%, transparent 10%);
background-position: 0 0, 1px 1px;
background-size: 15px 15px;
border: 2px solid red;
}
.yellow.pointille{
background-image: radial-gradient(orangered 20%, white 20%),
radial-gradient(#fafafa 20%, transparent 20%);
background-position: 0 0, 5px 5px;
background-size: 20px 20px;
background-image: radial-gradient(orangered 40%, #F5F5F5 40%),
radial-gradient(orangered 20%, #F5F5F5 20%),
radial-gradient(#fafafa 10%, transparent 10%);
background-position: 0 0, 1px 1px;
background-size: 15px 15px;
border: 2px solid saddlebrown;
}
.lightblue.pointille{
background-image: radial-gradient(lightblue 20%, white 20%),
radial-gradient(#fafafa 20%, transparent 20%);
background-position: 0 0, 5px 5px;
background-size: 20px 20px;
background-image: radial-gradient(lightblue 40%, #F5F5F5 40%),
radial-gradient(lightblue 20%, #F5F5F5 20%),
radial-gradient(#fafafa 10%, transparent 10%);
background-position: 0 0, 1px 1px;
background-size: 15px 15px;
border: 2px solid lightblue;
}
.purple.pointille{
background-image: radial-gradient(purple 20%, white 20%),
radial-gradient(#fafafa 20%, transparent 20%);
background-position: 0 0, 5px 5px;
background-size: 20px 20px;
background-image: radial-gradient(purple 40%, #F5F5F5 40%),
radial-gradient(purple 20%, #F5F5F5 20%),
radial-gradient(#fafafa 10%, transparent 10%);
background-position: 0 0, 1px 1px;
background-size: 15px 15px;
border: 2px solid purple;
}
@ -174,6 +195,7 @@ radial-gradient(#fafafa 20%, transparent 20%);
linear-gradient(90deg, rgba(255,255,255,.28) 2px, transparent 2px);
background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
background-position: -2px -2px, -2px -2px, -1px -1px, -1px -1px;
border: 2px solid green;
}
.red.quadrillage{
background-color: red;
@ -184,6 +206,7 @@ radial-gradient(#fafafa 20%, transparent 20%);
linear-gradient(90deg, rgba(255,255,255,.28) 2px, transparent 2px);
background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
background-position: -2px -2px, -2px -2px, -1px -1px, -1px -1px;
border: 2px solid red;
}
.yellow.quadrillage{
background-color: orangered;
@ -194,6 +217,7 @@ radial-gradient(#fafafa 20%, transparent 20%);
linear-gradient(90deg, rgba(255,255,255,.28) 2px, transparent 2px);
background-size: 80px 80px, 80px 80px, 15px 15px, 15px 15px;
background-position: -2px -2px, -2px -2px, -1px -1px, -1px -1px;
border: 2px solid brown;
}
.lightblue.quadrillage{
@ -205,6 +229,7 @@ radial-gradient(#fafafa 20%, transparent 20%);
linear-gradient(90deg, rgba(255,255,255,.28) 2px, transparent 2px);
background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
background-position: -2px -2px, -2px -2px, -1px -1px, -1px -1px;
border: 2px solid lightblue;
}
.purple.quadrillage{
background-color: purple;
@ -215,6 +240,7 @@ radial-gradient(#fafafa 20%, transparent 20%);
linear-gradient(90deg, rgba(255,255,255,.28) 2px, transparent 2px);
background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
background-position: -2px -2px, -2px -2px, -1px -1px, -1px -1px;
border: 2px solid purple;
}

@ -16,15 +16,31 @@
<div class="play-btn" id="home">
<img class="playsmall-btn" id="playBtn" src="vues/images/play.png" onclick=" showModeGame()" style="display: block;">
<img class="playsmall-btn" id="playBtn" src="vues/images/play.png" onclick=" showModeGames()" style="display: block;">
</div>
<div id="selectMode" class="select-mode-div divs" style="display: none;">
<h2 class="mode-title disable-select text" id="selectGames">Modes de jeu </h2>
<div class=" back-btn small-btn">
<img class="small-btn" id="previousBtns" onclick="goHome()" src="vues/images/previous.png">
</div>
<div class="game-button-mode">
<button class="game-button text" id="Set" onclick="showModeGame();">Set</button>
<button class="game-button text" id="HyperSet" onclick="showModeGame1();">HyperSet</button>
</div>
</div>
<div id="selectModeSet" class="select-mode-div divs" style="display: none;">
<h2 class="mode-title disable-select text" id="selectGame">Modes de jeu </h2>
<div class="explain-btn small-btn">
<img class="small-btn" id="homeBtn" onclick="changeDiv('home');" src="vues/images/home.png">
<div class=" back-btn small-btn">
<img class="small-btn" id="previousBtn" onclick="goSelect()" src="vues/images/previous.png">
</div>
<div class="game-button-mode">
<button class="game-button text" id="playSimple" onclick="showGame0();">SET! 3*3</button>
<button class="game-button text" id="playSimpleSet" onclick="showGame();">SET! 3*4</button>
<button class="game-button text" id="playSimpleSetLast" onclick="showGame1();">SET! 3*5</button>
<button class="game-button text" id="playSetFour" onclick="showGame2();">SET! 4*4</button>
@ -34,10 +50,43 @@
</div>
<div id="selectModeHyperSet" class="select-mode-div divs" style="display: none;">
<h2 class="mode-title disable-select text" id="selectGameHS">Modes de jeu </h2>
<div class=" back-btn small-btn">
<img class="small-btn" id="previousBtnHS" onclick="goSelect()" src="vues/images/previous.png">
</div>
<div class="game-button-mode">
<button class="game-button text" id="playSimpleH" onclick="showGameSimple();">Hyper SET! 3*3</button>
<button class="game-button text" id="playSimpleHSet" onclick="showGame();">Hyper SET! 3*4</button>
<button class="game-button text" id="playSimpleHSetLast" onclick="showGame1();">Hyper SET! 3*5</button>
<button class="game-button text" id="playHSetFour" onclick="showGame2();">Hyper SET! 4*4</button>
<button class="game-button text" id="playSimpleHSetFive" onclick="showGame3();">Hyper SET! 4*5</button>
<button class="game-button text" id="playHSetFive" onclick="showGame4();">Hyper SET! 5*5</button>
</div>
</div>
<div id='game0' class="wrapper" style="display: none;">
<h1>Set 3x3 </h1>
<div class=" back-btn small-btn">
<img class="small-btn" id="previousBtn0" onclick="goSelectMode0()" src="vues/images/previous.png">
</div>
<p>Nombre de carte = 3; Nombre de critères = 3</p>
<p>Sets found: <span data-display="score0" class="score">0</span></p>
<p>Number of Sets: <span data-display="nbSets0" class="nbSets"></span></p>
<div id="carte0" class="game-board0" data-display="game-board0"></div>
</div>
<div id='game' class="wrapper" style="display: none;">
<h1>(TEST) Set</h1>
<p>Find sets.</p>
<h1>Set 3x4 </h1>
<div class=" back-btn small-btn">
<img class="small-btn" id="previousBtn1" onclick="goSelectMode()" src="vues/images/previous.png">
</div>
<p>Nombre de carte = 3; Nombre de critères = 4</p>
<p>Sets found: <span data-display="score" class="score">0</span></p>
<p>Number of Sets: <span data-display="nbSets" class="nbSets"></span></p>
<form method="get">
@ -51,34 +100,46 @@
</div>
<div id='game1' class="wrapper" style="display: none;">
<h1>(TEST) Set</h1>
<p>Find sets.</p>
<h1>Set 4x4</h1>
<div class=" back-btn small-btn">
<img class="small-btn" id="previousBtn2" onclick="goSelectMode1()" src="vues/images/previous.png">
</div>
<p>Nombre de carte = 3; Nombre de critères = 5</p>
<p>Sets found: <span data-display="score1" class="score"></span></p>
<p>Number of Sets: <span data-display="nbSets1" class="nbSets"></span></p>
<div class="game-board" data-display="game-board1"></div>
<div class="game-board1" data-display="game-board1"></div>
</div>
<div id='game2' class="wrapper" style="display: none;">
<h1>(TEST) Set</h1>
<p>Find sets.</p>
<h1>Set 4x4</h1>
<div class=" back-btn small-btn">
<img class="small-btn" id="previousBtn3" onclick="goSelectMode2()" src="vues/images/previous.png">
</div>
<p>Nombre de carte = 4; Nombre de critères = 4</p>
<p>Sets found: <span data-display="score2" class="score">0</span></p>
<p>Number of Sets: <span data-display="nbSets2" class="nbSets"></span></p>
<div class="game-board" data-display="game-board2"></div>
</div>
<div id='game3' class="wrapper" style="display: none;">
<h1>(TEST) Set</h1>
<p>Find sets.</p>
<h1>Set 4x5</h1>
<div class=" back-btn small-btn">
<img class="small-btn" id="previousBtn4" onclick="goSelectMode3()" src="vues/images/previous.png">
</div>
<p>Nombre de carte = 4; Nombre de critères = 5</p>
<p>Sets found: <span data-display="score3" class="score">0</span></p>
<p>Number of Sets: <span data-display="nbSets3" class="nbSets"></span></p>
<div class="game-board" data-display="game-board3"></div>
</div>
<div id='game4' class="wrapper" style="display: none;">
<h1>(TEST) Set</h1>
<p>Find sets.</p>
<h1>Set 5x5</h1>
<div class=" back-btn small-btn">
<img class="small-btn" id="previousBtn5" onclick="goSelectMode4()" src="vues/images/previous.png">
</div>
<p>Nombre de carte = 5; Nombre de critères = 5</p>
<p>Sets found: <span data-display="score4" class="score">0</span></p>
<p>Number of Sets: <span data-display="nbSets4" class="nbSets"></span></p>

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

@ -72,6 +72,16 @@ function showExplain(){
}
function goHome(){
document.getElementById('home').style.display='block';
document.getElementById('selectMode').style.display='none';
}
function showGame0(){
document.getElementById('game0').style.display='block';
document.getElementById('selectModeSet').style.display='none';
}
function showGame(){
document.getElementById('game').style.display='block';
@ -100,10 +110,13 @@ function showGame4(){
function showModeGame(){
document.getElementById('selectModeSet').style.display='block';
document.getElementById('playBtn').style.display='none';
document.getElementById('selectMode').style.display='none';
}
function showModeGames(){
document.getElementById('selectMode').style.display='block';
document.getElementById('home').style.display='none';
}
function closeExplainPopup() {
@ -144,3 +157,33 @@ function setTheme() {
}
}
function goSelect(){
document.getElementById('selectMode').style.display='block';
document.getElementById('selectModeSet').style.display='none';
}
function goSelectMode(){
document.getElementById('selectModeSet').style.display='block';
document.getElementById('game').style.display='none';
}
function goSelectMode1(){
document.getElementById('selectModeSet').style.display='block';
document.getElementById('game1').style.display='none';
}
function goSelectMode2(){
document.getElementById('selectModeSet').style.display='block';
document.getElementById('game2').style.display='none';
}
function goSelectMode3(){
document.getElementById('selectModeSet').style.display='block';
document.getElementById('game3').style.display='none';
}
function goSelectMode4(){
document.getElementById('selectModeSet').style.display='block';
document.getElementById('game4').style.display='none';
}
function goSelectMode0(){
document.getElementById('selectModeSet').style.display='block';
document.getElementById('game0').style.display='none';
}

@ -43,6 +43,14 @@ var Game = {
$nbSets4: $('[data-display="nbSets4"]'),
$board4: $('[data-display="game-board4"]'),
cards0: [],
selected0 : [],
score0: 0,
set0: 0,
$score0: $('[data-display="score0"]'),
$nbSets0: $('[data-display="nbSets0"]'),
$board0: $('[data-display="game-board0"]'),
deal: function() {
@ -52,6 +60,7 @@ var Game = {
var dealRequest2;
var dealRequest3;
var dealRequest4;
var dealRequest0;
// ajax request to get initial set of cards
dealRequest = $.ajax({
@ -60,27 +69,13 @@ var Game = {
dataType: 'json',
success: function (data) {
self.cards = data;
//self.existingSet();
self.displayCards.call(self);
self.existingSet();
self.setCardListeners();
self.setPageListeners();
}
});
/*while(self.set === 0){
dealRequest = $.ajax({
url: 'set.php?action=deal',
type: 'GET',
dataType: 'json',
success: function (data) {
self.cards = data;
self.displayCards.call(self);
self.existingSet();
self.setCardListeners();
self.setPageListeners();
}
});
}*/
dealRequest1 = $.ajax({
url: 'set.php?action=deal1',
@ -88,22 +83,22 @@ var Game = {
dataType: 'json',
success: function (data) {
self.cards1 = data;
//self.existingSet1();
self.displayCards1.call(self);
self.existingSet1();
self.setCardListeners1();
self.setPageListeners1();
}
});
dealRequest2 = $.ajax({
dealRequest2 = $.ajax({
url: 'set.php?action=deal2',
type: 'GET',
dataType: 'json',
success: function (data) {
self.cards2 = data;
self.displayCards2.call(self);
self.existingSet2();
//self.existingSet2();
self.setCardListeners2();
self.setPageListeners2();
}
@ -116,7 +111,7 @@ var Game = {
success: function (data) {
self.cards3 = data;
self.displayCards3.call(self);
self.existingSet3();
//self.existingSet3();
self.setCardListeners3();
self.setPageListeners3();
}
@ -129,12 +124,25 @@ var Game = {
success: function (data) {
self.cards4 = data;
self.displayCards4.call(self);
self.existingSet4();
//self.existingSet4();
self.setCardListeners4();
self.setPageListeners4();
}
});
dealRequest0 = $.ajax({
url: 'set.php?action=deal0',
type: 'GET',
dataType: 'json',
success: function (data) {
self.cards0 = data;
self.displayCards0.call(self);
self.setCardListeners0();
self.setPageListeners0();
}
});
},
@ -175,7 +183,7 @@ var Game = {
self.$board.append(cardNode);
// display 4 cards per row
if ((index+1) % 3 === 0) {
if ((index+1) % 4 === 0) {
self.$board.append($('<div>'));
}
@ -214,7 +222,7 @@ var Game = {
self.$board1.append(cardNode);
// display 4 cards per row
if ((index+1) % 3 === 0) {
if ((index+1) % 5 === 0) {
self.$board1.append($('<div>'));
}
@ -251,7 +259,7 @@ var Game = {
self.$board2.append(cardNode);
// display 4 cards per row
if ((index+1) % 3 === 0) {
if ((index+1) % 4 === 0) {
self.$board2.append($('<div>'));
}
@ -288,7 +296,7 @@ var Game = {
self.$board3.append(cardNode);
// display 4 cards per row
if ((index+1) % 3 === 0) {
if ((index+1) % 4 === 0) {
self.$board3.append($('<div>'));
}
@ -326,7 +334,7 @@ var Game = {
self.$board4.append(cardNode);
// display 4 cards per row
if ((index+1) % 3 === 0) {
if ((index+1) % 4 === 0) {
self.$board4.append($('<div>'));
}
@ -335,6 +343,43 @@ var Game = {
},
displayCards0: function() {
var self = this;
if (self.cards0.length == 0) {
return false;
}
$.each(self.cards0, function(index, card){
var cardNode = $('<div>', {
class: "card"
}).appendTo(self.$board0);
cardNode.data({
'id': card.id,
'shape': card.shape,
'fill': card.fill,
'color': card.color,
'number': card.number
});
var shapeNode = $("<canvas></canvas>");
shapeNode.addClass('shape ' + card.color + ' ' + card.shape + ' ' + card.fill);
for (var i = 0; i < card.number; i++) {
cardNode.append(shapeNode.clone());
}
self.$board0.append(cardNode);
// display 4 cards per row
if ((index+1) % 3 === 0) {
self.$board0.append($('<div>'));
}
});
},
@ -724,8 +769,27 @@ var Game = {
setCardListeners0: function() {
var self = this;
// what happens when a card is clicked:
this.$board0.on('click', '.card', function(e) {
e.stopImmediatePropagation();
var card = e.currentTarget;
// if card is new, add it, otherwise remove it
var ids = $.map(self.selected0, function(el) { return $(el).data("id");});
if (ids.indexOf($(card).data('id')) >= 0) {
self.deselectCard0(card);
} else {
self.selectCard0(card);
}
if (self.selected0.length === 3) {
self.silentSubmission0();
}
});
},
setCardListeners: function() {
var self = this;
@ -847,6 +911,14 @@ var Game = {
setPageListeners0: function() {
var self = this;
// if the user clicks on the page outside the game board, clear selected
$(document).on('click', function() {
self.clearSelections0.call(self);
});
},
setPageListeners: function() {
var self = this;
@ -903,6 +975,15 @@ var Game = {
selectCard0: function(card) {
$(card).addClass('selected');
this.selected0.push(card);
if (this.selected0.length > 3) {
this.clearSelections0.call(this);
}
},
selectCard: function(card) {
$(card).addClass('selected');
@ -963,7 +1044,14 @@ var Game = {
deselectCard0: function(card) {
var self = this;
var index = self.selected0.indexOf(card);
if (index > -1) {
self.selected0.splice(index, 1);
}
$(card).removeClass('selected');
},
deselectCard: function(card) {
var self = this;
var index = self.selected.indexOf(card);
@ -1016,7 +1104,12 @@ var Game = {
clearSelections0: function() {
$.each(this.selected0, function(index, card) {
$(card).removeClass('selected');
});
this.selected0 = [];
},
clearSelections: function() {
$.each(this.selected, function(index, card) {
$(card).removeClass('selected');
@ -1059,8 +1152,19 @@ var Game = {
validateSet0: function() {
var self = this;
var colors = $.map(self.selected0, function(el) { return $(el).data("color");});
var shapes = $.map(self.selected0, function(el) { return $(el).data("shape"); });
var fills= $.map(self.selected0, function(el) { return $(el).data("fill"); });
return (self.isSet(colors) && self.isSet(shapes) && self.isSet(fills));
},
validateSet: function() {
var self = this;
@ -1070,17 +1174,18 @@ var Game = {
var numbers = $.map(self.selected, function(el) { return $(el).data("number"); });
return (self.isSet(colors) && self.isSet(shapes) && self.isSet(fills) && self.isSet(numbers));
},
validateSet35: function() {
var self = this;
var colors = $.map(self.selected, function(el) { return $(el).data("color");});
var shapes = $.map(self.selected, function(el) { return $(el).data("shape"); });
var fills= $.map(self.selected, function(el) { return $(el).data("fill"); });
var borders= $.map(self.selected, function(el) { return $(el).data("border"); });
var numbers = $.map(self.selected, function(el) { return $(el).data("number"); });
var colors = $.map(self.selected1, function(el) { return $(el).data("color");});
var shapes = $.map(self.selected1, function(el) { return $(el).data("shape"); });
var fills= $.map(self.selected1, function(el) { return $(el).data("fill"); });
var borders= $.map(self.selected1, function(el) { return $(el).data("border"); });
var numbers = $.map(self.selected1, function(el) { return $(el).data("number"); });
return (self.isSet(colors) && self.isSet(shapes) && self.isSet(fills) && self.isSet(borders) && self.isSet(numbers));
@ -1089,10 +1194,10 @@ var Game = {
validateSet44: function() {
var self = this;
var colors = $.map(self.selected, function(el) { return $(el).data("color");});
var shapes = $.map(self.selected, function(el) { return $(el).data("shape"); });
var fills= $.map(self.selected, function(el) { return $(el).data("fill"); });
var numbers = $.map(self.selected, function(el) { return $(el).data("number"); });
var colors = $.map(self.selected2, function(el) { return $(el).data("color");});
var shapes = $.map(self.selected2, function(el) { return $(el).data("shape"); });
var fills= $.map(self.selected2, function(el) { return $(el).data("fill"); });
var numbers = $.map(self.selected2, function(el) { return $(el).data("number"); });
return (self.isSet4(colors) && self.isSet4(shapes) && self.isSet4(fills) && self.isSet4(numbers));
@ -1101,11 +1206,11 @@ var Game = {
validateSet45: function() {
var self = this;
var colors = $.map(self.selected, function(el) { return $(el).data("color");});
var shapes = $.map(self.selected, function(el) { return $(el).data("shape"); });
var fills= $.map(self.selected, function(el) { return $(el).data("fill"); });
var borders= $.map(self.selected, function(el) { return $(el).data("border"); });
var numbers = $.map(self.selected, function(el) { return $(el).data("number"); });
var colors = $.map(self.selected3, function(el) { return $(el).data("color");});
var shapes = $.map(self.selected3, function(el) { return $(el).data("shape"); });
var fills= $.map(self.selected3, function(el) { return $(el).data("fill"); });
var borders= $.map(self.selected3, function(el) { return $(el).data("border"); });
var numbers = $.map(self.selected3, function(el) { return $(el).data("number"); });
return (self.isSet4(colors) && self.isSet4(shapes) && self.isSet4(borders) && self.isSet4(fills) && self.isSet4(numbers));
@ -1114,11 +1219,11 @@ var Game = {
validateSet55: function() {
var self = this;
var colors = $.map(self.selected, function(el) { return $(el).data("color");});
var shapes = $.map(self.selected, function(el) { return $(el).data("shape"); });
var fills= $.map(self.selected, function(el) { return $(el).data("fill"); });
var borders= $.map(self.selected, function(el) { return $(el).data("border"); });
var numbers = $.map(self.selected, function(el) { return $(el).data("number"); });
var colors = $.map(self.selected4, function(el) { return $(el).data("color");});
var shapes = $.map(self.selected4, function(el) { return $(el).data("shape"); });
var fills= $.map(self.selected4, function(el) { return $(el).data("fill"); });
var borders= $.map(self.selected4, function(el) { return $(el).data("border"); });
var numbers = $.map(self.selected4, function(el) { return $(el).data("number"); });
return (self.isSet5(colors) && self.isSet5(shapes) && self.isSet5(fills) && self.isSet5(borders) && self.isSet5(numbers));
@ -1142,9 +1247,6 @@ var Game = {
$.each(arr, function(i, el){
if($.inArray(el, unique) === -1) unique.push(el);
});
//console.log(unique);
return unique.length === 1 || unique.length === 3;
},
@ -1183,7 +1285,12 @@ var Game = {
silentSubmission0: function() {
var valid = this.validateSet0();
if (valid) {
this.submitSet0();
}
},
silentSubmission: function() {
var valid = this.validateSet();
if (valid) {
@ -1220,8 +1327,37 @@ var Game = {
submitSet0: function() {
var self = this;
var ids = $.map(self.selected0, function(el) { return $(el).data("id");});
// ajax request to get initial set of cards
var newCardRequest = $.ajax({
url: 'set.php?action=submit0',
type: 'GET',
dataType: 'json',
success: function(data) {
self.clearCards0(ids, data);
// to do - implement game complete check on server
if (!data.gameComplete) {
self.set0 = 0;
//self.updateCards(data);
//self.existingSet0();
self.increaseScore0();
} else {
self.gameWon();
}
},
error: function() {
console.log(arguments);
}
});
this.clearSelections0();
},
submitSet: function() {
var self = this;
var ids = $.map(self.selected, function(el) { return $(el).data("id");});
@ -1236,8 +1372,9 @@ var Game = {
// to do - implement game complete check on server
if (!data.gameComplete) {
self.set = 0;
//self.updateCards(data);
self.existingSet();
//self.existingSet();
self.increaseScore();
} else {
self.gameWon();
@ -1264,8 +1401,9 @@ var Game = {
self.clearCards1(ids,data);
// to do - implement game complete check on server
if (!data.gameComplete) {
self.set1 = 0;
//self.updateCards1(data);
self.existingSet1();
//self.existingSet1();
self.increaseScore1();
} else {
self.gameWon();
@ -1290,11 +1428,13 @@ var Game = {
type: 'GET',
dataType: 'json',
success: function(data) {
self.set2 = 0;
self.clearCards2(ids,data);
// to do - implement game complete check on server
if (!data.gameComplete) {
//self.updateCards2(data);
self.existingSet2();
//self.existingSet2();
self.increaseScore2();
} else {
self.gameWon();
@ -1322,8 +1462,9 @@ var Game = {
self.clearCards3(ids,data);
// to do - implement game complete check on server
if (!data.gameComplete) {
self.set3 = 0;
//self.updateCards3(data);
self.existingSet3();
//self.existingSet3();
self.increaseScore3();
} else {
self.gameWon();
@ -1352,8 +1493,9 @@ var Game = {
self.clearCards4(ids,data);
// to do - implement game complete check on server
if (!data.gameComplete) {
self.set4 = 0;
//self.updateCards4(data);
self.existingSet4();
//self.existingSet4();
self.increaseScore4();
} else {
self.gameWon();
@ -1377,12 +1519,26 @@ var Game = {
clearCards0: function(ids,data) {
var self = this;
this.selected0 = [];
this.$board0.empty();
var cardIds = $.map(self.cards0, function(card) { return card.id; });
console.log(cardIds);
$.each(ids, function(idx, id) {
var location = cardIds.indexOf(id);
if (location > -1) {
console.log(cardIds[location]);
cardIds.splice(location, 1);
self.cards0.splice(location, 1, data[idx]);
}
});
this.displayCards0();
console.log(cardIds);
console.log(self.cards0);
},
clearCards: function(ids,data) {
// remove submitted cards game's card array and clear the board
var self = this;
this.selected = [];
this.$board.empty();
@ -1508,8 +1664,9 @@ var Game = {
increaseScore0: function() {
this.$score0.html(++this.score0);
},
increaseScore: function() {
this.$score.html(++this.score);
},
@ -1554,7 +1711,7 @@ var Game = {
Game.deal();
/*
var canvases = document.getElementsByClassName(' red solid');
console.log(canvases);

Loading…
Cancel
Save