我正在为python编写二十一点代码,我希望有人能告诉我如何制作它:
识别某人键入的内容,即"点击"或"站立"并做出相应的反应.
计算玩家的分数,以及它是一个ace和一个千斤顶,并自动获胜.
好的,这是我到目前为止所得到的.
"This imports the random object into Python, it allows it to generate random numbers." import random print("Hello and welcome to Sam's Black Jack!") input("Pressto begin.") card1name = 1 card2name = 1 card3name = 1 card4name = 1 card5name = 1 "This defines the values of the character cards." Ace = 1 Jack = 10 Queen = 10 King = 10 decision = 0 "This generates the cards that are in your hand and the dealer's hand to begin with. card1 = int(random.randrange(12) + 1) card2 = int(random.randrange(12) + 1) card3 = int(random.randrange(12) + 1) card4 = int(random.randrange(12) + 1) card5 = int(random.randrange(12) + 1) total1 = card1 + card2 "This makes the value of the Ace equal 11 if the total of your cards is under 21" if total1 <= 21: Ace = 11 "This defines what the cards are" if card1 == 11: card1 = 10 card1name = "Jack" if card1 == 12: card1 = 10 card1name = "Queen" if card1 == 13: card1 = 10 card1name = "King" if card1 == 1: card1 = Ace card1name = "Ace" elif card1: card1name = card1 if card2 == 11: card2 = 10 card2name = "Jack" if card2 == 12: card2 = 10 card2name = "Queen" if card2 == 13: card2 = 10 card2name = "King" if card2 == 1: card2 = Ace card2name = "Ace" elif card2: card2name = card2 if card3 == 11: card3 = 10 card3name = "Jack" if card3 == 12: card3 = 10 card3name = "Queen" if card3 == 13: card3 = 10 card3name= "King" if card3 == 1: card3 = Ace card3name = "Ace" elif card3: card3name = card3 if card4 == 11: card4 = 10 card4name = "Jack" if card4 == 12: card4 = 10 card4name = "Queen" if card4 == 13: card4 = 10 card4name = "King" if card4 == 1: card4 = Ace card4name = "Ace" elif card4: card4name = card4 if card5 == 11: card5 = 10 card5name = "Jack" if card5 == 12: card5 = 10 card5name = "Queen" if card5 == 13: card5 = 10 card5name = "King" if card5 == 1: card5 = Ace card5name = "Ace" elif card5: card5name = card5 "This creates the totals of your hand" total2 = card1 + card2 total3 = card1 + card2 + card3 print("You hand is ", card1name," and", card2name) print("The total of your hand is", total2) decision = input("Do you want to HIT or STAND?").lower() "This is the decision for Hit or Stand" if 'hit' or 'HIT' or 'Hit' in decision: decision = 1 print("You have selected HIT") print("Your hand is ", card1name,",",card2name," and", card3name) print("The total of your hand is", total3) if 'STAND' or 'stand' or 'Stand' in decision: print("You have selected STAND") "Dealer's Hand" dealer = card4 + card5 print() print("The dealer's hand is", card4name," and", card5name) if decision == 1 and dealer < total3: print("Congratulations, you beat the dealer!") if decision == 1 and dealer > total3: print("Too bad, the dealer beat you!")
好的,没关系,我修好了:D
我只是将命中和支架改为是或否
if total2 < 21: decision = input("Do you want to hit? (Yes or No)") "This is the decision for Hit or Stand" if decision == 'Yes': print("You have selected HIT") print("Your hand is ", card1name,",",card2name," and", card3name) print("The total of your hand is", total3) if decision == 'No': print("You have selected STAND")
SquareCog.. 14
这可以帮助您入门:
http://docs.python.org/library/random.html
http://docs.python.org/library/strings.html
http://docs.python.org/library/stdtypes.html
http://docs.python.org/reference/index.html
我看到你添加了一些代码; 非常好.
考虑一下需要存在的程序部分.您将需要一些"卡片"的表示 - 卡片具有重要的功能,例如它们的价值,它们的套装等.鉴于卡片,您应该能够分辨它的价值,无论是Jack还是Ace或者2的心.阅读Python中的"类"以开始使用它.
您还将获得一张牌 - 您的经销商目前持有的牌以及您的牌手当前持有的牌."手"是一组卡片,您(程序员)可以添加新卡片(当卡片发出时).您可能希望使用包含这些数组的"列表"或"数组"或"类"来执行此操作.一只手也有一个值,通常是卡值的总和,但是如你所知,Aces是特殊的(它们可以是1或11),所以你需要用一些"if语句"正确地处理这种情况.
你也会有一个甲板; 甲板是一个特殊的集合 - 它在启动时只有52张牌,而且没有一张牌重复(当然,你可以使用几个牌来玩,但这是你以后可以解决的一个复杂因素).你如何填充这样的牌组?你的程序将要从牌组中"处理" - 所以你需要一种方法来跟踪哪些牌已经发给玩家.
那是很多东西.尝试用简单的句子写下你的程序需要做的所有逻辑,而不用担心Python.这称为"伪代码".这不是一个真正的程序,它只是一个计划,你将要做什么 - 它对地图有用的方式很有用.如果你去的地方你去过100次,你不需要地图,但是如果你开车到某个城镇,你从来没去过,你要先计划你的路线,然后才能到达在方向盘后..
使用您的伪代码更新您的问题,以及您已经(或将要做出)将伪代码转换为Python的任何尝试.
这可以帮助您入门:
http://docs.python.org/library/random.html
http://docs.python.org/library/strings.html
http://docs.python.org/library/stdtypes.html
http://docs.python.org/reference/index.html
我看到你添加了一些代码; 非常好.
考虑一下需要存在的程序部分.您将需要一些"卡片"的表示 - 卡片具有重要的功能,例如它们的价值,它们的套装等.鉴于卡片,您应该能够分辨它的价值,无论是Jack还是Ace或者2的心.阅读Python中的"类"以开始使用它.
您还将获得一张牌 - 您的经销商目前持有的牌以及您的牌手当前持有的牌."手"是一组卡片,您(程序员)可以添加新卡片(当卡片发出时).您可能希望使用包含这些数组的"列表"或"数组"或"类"来执行此操作.一只手也有一个值,通常是卡值的总和,但是如你所知,Aces是特殊的(它们可以是1或11),所以你需要用一些"if语句"正确地处理这种情况.
你也会有一个甲板; 甲板是一个特殊的集合 - 它在启动时只有52张牌,而且没有一张牌重复(当然,你可以使用几个牌来玩,但这是你以后可以解决的一个复杂因素).你如何填充这样的牌组?你的程序将要从牌组中"处理" - 所以你需要一种方法来跟踪哪些牌已经发给玩家.
那是很多东西.尝试用简单的句子写下你的程序需要做的所有逻辑,而不用担心Python.这称为"伪代码".这不是一个真正的程序,它只是一个计划,你将要做什么 - 它对地图有用的方式很有用.如果你去的地方你去过100次,你不需要地图,但是如果你开车到某个城镇,你从来没去过,你要先计划你的路线,然后才能到达在方向盘后..
使用您的伪代码更新您的问题,以及您已经(或将要做出)将伪代码转换为Python的任何尝试.