Compare commits

...

5 Commits

8 changed files with 903 additions and 6 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.idea

View File

@@ -7,9 +7,12 @@ Do zrobienia:
- [x] wyświetlenie wszystkich żetonów dóbr istniejących w grze
- [ ] wyświetlenie bonusowych żetonów istniejących w grze (3, 4 i 5 kart)
- [ ] wyświetlenie żetonu wielbłąda
- [ ] pobieranie żetonów po kliknięciu na żetonu
- [ ] losowanie wartości bonusowych żetonów kart
- [ ] zliczanie punków
- [ ] informowanie o zakończeniu rundy
- [ ] przydzielanie żetonu Maharadży
- [x] wyświetlenie żetonu wielbłąda
- [x] przydzielenie żetonu wielbłąda przed wyświetleniem wyniku
- [ ] rozwiązywanie sprawy z remisem
- [ ] przydzielanie bonusów nawet jak nie żetonów danej karty
- [x] pobieranie żetonów po kliknięciu na żetonu
- [x] losowanie wartości bonusowych żetonów kart
- [x] zliczanie punków
- [x] informowanie o zakończeniu rundy
- [x] przydzielanie żetonu Maharadży

1
camel.svg Normal file
View File

@@ -0,0 +1 @@
<svg width="200" height="200" fill="#000000" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="52 52 96 96" enable-background="new 52 52 96 96" xml:space="preserve"><path d="M70.193,77.634l0.15-1.425c0-0.45,0.075-1.05-0.45-1.275c-0.675-0.225-1.425,0.45-1.65,1.2 c-0.225,0.226-0.075,0-0.225,0.226c-0.675-0.15-0.975-0.675-2.1-0.15c-0.675,0.225-1.05,0.675-1.875,0.825 c-0.975,0.15-1.425,0.45-2.4,0.375c-0.975-0.15-1.2-0.45-2.475-0.375c-4.95,0.675-3.225-0.15-6.075,2.85l-0.375,0.45 c-0.075,0.225-0.375,0.825-0.375,1.05c0.6,0.601,0.375,0.375,1.05,0.825c-0.375,0.375-1.2,0.45-1.275,1.05 c0.975,1.575,3.45-0.825,5.25-0.149c0.825,0.375,1.2,0.675,2.1,1.05c1.8,0.375-1.2-0.225,0,0c0.6,0.225,0.675,5.325,0.975,6 c1.05,1.575,2.55,6.75,2.85,7.05c1.65,0.675,3.15,8.475,3.375,8.1c1.2-1.274,4.8,2.851,6.9,5.625c2.025,2.851,4.5,2.176,7.425,4.051 c1.5,0.975,4.05-8.101,5.85-8.4c2.1-0.375,2.85-0.675,4.5,0.975c0.375,0.375,1.275,1.2,1.65,1.426c0.6,0.449,1.65,0.449,2.1,0.975 c0.15,0.225,0.375,1.8,0.45,2.1c0.375,2.25,1.05,3.9,2.1,5.926c0.975,1.649,2.625,6.149,2.85,7.949c0.225,1.65,0.6,2.7,1.2,4.275 c0.375,1.05,0.449,0.675,0.225,2.025l-0.375,5.024c0,0.375,0,2.4,0,2.4c-0.6,1.5-3.825,0.45-3.3,2.024 c0.075,0.375,2.1,1.2,2.475,1.351c0.601,0.075,0.675-0.15,1.2,0.075c-0.225,0.449-3.3,1.875-1.575,2.699 c1.575,0.676,2.7,0.601,4.275,0.15c1.8-0.6,2.399-0.975,1.875-2.85c-0.226-1.275-0.226-3.676-0.226-5.101 c-0.149-3.3-0.824-6.524-0.449-9.825c0.149-2.175-0.075-2.475-0.976-4.425c-0.45-1.35-0.975-3-1.05-4.274 c-0.15-1.65-0.45-3.075-0.45-4.726c-0.149-1.575-0.975-3.899,0.976-3.899c0.975,0,1.649,0.149,2.475-0.075 c1.2-0.15,1.275-0.15,2.475,0c1.575,0.225,3.301,0,4.95-0.15c2.7-0.375,6.75,0.15,9-1.575c0.976-0.6,2.25-1.649,3.226-2.1 c0.6-0.225,1.199-0.45,1.8-0.825c0.6-0.225,1.2-0.975,1.8-0.6c0.45,0.675,0.225,1.425,0.225,2.1c0,0.601,0.15,1.425,0.226,2.025 c0.45,3.3,1.649,2.7,1.875,4.875c0,0.975,0.975,3.899,1.35,5.475c0.45,3.226,0.825,4.95,0.45,8.175c-0.375,4.125,0,3.9-1.425,7.801 c-0.45,1.05-0.976,2.024-1.425,3.074c-1.426,2.851-5.25,1.2-5.775,3.45c-0.375,1.65,1.875,1.275,3,1.425 c1.2,0.15,2.475-0.375,3.3-1.199c0.45-0.375,1.05-2.476,1.425-3.226c0.825-1.875,1.65-3.825,2.4-5.7 c0.075-0.449,0.075-0.6,0.45-0.675c0,2.25-0.075,2.4-0.825,4.5c-0.15,0.375-0.15,0.675-0.225,1.05l-0.825,1.875 c-0.15,0.601,0,0.601-0.375,1.051c0,0.149-0.075,0.375-0.226,0.375l-0.225,0.449c-1.575,1.65-5.475,3.301-5.475,4.125 c0.375,0.976,1.875,0.676,2.699,0.676c1.426,0,1.65-0.226,3-0.45c1.351-0.375,1.2-1.05,1.351-2.101 c0.075-0.375,1.05-1.649,1.274-2.1c1.051-1.875,0.976-2.475,1.426-3.675c0.225-0.45,0.225-0.825,0.375-1.425 c0.449-1.275,1.05-4.051,1.8-5.101c1.05-1.575,1.649-3.225,1.35-5.1c-0.45-2.851-0.225-6.976-0.225-10.125 c0-2.476,1.05-4.125,1.05-5.775c0-0.6,0-0.975,0.075-1.575c0.149-0.6,0-1.199,0.45-1.274c0,0.6,0.149,0.825,0.149,1.425 l-0.149,1.575c0,0.6-0.375,0.675-0.375,1.274l-0.15,3.075c-0.075,0.45-0.225,0.825-0.225,1.425c0,0.45,0.6,2.025,0.975,2.325 c1.05,0.15,0.975-0.6,0.975-1.425l0.976-0.075l0.149-1.05l0.825-0.225l-0.149-1.051c1.649,1.275,3.3,0.15,2.024-0.675 c-1.649-1.05-0.825-2.1-1.35-3.899c-0.601-1.801-2.101-1.426-2.4-2.7c-0.225-0.976,0.45-3.075,0.601-4.275 c0.225-2.625,0.225-6.899-0.45-9.375c-0.45-1.8-0.825-1.875-2.025-3.075c-1.05-0.975-1.35-1.65-2.625-2.475 c-2.024-1.425-4.274-2.625-6.524-3.6c-4.051-1.875-2.625-2.101-4.95-5.175c-1.05-1.35-4.05-3.45-5.55-4.65 c-1.051-0.975-1.65-1.8-3.075-2.025c-4.275-0.675-3.3,5.101-6.15,7.875c-0.975,0.9-6.075-2.175-8.399-5.475 c-7.351-10.425-9.075,8.4-9.675,8.775c-5.1,3.225-6.525,7.725-11.55,8.775c-0.675,0.075-1.575,0.45-2.025,0.45 c-0.825,0.15-1.2-0.45-1.875-0.825c-1.875-0.975-1.35-0.6-2.625-2.4c-0.6-1.05-1.575-2.025-1.65-3.3c0-1.2-0.45-3-1.2-3.825 C72.593,81.984,72.218,78.834,70.193,77.634z"/></svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

48
css/reset.css Normal file
View File

@@ -0,0 +1,48 @@
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}

204
css/style.css Normal file
View File

@@ -0,0 +1,204 @@
.group.inactive {
opacity: 0.4;
}
.group {
clear: both;
}
.group .coin:first-child {
margin: 5px 0vh 5px 0vh;
}
.group .coin.selected:first-child {
margin: 5px 0vh 5px -4vh;
}
.group .coin.selected {
float: right;
}
.group .coin {
border-radius: 90px;
display: inline-block;
height: 9vh;
width: 9vh;
text-align: center;
border: 1px solid transparent;
margin: 5px 0vh 5px -4vh;
font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif;
color: #d8d8d8;
background-position: center 72%;
background-repeat: no-repeat;
color: black;
cursor: pointer;
text-shadow: 0 0 2px #fff;
font-size: 3vh;
}
.group .coin.leather {
border-color: saddlebrown;
background-image: url(../leather.svg);
background-color: burlywood;
background-size: 45%
}
.group .coin.spice {
border-color: forestgreen;
background-color: #dff9b6;
background-image: url(../spice.svg);
background-size: 60%
}
.group .coin.gold {
border-color: goldenrod;
background-color: #fcf4ca;
background-image: url(../gold.svg);
background-size: 40%;
}
.group .coin.diamond {
border-color: darkred;
background-color: #f66282;
background-image: url(../diamond.svg);
background-size: 48%;
}
.group .coin.fabric {
border-color: purple;
background-color: #f5d6f5;
background-image: url(../fabric.svg);
background-size: 71%;
}
.group .coin.silver {
border-color: silver;
background-color: #879fc6;
background-image: url(../silver.svg);
background-size: 44%;
}
.players {
display: flex;
justify-content: space-around;
}
.players .player {
border: 2px solid dodgerblue;
padding: 0.5vh 4vh;
margin: 1.5vh 0;
color: #444;
cursor: pointer;
border-radius: 2px;
font-weight: bold;
font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif;
display: flex;
align-items: center;
height: 50px;
}
.players .player.selected {
background: #6f9cc9;
color: #f2eeee;
}
.players .accept {
visibility: hidden;
border: 2px solid dodgerblue;
margin: 1.5vh 0;
height: 50px;
align-items: center;
display: flex;
padding: 0.5vh 4vh;
font-weight: bold;
font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif;
background-color: #bedfff;
cursor: pointer;
}
.players .accept.on {
visibility: visible;
}
.players .player.player1 {
}
.players .player.player2 {
}
.players .player .score {
height: 50px;
width: 23px;
display: inline-block;
background-image: none;
background-size: auto auto;
margin: 0 5px;
background-image: url(../maharaja.svg);
background-size: 100%;
background-repeat: no-repeat;
}
.players .player .score:first-child {
margin-left: 15px;
}
.scoreTable {
width: 90vw;
background: #fff;
content: "";
height: 70vh;
position: absolute;
top: 15vh;
left: 5vw;
box-shadow: 0 0 207px #0000027F;
border: 3px solid #ccc;
display: none;
}
.scoreTable.visible {
display: block;
}
.scoreTable h1 {
text-align: center;
}
* {
font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif;
}
.players_section, .camel_section {
display: flex;
justify-content: space-around;
font-size: 45px;
}
.camel_section .player1_camel, .camel_section .player2_camel {
background: url('../camel.svg') no-repeat 0 0 / 10vh 10vh;
height: 10vh;
width: 10vh;
cursor: pointer;
opacity: 0.1;
}
.camel_section .nobody {
opacity: 0.1;
}
.camel_section .player1_camel.selected, .camel_section .player2_camel.selected, .camel_section .nobody.selected
{
opacity: 1;
}
.score_section {
display: none;
font-size: 35px;
justify-content: space-around;
}
.score_section.show {
display: flex;
}

120
index.html Normal file
View File

@@ -0,0 +1,120 @@
<!DOCTYPE html>
<html lang="pl-PL">
<head>
<title>Jaipur score</title>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="css/style.css"/>
<link rel="stylesheet" href="css/reset.css"/>
<script src="js/script.js"></script>
<script>
window.onload = function () {
board = {'goods': {}, 'bonus': {}};
board.goods.leather = [1, 1, 1, 1, 1, 1, 2, 3, 4];
board.goods.fabric = [1, 1, 2, 2, 3, 3, 5];
board.goods.spice = [1, 1, 2, 2, 3, 3, 5];
board.goods.silver = [5, 5, 5, 5, 5];
board.goods.gold = [5, 5, 5, 6, 6];
board.goods.diamond = [5, 5, 5, 7, 7];
board.bonus.five = [8, 9, 10, 10];
board.bonus.four = [4, 4, 6, 6, 5, 5];
board.bonus.three = [1, 1, 2, 2, 2, 3, 3];
board.bonus.camel = [5];
var player1 = new player('Kicia', 1);
var player2 = new player('Cysio', 2);
jaipur = new game(player1, player2, board);
jaipur.init();
console.info(jaipur.isRoundOver());
};
</script>
</head>
<body>
<div class="container">
<div class="players">
<div class="player player1" data-player="1">Kicia</div>
<div class="accept">Przydziel</div>
<div class="player player2" data-player="2">Cysio</div>
</div>
<div class="group leather">
<span class="coin leather" data-group="leather">1
</span><span class="coin leather" data-group="leather">1
</span><span class="coin leather" data-group="leather">1
</span><span class="coin leather" data-group="leather">1
</span><span class="coin leather" data-group="leather">1
</span><span class="coin leather" data-group="leather">1
</span><span class="coin leather" data-group="leather">2
</span><span class="coin leather" data-group="leather">3
</span><span class="coin leather" data-group="leather">4
</span>
</div>
<div class="group fabric">
<span class="coin fabric" data-group="fabric">1
</span><span class="coin fabric" data-group="fabric">1
</span><span class="coin fabric" data-group="fabric">2
</span><span class="coin fabric" data-group="fabric">2
</span><span class="coin fabric" data-group="fabric">3
</span><span class="coin fabric" data-group="fabric">3
</span><span class="coin fabric" data-group="fabric">5
</span>
</div>
<div class="group spice"><span class="coin spice" data-group="spice">1
</span><span class="coin spice" data-group="spice">1
</span><span class="coin spice" data-group="spice">2
</span><span class="coin spice" data-group="spice">2
</span><span class="coin spice" data-group="spice">3
</span><span class="coin spice" data-group="spice">3
</span><span class="coin spice" data-group="spice">5</span>
</div>
<div class="group silver"><span class="coin silver" data-group="silver">5
</span><span class="coin silver" data-group="silver">5
</span><span class="coin silver" data-group="silver">5
</span><span class="coin silver" data-group="silver">5
</span><span class="coin silver" data-group="silver">5</span>
</div>
<div class="group gold"><span class="coin gold" data-group="gold">5
</span><span class="coin gold" data-group="gold">5
</span><span class="coin gold" data-group="gold">5
</span><span class="coin gold" data-group="gold">6
</span><span class="coin gold" data-group="gold">6</span></div>
<div class="group diamond"><span class="coin diamond" data-group="diamond">5
</span><span class="coin diamond" data-group="diamond">5
</span><span class="coin diamond" data-group="diamond">5
</span><span class="coin diamond" data-group="diamond">7
</span><span class="coin diamond" data-group="diamond">7</span>
</div>
</div>
<div class="scoreTable">
<h1>Wynik</h1>
<div class="players_section">
<div class="player1_name">Kicia</div>
<div></div>
<div class="player2_name">Cysio</div>
</div>
<div class="camel_section">
<div class="player1_camel selected"></div>
<div class="nobody selected">remis</div>
<div class="player2_camel selected"></div>
</div>
<div class="score_section">
<div class="player1_score">0</div>
<div class="separator">:</div>
<div class="player2_score">0</div>
</div>
</div>
</body>
</html>

297
js/script.js Normal file
View File

@@ -0,0 +1,297 @@
function coin(value, group) {
this.value = value;
this.group = group;
}
function player(name, id) {
this.score = 0;
this.roundsWon = 0;
this.coins = [];
this.bonus = [];
this.name = name;
this.id = id;
this.selector = '.player.player' + id;
this.hasCamelCoin = true;
this.calculateScore = function () {
var score = 0;
for (var i in this.coins) {
score += this.coins[i];
}
for (var i in this.bonus) {
score += this.bonus[i];
}
if (this.hasCamelCoin) {
score += 5;
}
return this.score = score;
};
this.wonRound = function () {
this.roundsWon += 1;
};
this.reset = function () {
this.roundsWon = 0;
this.score = 0;
this.coins = [];
};
this.removePoints = function () {
var playerScore = document.querySelectorAll(this.selector + ' .score');
for (var i = 0; i < playerScore.length; i++) {
playerScore[i].remove();
}
};
this.drawPoints = function () {
this.removePoints();
var scoreDiv = document.querySelector(this.selector);
for (var i = 0; i < this.score; i++) {
var score = document.createElement("span");
score.classList.add('score');
scoreDiv.appendChild(score)
}
};
this.addPoint = function () {
this.score++;
this.drawPoints();
}
}
function game(player1, player2, board) {
this.round = 1;
this.player1 = player1;
this.player2 = player2;
this.activePlayer = null;
this.board = board;
this.isOver = false;
this.selectedCointType = false;
this.setActivePlayer = function (playerId) {
if (playerId == 1) {
jaipur.activePlayer = this.player1;
document.querySelector('.player.player1').classList.add("selected");
document.querySelector('.player.player2').classList.remove("selected");
jaipur.showAcceptButton();
} else if (playerId == 2) {
jaipur.activePlayer = this.player2;
document.querySelector('.player.player1').classList.remove("selected");
document.querySelector('.player.player2').classList.add("selected");
jaipur.showAcceptButton();
} else {
document.querySelector('.player.player1').classList.remove("selected");
document.querySelector('.player.player2').classList.remove("selected");
jaipur.activePlayer = false;
}
return this.activePlayer;
};
this.init = function () {
this.initializePlayerButtons();
this.initializeAcceptButton();
this.initializeCoins();
this.initializeCamels();
};
this.reset = function () {
this.player1.reset();
this.player2.reset();
this.isOver = false;
};
/**
* sprawdza czy runda jest już zakończona (jest 3 lub mniej typów dóbr)
* @returns {boolean}
*/
this.isRoundOver = function () {
var emptyRows = 0;
for (var i in board.goods) {
emptyRows += !board.goods[i].length ? 1 : 0;
console.info(board.goods[i]);
}
return emptyRows >= 3;
};
this.initializePlayerButtons = function () {
document.querySelector('.player.player1').addEventListener('click', function () {
jaipur.setActivePlayer(1)
});
document.querySelector('.player.player2').addEventListener('click', function () {
jaipur.setActivePlayer(2)
});
};
this.showAcceptButton = function () {
if (!!jaipur.activePlayer && !!document.querySelector('.coin.selected')) {
document.querySelector('.accept').style.visibility = 'visible';
}
};
this.hideAcceptButton = function () {
document.querySelector('.accept').style.visibility = 'hidden';
};
this.camelClick = function (player) {
document.querySelector('.nobody').classList.remove('selected');
document.querySelector('.player1_camel').classList.remove('selected');
document.querySelector('.player2_camel').classList.remove('selected');
if (player == 1) {
document.querySelector('.player1_camel').classList.add('selected');
jaipur.player1.hasCamelCoin = true;
jaipur.player2.hasCamelCoin = false;
} else if (player == 2) {
document.querySelector('.player2_camel').classList.add('selected');
jaipur.player1.hasCamelCoin = false;
jaipur.player2.hasCamelCoin = true;
} else if (player == 0) {
document.querySelector('.nobody').classList.add('selected');
jaipur.player1.hasCamelCoin = false;
jaipur.player2.hasCamelCoin = false;
}
jaipur.player1.calculateScore();
jaipur.player2.calculateScore();
jaipur.showScore();
};
this.coinClick = function () {
if (!jaipur.selectedCointType) {
jaipur.selectedCointType = this.dataset.group;
}
if (jaipur.selectedCointType == this.dataset.group) {
//ustawienie active inactive na wszystkich grupach
var groups = document.querySelectorAll('.group');
for (var i = 0; i < groups.length; i++) {
groups[i].classList.add('inactive');
}
//usuniecie inactive na tej jednej klikniętej grupie
this.selectedCointType = this.dataset.group;
document.querySelector('.group.' + this.dataset.group).classList.remove('inactive');
if (this.classList.contains('selected')) {
//wyłaczenie selected na ostatniej wybranym żetonie
document.querySelector('.coin.selected.' + this.dataset.group).classList.remove('selected');
//usunięcie blokady wybranego typu żetonu
if (document.querySelectorAll('.coin.selected.' + this.dataset.group).length == 0) {
jaipur.selectedCointType = false;
for (var i = 0; i < groups.length; i++) {
groups[i].classList.remove('inactive');
}
jaipur.hideAcceptButton();
}
} else {
//ustawienie selected na elemencie z kliniętej grupy
var coinsFromRow = document.querySelectorAll('.coin.' + this.dataset.group + ':not(.selected)');
[].slice.call(coinsFromRow).pop().classList.add('selected');
jaipur.showAcceptButton();
}
}
};
this.showScoreBoard = function () {
document.querySelector('.scoreTable').classList.add('visible');
};
this.showScore = function () {
document.querySelector('.player1_score').innerText = jaipur.player1.calculateScore();
document.querySelector('.player2_score').innerText = jaipur.player2.calculateScore();
document.querySelector('.score_section').classList.add('show');
};
this.initializeAcceptButton = function () {
document.querySelector('.accept').addEventListener('click', this.clickAcceptButton)
};
this.clickAcceptButton = function () {
var coins = document.querySelectorAll('.coin.selected');
for (var i = 0; i < coins.length; i++) {
var group = coins[i].dataset.group;
jaipur.board.goods[group].pop();
// jaipur.activePlayer.coins.push({ value: parseInt(coins[i].innerText), type: 'goods', group: group});
jaipur.activePlayer.coins.push(parseInt(coins[i].innerText));
coins[i].remove();
}
var bonus = false;
if (coins.length == 3) {
var bonusGroup = 'three';
bonus = jaipur.board.bonus.three.pop()
} else if (coins.length == 4) {
var bonusGroup = 'four';
bonus = jaipur.board.bonus.four.pop()
} else if (coins.length >= 5) {
var bonusGroup = 'five';
bonus = jaipur.board.bonus.five.pop()
}
if (!!bonus) {
// { value: parseInt(coins[i].innerText), type: 'goods', group: group}
// jaipur.activePlayer.bonus.push({ value: parseInt(coins[i].innerText), type: 'goods', group: group});
jaipur.activePlayer.bonus.push(bonus);
}
//
var groups = document.querySelectorAll('.group');
jaipur.selectedCointType = false;
for (var i = 0; i < groups.length; i++) {
groups[i].classList.remove('inactive');
}
jaipur.hideAcceptButton();
jaipur.setActivePlayer(false);
if (jaipur.isRoundOver()) {
jaipur.showScoreBoard();
}
};
this.initializeCamels = function () {
document.querySelector('.player1_camel').addEventListener('click', function () {
jaipur.camelClick(1);
});
document.querySelector('.player2_camel').addEventListener('click', function () {
jaipur.camelClick(2);
});
document.querySelector('.nobody').addEventListener('click', function () {
jaipur.camelClick(0);
});
};
this.initializeCoins = function () {
var coins = document.querySelectorAll('.coin');
for (var i = 0; i < coins.length; i++) {
coins[i].addEventListener('click', jaipur.coinClick);
}
}
}

223
maharaja.svg Normal file
View File

@@ -0,0 +1,223 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="59.492878mm"
height="124.09363mm"
viewBox="0 0 59.492878 124.09363"
version="1.1"
id="svg8"
inkscape:version="0.92.1 r15371"
sodipodi:docname="maharaja.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="-110.29835"
inkscape:cy="156.28638"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1600"
inkscape:window-height="837"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:measure-start="0,0"
inkscape:measure-end="0,0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-59.95156,-74.377042)">
<path
style="fill:#decd87;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 66.145833,139.38392 0.966589,4.44104 c 5.991523,-5.75487 31.639437,-19.45576 46.844578,0.002 l 0.94494,-4.63022 c -23.346378,-13.7192 -33.272692,-6.48338 -48.756107,0.18718 z"
id="path4554"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#b3a6e5;fill-opacity:1;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 66.145833,139.38392 c -3.485006,-8.20796 -5.291666,-30.42708 -5.291666,-30.42708 3.664211,-48.762706 58.302533,-42.888896 57.074403,-0.37798 l -3.02381,30.61607 c -26.533132,-15.07574 -35.856243,-4.17532 -48.758927,0.18899 z"
id="path4487"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#6444da;fill-opacity:0.63809527;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 116.52951,122.20573 c -12.22135,-3.29634 -19.405179,0.71127 -27.328307,9.35443 6.389101,-12.55506 11.018707,-19.09654 28.727367,-22.9813 z"
id="path4489"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:#7c67d6;fill-opacity:0.63809527;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 114.28945,90.306161 C 92.089302,104.42558 94.935735,114.92517 89.201203,131.56016 90.381629,105.29367 91.352417,86.024717 102.3325,77.642589 c 5.39552,2.912023 9.20481,7.296981 11.95695,12.663572 z"
id="path4491"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
inkscape:connector-curvature="0"
id="path4493"
d="m 62.422952,122.25298 c 9.81221,-4.72304 17.862788,2.59669 26.778251,9.30718 -9.076706,-10.76231 -12.343863,-21.89556 -28.347036,-22.60332 0.411488,4.45062 0.791682,8.90646 1.568785,13.29614 z"
style="fill:#735ace;fill-opacity:0.63809527;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="cccc" />
<path
inkscape:connector-curvature="0"
id="path4495"
d="M 65.648076,90.768151 C 80.80713,96.582863 81.652951,114.32924 89.201203,131.56016 85.779742,109.83386 88.693206,88.865726 76.940216,78.173074 70.903752,81.668066 67.984688,86.127967 65.648076,90.768151 Z"
style="fill:#8a76d6;fill-opacity:0.63809527;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="cccc" />
<path
sodipodi:type="star"
style="opacity:1;fill:#cf2984;fill-opacity:1;fill-rule:nonzero;stroke:#d32c4f;stroke-width:0.56036741;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.96464646"
id="path4501"
sodipodi:sides="8"
sodipodi:cx="85.61161"
sodipodi:cy="128.75336"
sodipodi:r1="11.137993"
sodipodi:r2="10.290164"
sodipodi:arg1="1.2107911"
sodipodi:arg2="1.6034902"
inkscape:flatsided="true"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 89.535293,139.17735 -8.520095,-0.27866 -5.827579,-6.22165 0.278654,-8.5201 6.221655,-5.82757 8.520095,0.27865 5.827579,6.22165 -0.278654,8.5201 z"
inkscape:transform-center-y="-4.4351609e-006"
transform="matrix(0.38115489,-0.02237902,0.0297022,0.58499447,52.863812,52.258355)" />
<path
style="fill:#f3c9b1;fill-opacity:1;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 64.917409,156.01488 c -0.770406,-2.32186 -2.253047,-5.40125 1.511905,-11.1503 8.00735,-12.994 39.942196,-15.92133 47.530506,-1.03943 0.76172,3.14831 1.59293,7.54572 0.47247,12.18973"
id="path4545"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<ellipse
style="opacity:1;fill:#e8f7ff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.26499999;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.96464646"
id="path4505"
cx="85.292389"
cy="139.51144"
rx="4.309721"
ry="3.9422255" />
<ellipse
ry="4.3431296"
rx="4.309721"
cy="139.04372"
cx="95.582268"
id="ellipse4524"
style="opacity:1;fill:#e3f6ff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.26499999;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.96464646" />
<ellipse
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.26500002;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.96464646"
id="path4526"
cx="85.270966"
cy="140.12276"
rx="0.21243775"
ry="0.21041118" />
<ellipse
ry="0.21041118"
rx="0.21243775"
cy="139.63545"
cx="95.692986"
id="ellipse4537"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.26500002;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.96464646" />
<path
id="path4549"
style="fill:#f0f0f0;fill-opacity:1;stroke:#0c0c0c;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 89.697994,198.34821 c 6.11155,-2.49771 6.985923,-7.92595 9.387872,-9.73288 -0.133674,1.2929 -0.462755,2.93635 0.08458,3.77976 9.392914,1.24712 13.645744,-7.13427 16.661344,-14.45759 -0.0689,3.00028 0.80234,3.6369 1.60694,4.44122 2.25336,-9.05945 3.66594,-18.04845 -2.96014,-26.36384 m -24.780597,42.33333 c -6.11155,-2.49771 -6.985924,-7.92595 -9.387868,-9.73288 -0.03801,1.18665 0.387146,2.13417 -0.08457,3.77976 -9.392924,1.24712 -13.645746,-7.13427 -16.66135,-14.45759 0.06895,3.00028 -0.802346,3.6369 -1.606933,4.44122 -2.253368,-9.05945 -3.665944,-18.04845 2.960138,-26.36384 4.90648,-4.44378 14.393941,-6.05813 25.31939,-6.78431 8.452452,1.64787 18.98272,-0.13264 24.24179,6.78431"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccc" />
<path
sodipodi:nodetypes="ccccccccccccccccc"
inkscape:connector-curvature="0"
d="m 89.647837,192.8536 c 6.11155,-2.49771 6.985923,-7.92595 9.387872,-9.73288 -0.133674,1.2929 -0.462755,2.93635 0.08458,3.77976 9.392921,1.24712 13.645751,-7.13427 16.661351,-14.45759 -0.0689,3.00028 0.80234,3.6369 1.60694,4.44122 0.98383,-3.24634 1.71708,-5.78409 1.71708,-5.78409 M 89.647836,192.8536 c -6.11155,-2.49771 -6.985924,-7.92595 -9.387868,-9.73288 -0.03801,1.18665 0.387146,2.13417 -0.08457,3.77976 -9.392924,1.24712 -13.645746,-7.13427 -16.66135,-14.45759 0.06895,3.00028 -0.802346,3.6369 -1.606933,4.44122 -1.618603,-3.64724 -1.694627,-5.77462 -1.694627,-5.77462 -0.03578,-1.91391 0.126611,-3.67919 0.340764,-5.40565 0.825855,-4.63251 2.792955,-6.71916 4.364158,-9.68896 6.175336,-4.82488 15.542589,-6.06119 25.31939,-6.78431 9.49064,0.96555 19.99847,1.00638 24.19549,6.78431 2.42932,3.87954 4.94119,7.65027 4.67337,15.08514"
style="fill:#fcfcfc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4582" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 67.346578,161.35125 c 5.252203,3.72657 11.434099,4.92969 17.926192,5.29085 l 9.921875,0.0945 c 7.668205,-0.65482 14.117555,-1.93491 19.350315,-5.53994"
id="path4552"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="fill:#f3c9b1;fill-opacity:1;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 114.57641,146.2648 c 2.62662,-6.88784 8.12993,6.69316 0.28348,6.99255"
id="path4558"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4560"
d="m 64.800436,147.84757 c -2.62662,-6.88784 -8.53153,5.77184 -0.68508,6.07123"
style="fill:#f3c9b1;fill-opacity:1;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4564"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 116.46461,150.88047 c -0.75416,-1.65498 -0.16215,-2.56137 0.21261,-3.2128 m -1.13393,3.35453 c 1.09805,0.0656 2.05154,-0.20238 2.33873,-2.008"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4564-1"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 62.516407,151.80041 c 0.75416,-1.65498 0.16215,-2.56137 -0.21261,-3.2128 m 1.13393,3.35453 c -1.09805,0.0656 -2.05154,-0.20238 -2.33873,-2.008" />
<ellipse
style="opacity:1;fill:#deaa87;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.26499999;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.96464646"
id="path4543"
cx="90.478043"
cy="151.29018"
rx="12.236979"
ry="8.1264877" />
<ellipse
style="opacity:1;fill:#f3c9b1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26499999;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.96464646"
id="path4608"
cx="90.520508"
cy="150.79645"
rx="11.793267"
ry="7.182868" />
<ellipse
ry="3.5907733"
rx="8.3154755"
cy="147.41591"
cx="90.714272"
id="ellipse4592"
style="opacity:1;fill:#f8dfd0;fill-opacity:1;fill-rule:nonzero;stroke:#f3c9b1;stroke-width:0.26499996;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="fill:#9b9b9b;fill-opacity:1;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 91.745613,133.74038 c 3.277807,-0.0288 6.283998,-1.0082 10.016367,0.554 0.17577,-1.36002 -0.38245,-2.59772 -0.94494,-3.8347 -3.366721,0.0648 -6.19036,1.75891 -9.071427,3.2807 z"
id="path4604"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
inkscape:connector-curvature="0"
id="path4606"
d="m 88.797517,134.71392 c -4.018411,-1.17976 -7.858295,-2.07387 -10.016368,-0.27709 0.01819,-1.27493 0.120109,-2.54341 0.94494,-3.75629 3.380907,0.45172 6.168711,2.38619 9.071428,4.03338 z"
style="fill:#9d9d9d;fill-opacity:1;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="cccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB