{"id":134,"date":"2026-04-10T14:13:21","date_gmt":"2026-04-10T14:13:21","guid":{"rendered":"https:\/\/theroyalscode.com\/students\/l_rankins\/?p=134"},"modified":"2026-04-10T14:13:21","modified_gmt":"2026-04-10T14:13:21","slug":"correspondence-23-black-jack-maddness","status":"publish","type":"post","link":"https:\/\/theroyalscode.com\/students\/l_rankins\/2026\/04\/10\/correspondence-23-black-jack-maddness\/","title":{"rendered":"CORRESPONDENCE 23: BLACK JACK  MADDNESS"},"content":{"rendered":"\n<p><strong>Today I made Black Jack<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Card:\n\tdef __init__(self, s, r):\n\t\tself.suit = s\n\t\tself.rank = r\n\n\tdef __str__(self):\n\t\treturn f\"{self.rank}{self.suit}\"\n<\/code><\/pre>\n\n\n\n<p><strong>This is the code for the cards<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from player import Player \n\nclass Dealer(Player):\n\tdef printHand(self, round_num=0):\n\t\tif round_num == 1:\n\t\t\tprint(\"Dealer's Hand:\", self.hand&#91;1])\n\t\telse:\n\t\t\tprint(\"Dealer's Hand:\", *self.hand)<\/code><\/pre>\n\n\n\n<p><strong>This is the code for the Dealer<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from card import Card\nfrom random import shuffle\n\nclass Deck:\n\tranks = &#91;\"A\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"K\",\"Q\",\"J\"]\n\tsuits = &#91;\"\u2660\",\"\u2665\",\"\u2666\",\"\u2663\"]\n\n\tdef __init__(self):\n\t\tself.cards = &#91;]\n\n\t\tfor r in Deck.ranks:\n\t\t\tfor s in Deck.suits:\n\t\t\t\tself.cards.append(Card(s,r))\n\n\tdef shuffle(self):\n\t\tshuffle(self.cards)\n\n\tdef deal(self):\n\t\treturn self.cards.pop()<\/code><\/pre>\n\n\n\n<p><strong>This is the code for the Deck<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from deck import Deck \n\nclass Decks(Deck):\n\tdef __init__(self, numDecks):\n\t\tself.cards = &#91;]\n\n\t\tfor i in range(numDecks):\n\t\t\td = Deck()\n\n\t\t\tfor card in d.cards:\n\t\t\t\tself.cards.append(card)<\/code><\/pre>\n\n\n\n<p><strong>This is the code for multiple decks<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player:\n\tdef __init__(self):\n\t\tself.money = 1000\n\t\tself.hand = &#91;]\n\n\tdef getHand(self):\n\t\treturn self.hand\n\n\tdef recieveCard(self, card):\n\t\tself.hand.append(card)\n\n\tdef printHand(self):\n\t\tprint(\"Current Hand:\", *self.hand)\n\n\tdef clearHand(self):\n\t\tself.hand = &#91;]\n\n\tdef getMoney(self):\n\t\treturn self.money\n\n\tdef setMoney(self, newMoney):\n\t\tself.money = newMoney<\/code><\/pre>\n\n\n\n<p><strong>This is the code for the Player<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from deck import Deck \nfrom decks import Decks \nfrom player import Player \nfrom dealer import Dealer \nfrom time import sleep\n\nvalues = dict(zip(Deck.ranks, &#91;11, 2,3,4,5,6,7,8,9,10,10,10,10]))\n\ndef main():\n\tdeck = Decks(6)\n\tdeck.shuffle()\n\tplayer = Player()\n\tdealer = Dealer()<\/code><\/pre>\n\n\n\n<p><strong>This is the code that shuffles<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>print(f\"Welcome to BlackJack, you start off with ${player.money}\")\n\tprint()\n\n\twhile True:\n\t\tprint(f\"Current Money is: ${player.getMoney()}\")\n\t\tprint()\n\n\t\tbet = handle_bet(player)\n\t\tplayer.setMoney(player.getMoney() - bet)\n\n\t\tfor i in range(2):\n\t\t\tplayer.recieveCard(deck.deal())\n\t\t\tdealer.recieveCard(deck.deal())\n<\/code><\/pre>\n\n\n\n<p><strong>This is the code that gives cards<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>layer.printHand()\n\t\tdealer.printHand(1)\n\n\t\tplayer_hand_value = calculate_hand_value(player.getHand())\n\n\t\tif player_hand_value == 21:\n\t\t\thandle_blackjack(player, dealer, deck, bet)\n\n\t\t\tplayer.clearHand()\n\t\t\tdealer.clearHand()\n\n\t\t\tif handle_continual_play():\n\t\t\t\tcontinue\n\t\t\telse:\n\t\t\t\treturn\n\n\t\twhile player_hand_value &lt; 21:\n\t\t\tnext_move = input(\"(H)it or (S)tand: \")\n\n\t\t\tif next_move.lower() == \"s\":\n\t\t\t\tdealer_hand_value = handle_dealer(dealer.getHand(), dealer, deck)\n\n\t\t\t\tif dealer_hand_value == 21:\n\t\t\t\t\tsleep(0.5)\n\t\t\t\t\tprint(\"Black Jack, House Wins\")\n\n\t\t\t\t\tif player.getMoney() == 0:\n\t\t\t\t\t\tprint(\"Bankrupt! Better Luck Next Time\")\n\t\t\t\t\t\treturn\n<\/code><\/pre>\n\n\n\n<p><strong>This is the code that decides if you win or lose<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\t\t\t\telif dealer_hand_value > 21:\n\t\t\t\t\tsleep(0.5)\n\t\t\t\t\tprint(\"Dealer Bust, Player Wins!\")\n\t\t\t\t\tplayer.setMoney(player.getMoney() + (bet * 2))\n\n\t\t\t\telif dealer_hand_value &lt; player_hand_value:\n\t\t\t\t\tsleep(0.5)\n\t\t\t\t\tprint(\"Player Wins!\")\n\t\t\t\t\tplayer.setMoney(player.getMoney() + (bet * 2))\n\n\t\t\t\telif dealer_hand_value > player_hand_value:\n\t\t\t\t\tsleep(0.5)\n\t\t\t\t\tprint(\"House Wins\")\n\n\t\t\t\t\tif player.getMoney() == 0:\n\t\t\t\t\t\tprint(\"Bankrupt! Better Luck Next Time\")\n\t\t\t\t\t\treturn\n\n\t\t\t\telif dealer_hand_value == player_hand_value:\n\t\t\t\t\tsleep(0.5)\n\t\t\t\t\tprint(\"Push\")\n\t\t\t\t\tplayer.setMoney(player.getMoney() + bet)\n\n\n\t\t\t\tplayer.clearHand()\n\t\t\t\tdealer.clearHand()\n\n\t\t\t\tif handle_continual_play():\n\t\t\t\t\tbreak\n\t\t\t\telse:\n\t\t\t\t\treturn<\/code><\/pre>\n\n\n\n<p><strong>this is the code that gives the money<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if next_move.lower() == \"h\":\n\t\t\t\tplayer.recieveCard(deck.deal())\n\t\t\t\tplayer.printHand()\n\t\t\t\tplayer_hand_value = calculate_hand_value(player.getHand())\n\n\t\t\t\tprint(f\"Hand's Value: {player_hand_value}\")\n\n\t\t\t\tif player_hand_value == 21:\n\t\t\t\t\thandle_blackjack(player,dealer,deck,bet)\n\n\t\t\t\tif player_hand_value > 21:\n\t\t\t\t\tprint(\"Bust! House Wins\")\n\n\t\t\t\t\tif player.getMoney() == 0:\n\t\t\t\t\t\tprint(\"Bankrupt! Better Luck Next Time\")\n\t\t\t\t\t\treturn\n\n\t\t\t\tif player_hand_value >= 21:\n\t\t\t\t\tplayer.clearHand()\n\t\t\t\t\tdealer.clearHand()\n\n\t\t\t\t\tif handle_continual_play():\n\t\t\t\t\t\tbreak\n\t\t\t\t\telse:\n\t\t\t\t\t\treturn\n\n\ndef handle_bet(player):\n\twhile True:\n\t\tbet = int(input(\"Please Enter Amount You'd Like To Bet: $\"))\n\n\t\tif bet > player.getMoney():\n\t\t\tprint(\"Bet greater than current amount of money is not allowed\")\n\t\tif bet &lt;= 0:\n\t\t\tprint(\"Bet cannot be negative or zero\")\n\n\t\telse:\n\t\t\tprint()\n\t\t\treturn bet<\/code><\/pre>\n\n\n\n<p><strong>These are the rules<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ef calculate_hand_value(hand):\n\thand_value = 0\n\tnum_aces = 0\n\n\tfor card in hand:\n\t\tif card.rank == \"A\":\n\t\t\tnum_aces += 1\n\t\t\thand_value += 11\n\t\telse:\n\t\t\thand_value += values&#91;card.rank]\n\n\twhile hand_value > 21 and num_aces > 0:\n\t\thand_value -= 10\n\t\tnum_aces -= 1\n\n\treturn hand_value\n\ndef handle_blackjack(player, dealer, deck, bet):\n\tdealer_hand_value = handle_dealer(dealer.getHand(), dealer, deck)\n\n\tif dealer_hand_value == 21:\n\t\tsleep(0.5)\n\t\tprint(\"Push (Tie)\")\n\t\tplayer.setMoney(player.getMoney() + bet)\n\n\telse:\n\t\tsleep(0.5)\n\t\tprint(\"Black Jack!\")\n\t\tplayer.setMoney(player.getMoney() + (bet * 2))\n<\/code><\/pre>\n\n\n\n<p><strong>these are the winning or losing or drawing texts<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def handle_dealer(hand, dealer, deck):\n\tsleep(0.5)\n\tdealer.printHand()\n\thand_value = calculate_hand_value(hand)\n\n\twhile hand_value &lt; 17:\n\t\tdealer.recieveCard(deck.deal())\n\t\thand_value = calculate_hand_value(hand)\n\t\tsleep(0.5)\n\t\tdealer.printHand()\n\n\treturn hand_value\n\n\ndef handle_continual_play():\n\twhile True:\n\t\tkeep_playing = input(\"(Q)uit or (C)ontinue: \")\n\n\t\tif keep_playing.lower() != \"q\" and keep_playing.lower() != \"c\":\n\t\t\tprint(\"Please enter q or c\")\n\t\telse:\n\t\t\tif keep_playing.lower() == \"q\":\n\t\t\t\treturn False\n\t\t\tif keep_playing.lower() == \"c\":\n\t\t\t\treturn True\n\nmain()<\/code><\/pre>\n\n\n\n<p><strong>Theses are the controls<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I made Black Jack This is the code for the cards This is the code for the Dealer This [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-134","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/theroyalscode.com\/students\/l_rankins\/wp-json\/wp\/v2\/posts\/134","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/theroyalscode.com\/students\/l_rankins\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/theroyalscode.com\/students\/l_rankins\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/theroyalscode.com\/students\/l_rankins\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/theroyalscode.com\/students\/l_rankins\/wp-json\/wp\/v2\/comments?post=134"}],"version-history":[{"count":1,"href":"https:\/\/theroyalscode.com\/students\/l_rankins\/wp-json\/wp\/v2\/posts\/134\/revisions"}],"predecessor-version":[{"id":136,"href":"https:\/\/theroyalscode.com\/students\/l_rankins\/wp-json\/wp\/v2\/posts\/134\/revisions\/136"}],"wp:attachment":[{"href":"https:\/\/theroyalscode.com\/students\/l_rankins\/wp-json\/wp\/v2\/media?parent=134"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/theroyalscode.com\/students\/l_rankins\/wp-json\/wp\/v2\/categories?post=134"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/theroyalscode.com\/students\/l_rankins\/wp-json\/wp\/v2\/tags?post=134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}