最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)21點小游戲的示例代碼

 更新時間:2022年09月15日 11:55:24   作者:Pushkin.  
1931年,當美國內(nèi)華達州宣布賭博為合法活動時,21點游戲第一次公開出現(xiàn)在內(nèi)華達州的賭場俱樂部,15年內(nèi),它取代擲骰子游戲,而一舉成為非常流行的賭場莊家參與的賭博游戲。本文將用Python實現(xiàn)這一經(jīng)典游戲,感興趣的可以了解一下

游戲玩法

游戲玩法: 該游戲由 2 到 6 個人玩,使用除大小王之外的 52 張牌,

游戲者的目標是使手中的牌的點數(shù)之和不超過 21 點且盡量大。

有著悠久的歷史。黑杰克簡稱為21點,1700年左右法國賭場就有這種21點的紙牌游戲。

1931年,當美國內(nèi)華達州宣布賭博為合法活動時,21點游戲第一次公開出現(xiàn)在內(nèi)華達州的賭場俱樂部,

15年內(nèi),它取代擲骰子游戲,而一舉成為非常流行的賭場莊家參與的賭博游戲。

代碼 - v1

import random

deck = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11] * 4

random.shuffle(deck)

print(
    "                       **********************************************************                                    ")
print(
    "                                   Welcome to the game Casino - BLACK JACK (21點)!                                         ")
print(
    "                       **********************************************************                                    ")

d_cards = []  # Initialising dealer's cards
p_cards = []  # Initialising player's cards

while len(d_cards) != 2:
    random.shuffle(deck)
    d_cards.append(deck.pop())
    if len(d_cards) == 2:
        print('荷官有 X ', d_cards[1])

# Displaying the Player's cards
while len(p_cards) != 2:
    random.shuffle(deck)
    p_cards.append(deck.pop())
    if len(p_cards) == 2:
        print("你一共 ", str(sum(p_cards)) + "點 :",p_cards)


if sum(p_cards) > 21:
    print("你的點數(shù):",p_cards)
    print("你輸了 !\n  **************荷官 Wins !!******************\n")
    exit()

if sum(d_cards) > 21:
    print("荷官的點數(shù):", d_cards)
    print("荷官輸了 !\n   ************** You are the Winner !!******************\n")
    exit()

if sum(d_cards) == 21:
    print("荷官的點數(shù):", d_cards)
    print("***********************荷官 is the Winner !!******************")
    exit()

if sum(d_cards) == 21 and sum(p_cards) == 21:
    print("*****************The match is tie 平手!!*************************")
    exit()


def dealer_choice():
    if sum(d_cards) < 17:
        while sum(d_cards) < 17:
            random.shuffle(deck)
            d_cards.append(deck.pop())

    print("你一共 " + str(sum(p_cards)) + "點 :", p_cards)
    print("荷官一共 " + str(sum(d_cards)) + "點 :", d_cards)

    if sum(p_cards) == sum(d_cards):
        print("***************The match is tie 平手!!****************")
        exit()

    if sum(d_cards) == 21:
        if sum(p_cards) < 21:
            print("***********************Dealer is the Winner !!******************")
        elif sum(p_cards) == 21:
            print("********************There is tie !!**************************")
        else:
            print("***********************Dealer is the Winner !!******************")

    elif sum(d_cards) < 21:
        if sum(p_cards) < 21 and sum(p_cards) < sum(d_cards):
            print("***********************Dealer is the Winner !!******************")
        if sum(p_cards) == 21:
            print("**********************Player is winner !!**********************")
        if sum(p_cards) < 21 and sum(p_cards) > sum(d_cards):
            print("**********************Player is winner !!**********************")

    else:
        if sum(p_cards) < 21:
            print("**********************Player is winner !!**********************")
        elif sum(p_cards) == 21:
            print("**********************Player is winner !!**********************")
        else:
            print("***********************Dealer is the Winner !!******************")


while sum(p_cards) < 21:

    k = input('Want to hit or stay?\n Press 1 for hit and 0 for stay ')
    if k == 1:
        random.shuffle(deck)
        p_cards.append(deck.pop())
        print('你的點數(shù):' + str(sum(p_cards)), p_cards)
        if sum(p_cards) > 21:
            print('*************你輸了 !*************\n Dealer Wins !!')
        if sum(p_cards) == 21:
            print('*******************你贏了 !!*****************************')


    else:
        dealer_choice()
        break

測試

case-1

                       **********************************************************                                    
                                   Welcome to the game Casino - BLACK JACK (21點)!                                         
                       **********************************************************                                    
荷官有 X  3
你一共  9點 : [6, 3]
Want to hit or stay?
 Press 1 for hit and 0 for stay 1
你一共 9點 : [6, 3]
荷官一共 18點 : [5, 3, 10]
***********************Dealer is the Winner !!******************

case-2

                       **********************************************************                                    
                                   Welcome to the game Casino - BLACK JACK (21點)!                                         
                       **********************************************************                                    
荷官有 X  1
你一共  18點 : [8, 10]
Want to hit or stay?
 Press 1 for hit and 0 for stay 0
你一共 18點 : [8, 10]
荷官一共 17點 : [5, 1, 9, 2]
**********************Player is winner !!**********************

代碼 - v2

import random

suits = ('Hearts', 'Diamonds', 'Spades', 'Clubs')
ranks = ('Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Jack', 'Queen', 'King', 'Ace')
values = {'Two': 2, 'Three': 3, 'Four': 4, 'Five': 5, 'Six': 6, 'Seven': 7, 'Eight': 8,
          'Nine': 9, 'Ten': 10, 'Jack': 10, 'Queen': 10, 'King': 10, 'Ace': 11}

playing = True


class Card:

    def __init__(self, suit, rank):
        self.suit = suit
        self.rank = rank

    def __str__(self):
        return self.rank + ' of ' + self.suit


class Deck:

    def __init__(self):
        self.deck = []
        for suit in suits:
            for rank in ranks:
                self.deck.append(Card(suit, rank))

    def __str__(self):
        deck_comp = ''
        for card in self.deck:
            deck_comp += '\n ' + card.__str__()

    def shuffle(self):
        random.shuffle(self.deck)

    def deal(self):
        single_card = self.deck.pop()
        return single_card


class Hand:

    def __init__(self):
        self.cards = []
        self.value = 0
        self.aces = 0  # to keep track of aces

    def add_card(self, card):
        self.cards.append(card)
        self.value += values[card.rank]
        if card.rank == 'Ace':
            self.aces += 1

    def adjust_for_ace(self):
        while self.value > 21 and self.aces:
            self.value -= 10
            self.aces -= 1


class Chips:

    def __init__(self):
        self.total = 100
        self.bet = 0

    def win_bet(self):
        self.total += self.bet

    def lose_bet(self):
        self.total -= self.bet


def take_bet(chips):
    while True:
        try:
            chips.bet = int(input('How many chips would you like to bet? '))
        except ValueError:
            print('Your bet must be an integer! Try again.')
        else:
            if chips.bet > chips.total or chips.bet <= 0:
                print(
                    "Your bet cannot exceed your balance and you have to enter a positive bet! Your current balance is: ",
                    chips.total)
            else:
                break


def hit(deck, hand):
    hand.add_card(deck.deal())
    hand.adjust_for_ace()


def hit_or_stand(deck, hand):
    global playing

    while True:
        x = input("Would you like to Hit or Stand? Enter '1' or '0' ")

        if x.lower() == '1':
            hit(deck, hand)

        elif x.lower() == '0':
            print("You chose to stand. Dealer will hit.")
            playing = False

        else:
            print("Wrong input, please try again.")
            continue
        break


def show_some(player, dealer):
    print("\nDealer's Hand:")
    print(" { hidden card }")
    print('', dealer.cards[1])
    print("\nYour Hand:", *player.cards, sep='\n ')


def show_all(player, dealer):
    print("\nDealer's Hand:", *dealer.cards, sep='\n ')
    print("Dealer's Hand =", dealer.value)
    print("\nYour Hand:", *player.cards, sep='\n ')
    print("Your Hand =", player.value)


def player_busts(player, dealer, chips):
    print("You are BUSTED !")
    chips.lose_bet()


def player_wins(player, dealer, chips):
    print("You are the winner!")
    chips.win_bet()


def dealer_busts(player, dealer, chips):
    print("Dealer has BUSTED !")
    chips.win_bet()


def dealer_wins(player, dealer, chips):
    print("Dealer is the winner!")
    chips.lose_bet()


def push(player, dealer):
    print("The match is tie !")


# GAMEPLAY
player_chips = Chips()

while True:

    print("\t              **********************************************************")
    print(
        "\t                       Welcome to the game Casino - BLACK JACK !                                                     ")
    print("\t              **********************************************************")
    print("\t                                   ***************")
    print("\t                                   * A           *")
    print("\t                                   *             *")
    print("\t                                   *      *      *")
    print("\t                                   *     ***     *")
    print("\t                                   *    *****    *")
    print("\t                                   *     ***     *")
    print("\t                                   *      *      *")
    print("\t                                   *             *")
    print("\t                                   *             *")
    print("\t                                   ***************")

    print('\nRULES: Get as close to 21 as you can but if you get more than 21 you will lose!\n  Aces count as 1 or 11.')

    deck = Deck()
    deck.shuffle()

    player_hand = Hand()
    player_hand.add_card(deck.deal())
    player_hand.add_card(deck.deal())

    dealer_hand = Hand()
    dealer_hand.add_card(deck.deal())
    dealer_hand.add_card(deck.deal())


    take_bet(player_chips)

    show_some(player_hand, dealer_hand)

    while playing:

        hit_or_stand(deck, player_hand)
        show_some(player_hand, dealer_hand)

        if player_hand.value > 21:
            player_busts(player_hand, dealer_hand, player_chips)
            break

    if player_hand.value <= 21:

        while dealer_hand.value < 17:
            hit(deck, dealer_hand)

        show_all(player_hand, dealer_hand)

        if dealer_hand.value > 21:
            dealer_busts(player_hand, dealer_hand, player_chips)

        elif dealer_hand.value > player_hand.value:
            dealer_wins(player_hand, dealer_hand, player_chips)

        elif dealer_hand.value < player_hand.value:
            player_wins(player_hand, dealer_hand, player_chips)

        else:
            push(player_hand, dealer_hand)

    print("\nYour current balance stands at", player_chips.total)

    if player_chips.total > 0:
        new_game = input("Would you like to play another hand? Enter '1' or '0' ")
        if new_game.lower() == '1':
            playing = True
            continue
        else:
            print(
                "Thanks for playing!\n \t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n \t      Congratulations! You won {} coins!\n\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n ".format(
                    player_chips.total))
            break
    else:
        print(
            "Oops! You have bet all your chips and we are sorry you can't play more.\nThanks for playing! Do come again to Casino BLACK JACK!")
        break

測試

	              **********************************************************
	                       Welcome to the game Casino - BLACK JACK !                                                     
	              **********************************************************
	                                   ***************
	                                   * A           *
	                                   *             *
	                                   *      *      *
	                                   *     ***     *
	                                   *    *****    *
	                                   *     ***     *
	                                   *      *      *
	                                   *             *
	                                   *             *
	                                   ***************

RULES: Get as close to 21 as you can but if you get more than 21 you will lose!
  Aces count as 1 or 11.
How many chips would you like to bet? 1

Dealer's Hand:
 { hidden card }
 Ten of Hearts

Your Hand:
 Six of Clubs
 Ten of Diamonds
Would you like to Hit or Stand? Enter '1' or '0' 0
You chose to stand. Dealer will hit.

Dealer's Hand:
 { hidden card }
 Ten of Hearts

Your Hand:
 Six of Clubs
 Ten of Diamonds

Dealer's Hand:
 Four of Hearts
 Ten of Hearts
 Two of Clubs
 Six of Hearts
Dealer's Hand = 22

Your Hand:
 Six of Clubs
 Ten of Diamonds
Your Hand = 16
Dealer has BUSTED !

Your current balance stands at 101
Would you like to play another hand? Enter '1' or '0' 0
Thanks for playing!
 	$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 	      Congratulations! You won 101 coins!
	$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

到此這篇關(guān)于Python實現(xiàn)21點小游戲的示例代碼的文章就介紹到這了,更多相關(guān)Python 21點游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python環(huán)境功能強大的pip-audit安全漏洞掃描工具

    python環(huán)境功能強大的pip-audit安全漏洞掃描工具

    這篇文章主要為大家介紹了python環(huán)境中功能強大的pip-audit安全漏洞掃描工具的功能介紹及安裝使用說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02
  • python3爬蟲中引用Queue的實例講解

    python3爬蟲中引用Queue的實例講解

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python3爬蟲中引用Queue的實例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-11-11
  • Python發(fā)送http請求解析返回json的實例

    Python發(fā)送http請求解析返回json的實例

    下面小編就為大家分享一篇Python發(fā)送http請求解析返回json的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • pycharm 取消默認的右擊運行unittest的方法

    pycharm 取消默認的右擊運行unittest的方法

    今天小編就為大家分享一篇pycharm 取消默認的右擊運行unittest的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python通過psd-tools解析PSD文件的實現(xiàn)

    Python通過psd-tools解析PSD文件的實現(xiàn)

    本文主要介紹了Python通過psd-tools解析PSD文件的實現(xiàn),主要包括如何獲取PSD文件的基本信息、遍歷圖層、提取圖層詳細信息、保存和創(chuàng)建PSD文件,感興趣的可以了解一下
    2023-12-12
  • ITK 實現(xiàn)多張圖像轉(zhuǎn)成單個nii.gz或mha文件案例

    ITK 實現(xiàn)多張圖像轉(zhuǎn)成單個nii.gz或mha文件案例

    這篇文章主要介紹了ITK 實現(xiàn)多張圖像轉(zhuǎn)成單個nii.gz或mha文件案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Pandas.DataFrame時間序列數(shù)據(jù)處理的實現(xiàn)

    Pandas.DataFrame時間序列數(shù)據(jù)處理的實現(xiàn)

    本文主要介紹了Pandas.DataFrame時間序列數(shù)據(jù)處理的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • pycharm安裝包失敗的解決方法

    pycharm安裝包失敗的解決方法

    PyCharm是一款由JetBrains開發(fā)的Python集成開發(fā)環(huán)境(IDE),它集成了代碼編輯器、調(diào)試器、版本控制工具和測試工具等功能,下面這篇文章主要給大家介紹了關(guān)于pycharm安裝包失敗的解決方法,需要的朋友可以參考下
    2023-05-05
  • python celery beat實現(xiàn)定時任務(wù)的示例代碼

    python celery beat實現(xiàn)定時任務(wù)的示例代碼

    在日常工作中,我們常常會用到需要周期性執(zhí)行的任務(wù),本文主要介紹了python celery beat實現(xiàn)定時任務(wù)的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Python之日期與時間處理模塊(date和datetime)

    Python之日期與時間處理模塊(date和datetime)

    這篇文章主要介紹了Python之日期與時間處理模塊(date和datetime),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02

最新評論

珠海市| 阳曲县| 吴江市| 盘山县| 崇州市| 滨州市| 息烽县| 黔江区| 张家界市| 电白县| 镇赉县| 台北县| 四川省| 宜君县| 济南市| 会泽县| 新河县| 潍坊市| 海阳市| 通州市| 东丰县| 汉寿县| 普洱| 成武县| 安庆市| 阳江市| 竹山县| 呼图壁县| 贵州省| 化州市| 邹平县| 临漳县| 高邮市| 龙井市| 延川县| 万荣县| 临沧市| 海安县| 搜索| 伊宁县| 白河县|