mirror of
https://github.com/MrEidam/Black-Jack.git
synced 2025-12-29 17:06:11 +00:00
Added possible support to mobile
This commit is contained in:
41
main.js
41
main.js
@@ -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();
|
||||||
}
|
}
|
||||||
13
style.css
13
style.css
@@ -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;
|
||||||
}
|
}
|
||||||
@@ -92,3 +93,13 @@ 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user