Guest User

Untitled

a guest
Dec 30th, 2024
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.25 KB | None | 0 0
  1. document.addEventListener("DOMContentLoaded", function () {
  2. var suits = ['♠', '♥', '♦', '♣'];
  3. var values = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'];
  4.  
  5. let deck = [];
  6. let playerHand = [];
  7. let dealerHand = [];
  8.  
  9. function createDeck(num) {
  10. deck = [];
  11. for (var i = 0; i < num; i++){
  12. for (let suit of suits) {
  13. for (let value of values) {
  14. deck.push({ suit, value });
  15. }
  16. }
  17. }
  18. }
  19.  
  20. function shuffleDeck() {
  21. for (let i = deck.length - 1; i > 0; i--) {
  22. const j = Math.floor(Math.random() * (i + 1));
  23. [deck[i], deck[j]] = [deck[j], deck[i]];
  24. }
  25. }
  26.  
  27. function dealCard() {
  28. return deck.pop();
  29. }
  30.  
  31. function calculateHandValue(hand) {
  32. let value = 0;
  33. let hasAce = false;
  34.  
  35. for (let card of hand) {
  36. if (card.value === 'A') {
  37. hasAce = true;
  38. }
  39. console.log(card.value + card.suit + " : " + getCardValue(card));
  40. value += getCardValue(card);
  41. }
  42.  
  43. if (hasAce && value + 10 <= 21) {
  44. value += 10;
  45. }
  46. console.log(value);
  47. return value;
  48. }
  49.  
  50. function getCardValue(card) {
  51. if (['J', 'Q', 'K'].includes(card.value)) {
  52. return 10;
  53. } else if (card.value === 'A') {
  54. return 1;
  55. } else {
  56. return parseInt(card.value);
  57. }
  58. }
  59.  
  60. function updateUI() {
  61. console.log('Dealer hand:', dealerHand);
  62. console.log('Player hand:', playerHand);
  63. document.getElementById('dealer-cards').innerHTML = dealerHand.map(card => `<div class="card">${card.value}${card.suit}</div>`).join('');
  64. document.getElementById('player-cards').innerHTML = playerHand.map(card => `<div class="card">${card.value}${card.suit}</div>`).join('');
  65.  
  66. document.getElementById('dealer-score').textContent = calculateHandValue(dealerHand);
  67. document.getElementById('player-score').textContent = calculateHandValue(playerHand);
  68. }
  69.  
  70. function startNewGame() {
  71. createDeck(6);
  72. shuffleDeck();
  73. playerHand = [dealCard(), dealCard()];
  74. dealerHand = [dealCard(), dealCard()];
  75. updateUI();
  76. document.getElementById('message').textContent = '';
  77. document.getElementById('hit-button').disabled = false;
  78. document.getElementById('stand-button').disabled = false;
  79. if (calculateHandValue(playerHand) == 21)
  80. endGame("You've won!");
  81. }
  82.  
  83. function playerHit() {
  84. playerHand.push(dealCard());
  85. console.log('Player hand after hit:', playerHand);
  86. console.log('Hand value:', calculateHandValue(playerHand));
  87. var val = calculateHandValue(playerHand);
  88. updateUI();
  89. if (val > 21) {
  90. endGame('You busted! Dealer wins');
  91. }
  92. }
  93.  
  94. function playerStand() {
  95. while (calculateHandValue(dealerHand) < 17) {
  96. dealerHand.push(dealCard());
  97. }
  98. updateUI();
  99.  
  100. const playerValue = calculateHandValue(playerHand);
  101. const dealerValue = calculateHandValue(dealerHand);
  102.  
  103. if (dealerValue > 21) {
  104. endGame('Dealer busted! You win!');
  105. } else if (playerValue > dealerValue) {
  106. endGame('You win!');
  107. } else if (playerValue < dealerValue) {
  108. endGame('Dealer wins.');
  109. } else {
  110. endGame('It\'s a tie!');
  111. }
  112. }
  113.  
  114. function endGame(message, code) {
  115. const data = new URLSearchParams();
  116. document.getElementById('message').textContent = message;
  117. document.getElementById('hit-button').disabled = true;
  118. document.getElementById('stand-button').disabled = true;
  119. data.append("code", code);
  120. fetch("blackjack.php", {
  121. method: "post",
  122. body: data
  123. })
  124. }
  125.  
  126. document.getElementById('new-game-button').addEventListener('click', startNewGame);
  127. document.getElementById('hit-button').addEventListener('click', playerHit);
  128. document.getElementById('stand-button').addEventListener('click', playerStand);
  129. });
Add Comment
Please, Sign In to add comment