python扑克牌发牌,python扑克牌52张
介绍
昨天不是周日吗?你通常在家做什么来放松?周末,逛街、出去、看电影……这就是你的周末。程序员周末就窝在家里,写诗作诗,有时加班,和几个朋友在家打麻将或者打扑克。
尤其是长假期间【ps:假期不多,长假就是过年】我在老家的时候,7个姑姑、8个姑姑过得不容易,尤其是亲戚很多,这是常有的事让阿姨们每年聚在一起打麻将、打扑克。儿子,这是最快的联系方式啊~我们玩扑克的时候,常说两百零四,炒金花,三对一,就是这个名字,让我想想。
“说实话,我不会语言,我们都说方言,翻译不成普通话,我猜你不明白240是什么,23333~”
今天小编就带大家制作一款二十一点扑克游戏!请大家优化一下这段代码,打造出精致奢华的界面~~
文字游戏规则:二十一点(又称黑杰克)是一种由二至六名玩家使用大王和除大王之外的52 张牌进行的游戏。玩家的目标是防止手中的牌总数超过21 张。从他最好的到他最大的。当使用一副扑克牌时,以下每张牌中的一张(国王或无国王):
(1)初始化玩家数量。
def iniGame(): globalplayerCount, card while(True): try:playerCount=int(input('请输入玩家数量:')) except ValueError: print('输入无效!') continue ifplayerCount 2: print('玩家必须大于1!') continue else: Break try: Deck=int(input('输入牌组数量:(默认等于玩家数量)')) ValueError: print ('使用默认值!' ) Deck=playerCount print('玩家数量:' , playerCount, ',deck) Cards=getCards(deck) # Shuffle (2) 当你创建玩家列表时,我将要对战的计算机。
def createPlayerList(): 全局玩家列表玩家列表=[] for i in range(playerCount): 玩家列表+=[{'id': '', '卡片': [], '分数': 0}].copy() 玩家列表[i]['id']='Computer' + str(i+1) playerList[playerCount-1]['id']='Player' random.shuffle(playerList) # 随机化每个玩家(3) 从排序开始将放置两张明亮的卡片,以便您可以看到分数。
def gameStart(): print('给每个玩家发2 张明牌:') for i in range(playerCount): # 给每个玩家发2 张明牌deal(playerList[i] ['cards'],cards , 2) playerList[i]['score']=getScore(playerList[i]['cards']) # 计算初始分数print(playerList[i]['id'], ' ', getCardName(playerList[i] ['card) ']),'score',playerList[i]['score']) time.sleep(1.5) (4) 游戏将第三张暗牌返回给电脑,玩家将按顺序分发。这是别人看不到的。
def gamePlay(): for i in range(playerCount): print('current',playerList[i]['id']) ifplayerList[i]['id']=='player': #playerwhile(True )第:章print('当前手牌:', getCardName(playerList[i]['cards'])) _isDeal=input('你想要一张牌吗?(y/n)') if _isDeal=='y': deal ( playerList[i]['cards'], Cards) print('新卡:', getCardName(playerList[i]['cards'][-1])) # 重新计算分数: playerList[i]['score' ]=getScore(playerList[i]['cards']) elif _isDeal=='n': 中断else: print('请重新输入!') else: # 电脑while(True): if isDeal(playerList[ i][' Score'])==1: # 判断电脑玩家是否想要卡牌deal(playerList[i]['cards'], Cards) print('我需要卡牌。') # 重新计算分数: playerList[i]['score ' ]=getScore(playerList[i]['cards']) else: print('不再了。') Break time.sleep(1.5) (5) 卡片随机洗牌。
def getCards(decksNum): 卡牌列表=['Aa', 'Ab', 'Ac', 'Ad', 'Ka', 'Kb', 'Kc', 'Kd', 'Qa', 'Qb', 'Qc'、'Qd'、'Ja'、'Jb'、'Jc'、'Jd'、'0a'、'0b'、'0c'、'0d'、'9a'、'9b'、'9c '、'9d'、'8a'、'8b'、'8c'、'8d'、'7a'、'7b'、'7c'、'7d'、'6a'、'6b'、'6c'、 “6d”、“5a”、“5b”、“5c”、“5d”、“4a”、“4b”、“4c”、“4d”、“3a”、“3b”、“3c”、“3d” ' , '2a', '2b', '2c', '2d']cardsList *=deck sNum# 卡牌数量random.shuffle(cardsList) # 随机洗牌的cardsList (6) 设置卡牌名称字典Masu.
CardNameDict={'Aa': '黑桃A', 'Ab': '红桃A', 'Ac': '梅花A', 'Ad': '方块A', 'Ka': 'K黑桃', 'Kb': '红心K', 'Kc': '梅花K', 'Kd': '方块K', 'Qa': '黑桃Q', 'Qb': 'Q'红心”、“Qc”:“梅花皇后”、“Qd”:“方块皇后”、“Ja”:“黑桃J”、“Jb”:“红心J”、“Jc”:“J” 'Jd': '方块杰克'、'0a': '黑桃十'、'0b': '红心十'、'0c': '梅花十'、'0d': '方块十' , '9a': '黑桃九', '9b' : '红心九', '9c': '梅花九', '9d': '方块九', '8a': '8b 八' : '红心8', '8c': '梅花8', '8d': '方块8', '7a': '黑桃7', '7b': '红心7', '7c ':'梅花七','7d':'方块七','6a':'黑桃六','6b':'红心六','6c':'梅花六','6d ':'方块六','5a':'黑桃五','5b':'红心五','5c':'梅花五','5d':'方块五','4a ':'黑桃四','4b':'红心四','4c':'梅花四','4d':'方块四','3a':'黑桃三','3b ': '红心3', '3c': '梅花3', '3d': '方块3', '2a': '黑桃2', '2b': '红心2', '2c ': '梅花2', '2d': '钻石2'} (7) 判断结果。
def showWinAndLose(): losserList=[] # [['id', 分数], ['id', 分数],] WinnerList=[] # [['id', 分数], ['id' , Score],] 获胜者计数=0 失败者计数=0 for i in range(playerCount): if playerList[i]['score'] 21: # 输掉一张牌,直接进入失败者列表LoserList.append([ playerList[i ]['id'], playerList[i]['score']]) else: # 临时获胜者名单WinnerList.append([playerList[i]['id'], playerList[i]['score '] ]) if len(winner list)==0: # 极端情况:所有卡被禁用print('所有玩家被禁用:') for i in range(len(loserList)): print(loserList [i][0], losserList[ i] [1]) elif len(loserList)==0: # 特殊情况:没有人打破WinnerList.sort(key=lambda x: x[1],verse=True) # 根据i 的得分值对获胜者列表进行排序in the range (len(winnerList)): # 计算得分最低的玩家数量if i !=len(winnerList)-1: if WinnerList[-i-1 ][1]==WinnerList[-i-2] [1] : LoserCount=(i+2) else: if LoserCount==0: LoserCount=1 中断else: LoserCount=len(loserList) if LoserCount==1: LoserList.append( WinnerList.pop()) else: while(len(loserList) !=LoserCount ): losserList.append(winnerList.pop() ) for i in range(len(winnerList)): # 计算得分最高的玩家数量if i !=len(winnerList)-1: if WinnerList[i ][1 ]==获奖者列表[i+1][1]: 获奖者计数=(i+2) else: if 获奖者计数==0: 获奖者计数=1 中断else: 获奖者计数=len(获奖者列表) while(len(获奖者名单)!=获奖者数量): 获奖者名单。 Pop() print('Win:') for i in range( len(winnerList)): print(winnerList[i][0],winnerList[i][1]) print('失败: ') for i in range (len(winnerList)): (len(loserList)): print(loserList[i][0 ], LoserList[i][1]) else: # 常见情况:有人winsList.sort(key=lambda x: x[1] , reverse=True) # 根据range 中i 的得分值对获胜者列表进行排序(len(winnerList )): # 计算得分最高的玩家数量if i !=len(winnerList) -1: if WinnerList[i ][1]==获奖者列表[i+1][1]: 获奖者计数=(i+2) else: if 获奖者计数==0: 获奖者计数=1 中断else: 获奖者计数=len(获奖者列表) while(len(获胜者列表) !=获胜者计数): 获胜者list.pop() print('Win:') for i in range(len(winnerList)): print(winnerList [i][0],winnerList [i][1] ) print('Failed:') for i in range(len( LoserList)): print(loserList[i][0], LoserList[i][1] ) 游戏效果:嗯……我感觉这个游戏要看情况不仅靠勇气,还靠运气。
概述
哈哈哈!小编不擅长游戏,但是你想尝试一下吗?无聊的话就抓点鱼打酱油吧~做起来并不容易,但是别忘了连续点击3次。如果你想要本文的完整代码+图片文档。免费领取Python资讯【私信编辑器06】,内含Python初学者安装包和免费激活码!