let deck = [
'card_face1.png', 'card_face1.png', 'card_face1.png', 'card_face1.png', 'card_face1.png',
'card_face2.png', 'card_face2.png',
'card_face3.png', 'card_face3.png',
'card_face4.png', 'card_face4.png',
'card_face5.png', 'card_face5.png',
'card_face6.png',
'card_face7.png',
'card_face8.png'
];
let northHand = [];
let southHand = [];
let northDiscard = [];
let southDiscard = [];
let removedCards = [];
let currentPlayer = 'north';
let gameStarted = false;
function shuffleDeck() {
deck.sort(() => Math.random() - 0.5);
}
function drawCard(playerHand) {
let card = deck.shift();
playerHand.push(card);
}
function updateHand(playerHand, player) {
let handElement = document.querySelector(`.${player} .hand`);
handElement.innerHTML = '';
for (let card of playerHand) {
let li = document.createElement('li');
let img = document.createElement('img');
img.src = `../images/card/${card}`;
li.appendChild(img);
handElement.appendChild(li);
}
attachCardListeners(player, playerHand);
}
function updateDiscard(playerDiscard, player) {
let discardElement = document.querySelector(`.${player} .discard`);
discardElement.innerHTML = '';
for (let card of playerDiscard) {
let li = document.createElement('li');
let img = document.createElement('img');
img.src = `../images/card/${card}`;
li.appendChild(img);
discardElement.appendChild(li);
}
}
function removeCards() {
for (let i = 0; i < 3; i++) {
let card = deck.shift();
removedCards.push(card);
}
let cardsElement = document.querySelector('.removed .cards');
cardsElement.innerHTML = '';
for (let card of removedCards) {
let li = document.createElement('li');
let img = document.createElement('img');
img.src = `../images/card/card_face0.png`;
li.appendChild(img);
cardsElement.appendChild(li);
}
}
function startGame() {
shuffleDeck();
removeCards();
drawCard(northHand);
drawCard(southHand);
updateHand(northHand, 'north');
updateHand(southHand, 'south');
gameStarted = true;
}
function attachCardListeners(player, playerHand) {
let handElement = document.querySelector(`.${player} .hand`);
let cards = handElement.getElementsByTagName('li');
for (let i = 0; i < cards.length; i++) {
cards[i].addEventListener('dblclick', function() {
let card = playerHand[i];
playerHand.splice(i, 1);
if (player === 'north') {
northDiscard.push(card);
updateDiscard(northDiscard, 'north');
} else {
southDiscard.push(card);
updateDiscard(southDiscard, 'south');
}
updateHand(playerHand, player);
});
}
}
document.getElementById('drawButton').addEventListener('click', function() {
document.querySelector('.game_container').classList.remove('hide');
document.querySelector('.removed').classList.remove('hide');
if (!gameStarted) {
startGame();
} else if (deck.length > 0) {
if (currentPlayer === 'north' && northHand.length < 2) {
drawCard(northHand);
updateHand(northHand, 'north');
currentPlayer = 'south';
} else if (currentPlayer === 'south' && southHand.length < 2) {
drawCard(southHand);
updateHand(southHand, 'south');
currentPlayer = 'north';
} else {
alert('No more cards can be drawn, hand limit reached! Discard one card!!');
}
} else {
alert('No more cards in the deck!');
}
});