Added possible support to mobile

This commit is contained in:
2024-10-26 21:52:56 +02:00
parent 398c900fa0
commit 339f179662
2 changed files with 42 additions and 12 deletions

41
main.js
View File

@@ -75,6 +75,10 @@ const emptyDeck = {
let currentDeck = deepCopyDeck(Deck); // Initialize with a deep copy let currentDeck = deepCopyDeck(Deck); // Initialize with a deep copy
document.body.onload = () => {
startCards();
};
// Function to deeply copy the deck // Function to deeply copy the deck
function deepCopyDeck(deck){ function deepCopyDeck(deck){
return { return {
@@ -214,7 +218,7 @@ function dealerCardGet(num){
} }
function isDeckEmpty() { function isDeckEmpty() {
return ['Clubs', 'Diamonds', 'Hearts', 'Spades'].every(suit => currentDeck[suit].length === 0); return ['Clubs', 'Diamonds', 'Hearts', 'Spades'].every(idx => currentDeck[idx].length === 0);
} }
function addCard(){ function addCard(){
@@ -224,15 +228,16 @@ function addCard(){
cardAvail(cardsleft()); cardAvail(cardsleft());
if(score > 21){ if(score > 21){
resultText('lost'); resultText('lost');
stand(true);
} }
} }
function addCardDealer(){ function addCardDealer(option){
if(isDeckEmpty()){ if(isDeckEmpty()){
reshuffle(); reshuffle();
} }
dealerCardGet(cardsleft()); dealerCardGet(cardsleft());
if(dealerScore<18){ if(dealerScore<18 && !(option)){
addCardDealer(); addCardDealer();
} }
} }
@@ -242,16 +247,16 @@ async function resultText(res){
text.classList.add('result'); text.classList.add('result');
if(res==='won'){ if(res==='won'){
text.classList.add('won'); text.classList.add('won');
text.innerText = "You've won!"; text.innerText = "Victory!";
}else if(res==='lost'){ }else if(res==='lost'){
text.classList.add('lost'); text.classList.add('lost');
text.innerText = "You've lost!"; text.innerText = "You lost!";
}else if(res==='bj'){ }else if(res==='bj'){
text.classList.add('blackjack'); text.classList.add('blackjack');
text.innerText = "BLACKJACK"; text.innerText = "BLACKJACK";
}else if(res==='draw'){ }else if(res==='draw'){
text.classList.add('draw'); text.classList.add('draw');
text.innerHTML = "It's a Draw!" text.innerHTML = "Push";
} }
document.body.append(text); document.body.append(text);
setTimeout(() => { setTimeout(() => {
@@ -261,24 +266,33 @@ async function resultText(res){
document.querySelector('#reset').style.display = 'flex'; document.querySelector('#reset').style.display = 'flex';
} }
function dealerHit(){ function dealerHit(option){
addCardDealer(); addCardDealer(option);
} }
function hit(){ function hit(){
addCard(); addCard();
if(score === 21){ if(score === 21 && playerCards.length === 2){
resultText('bj'); resultText('bj');
//- Add 1.5 money //- Add 1.5 money
} }
} }
function stand(){ function startCards(){
dealerHit(); hit();
dealerCardGet(cardsleft());
hit();
}
function stand(option){
if(score === 0) return;
dealerHit(option);
if(score>21 || (score < dealerScore && dealerScore<=21)){ if(score>21 || (score < dealerScore && dealerScore<=21)){
resultText('lost'); resultText('lost');
document.querySelector('.cards2').classList.add('gray');
}else if(dealerScore>21 || (score > dealerScore && score<=21)){ }else if(dealerScore>21 || (score > dealerScore && score<=21)){
resultText('won'); resultText('won');
document.querySelector('.cards1').classList.add('gray');
}else{ }else{
resultText('draw'); resultText('draw');
} }
@@ -295,4 +309,9 @@ function reset(){
document.querySelector('#dealerScore').innerHTML = '???'; document.querySelector('#dealerScore').innerHTML = '???';
document.querySelector('#buttons').style.display = 'flex'; document.querySelector('#buttons').style.display = 'flex';
document.querySelector('#reset').style.display = 'none'; document.querySelector('#reset').style.display = 'none';
document.querySelector('.cards1').classList.remove('gray');
document.querySelector('.cards2').classList.remove('gray');
startCards();
} }

View File

@@ -22,7 +22,7 @@ img.card{ /* 726 : 500 */
object-fit: contain; object-fit: contain;
height: 200px; height: 200px;
width: 135px; width: 135px;
margin: 0 2rem 0 0; margin: 0 -3rem 0 0;
cursor: context-menu; cursor: context-menu;
} }
img.card:last-child{ img.card:last-child{
@@ -43,6 +43,7 @@ h2{
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
filter: drop-shadow(1.5px 1.5px 6px #000); filter: drop-shadow(1.5px 1.5px 6px #000);
text-transform: uppercase; text-transform: uppercase;
text-align: center;
font-size: 100px; font-size: 100px;
animation: pop 0.5s ease-in-out; animation: pop 0.5s ease-in-out;
} }
@@ -91,4 +92,14 @@ button#resetBTN{
} }
#reset{ #reset{
display: none; display: none;
}
.gray{
filter: grayscale(1) opacity(.25);
}
@media screen and (max-width: 500px){
img.card{
margin: 0 -6.5rem 0 0;
}
} }