首页 >> 手游攻略

打扑克又痛又叫免费

大家好,今天给各位分享打扑克又痛又叫免费的一些知识,其中也会对打扑克嘛?Python教你“经典纸牌游戏21点”玩法进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

导语

?昨天不是周天嘛?

你们在家放松一般都会做什么呢?

周末逛逛街,出去走走看电影......这是你们的周末。

程序员的周末就是在家躺尸唐诗躺尸,偶尔加班加班加班,或者跟着几个朋友在家消遣时间打打麻将,扑克牌玩一下!

??尤其是放长假【ps:也没啥假,长假就是过年】在老家的时候,亲戚尤其多,七大姑八大姨的一年好不容易聚一次,打打麻将跟扑克这是常有的事儿,联络下感情这是最快的方式~

??说起打扑克,我们经常就是玩儿的二百四、炸金花、三个打一个那就是叫啥名字来着,容我想想......

?话说真词穷,我们那都是方言撒,我翻译不过来普通话是叫什么了,我估计240你们也没听懂是啥,23333~

??今天的话小编是带大家做一款21点的扑克游戏!

有大佬可优化一下这个代码,做一个精致豪华的界面就好了~~

正文

游戏规则:21点又名黑杰克,该游戏由2到6个人玩,使用除大小王之外的52张牌,游戏者的目标是使手中的牌的点数之和不超过21点且尽量大。当使用1副牌时,以下每种牌各一张(没有大小王):

(1)初始化玩家数:

<spanstyle="color:#333333"><spanstyle="background-color:#ffffff"><spanstyle="background-color:#f8f8f8">definiGame():nglobalplayerCount,cardsnwhile(True):ntry:nplayerCount=int(input('输入玩家数:'))nexceptValueError:nprint('无效输入!')ncontinuenifplayerCount<2:nprint('玩家必须大于1!')ncontinuenelse:nbreakntry:ndecks=int(input('输入牌副数:(默认等于玩家数)'))nexceptValueError:nprint('已使用默认值!')ndecks=playerCountnprint('玩家数:',playerCount,',牌副数:',decks)ncards=getCards(decks)#洗牌</span></span></span>

(2)建立了玩家列表,电脑跟玩家对战。

<spanstyle="color:#333333"><spanstyle="background-color:#ffffff"><spanstyle="background-color:#f8f8f8">defcreatePlayerList():nglobalplayerListnplayerList=[]nforiinrange(playerCount):nplayerList+=[{'id':'','cards':[],'score':0}].copy()nplayerList[i]['id']='电脑'+str(i+1)nplayerList[playerCount-1]['id']='玩家'nrandom.shuffle(playerList)#为各玩家随机排序</span></span></span>

(3)开始会设置2张明牌玩法都可以看到点数。

<spanstyle="color:#333333"><spanstyle="background-color:#ffffff"><spanstyle="background-color:#f8f8f8">defgameStart():nprint('为各玩家分2张明牌:')nforiinrange(playerCount):#为每个玩家分2张明牌ndeal(playerList[i]['cards'],cards,2)nplayerList[i]['score']=getScore(playerList[i]['cards'])#计算初始得分nprint(playerList[i]['id'],'',getCardName(playerList[i]['cards']),n'得分',playerList[i]['score'])ntime.sleep(1.5)</span></span></span>

(4)游戏为电脑跟玩家依次分发第三张暗牌,这是别人看不到的。

<spanstyle="color:#333333"><spanstyle="background-color:#ffffff"><spanstyle="background-color:#f8f8f8">defgamePlay():nforiinrange(playerCount):nprint('当前',playerList[i]['id'])nifplayerList[i]['id']=='玩家':#玩家nwhile(True):nprint('当前手牌:',getCardName(playerList[i]['cards']))n_isDeal=input('是否要牌?(y/n)')nif_isDeal=='y':ndeal(playerList[i]['cards'],cards)nprint('新牌:',getCardName(playerList[i]['cards'][-1]))n#重新计算得分:nplayerList[i]['score']=getScore(playerList[i]['cards'])nelif_isDeal=='n':nbreaknelse:nprint('请重新输入!')nelse:#电脑nwhile(True):nifisDeal(playerList[i]['score'])==1:#为电脑玩家判断是否要牌ndeal(playerList[i]['cards'],cards)nprint('要牌。')n#重新计算得分:nplayerList[i]['score']=getScore(playerList[i]['cards'])nelse:nprint('不要了。')nbreakntime.sleep(1.5)</span></span></span>

(5)随机洗牌:

<spanstyle="color:#333333"><spanstyle="background-color:#ffffff"><spanstyle="background-color:#f8f8f8">defgetCards(decksNum):ncardsList=['Aa','Ab','Ac','Ad',n'Ka','Kb','Kc','Kd',n'Qa','Qb','Qc','Qd',n'Ja','Jb','Jc','Jd',n'0a','0b','0c','0d',n'9a','9b','9c','9d',n'8a','8b','8c','8d',n'7a','7b','7c','7d',n'6a','6b','6c','6d',n'5a','5b','5c','5d',n'4a','4b','4c','4d',n'3a','3b','3c','3d',n'2a','2b','2c','2d']ncardsList*=decksNum#牌副数nrandom.shuffle(cardsList)#随机洗牌nreturncardsList</span></span></span>

(6)?设置牌名字典:

<spanstyle="color:#333333"><spanstyle="background-color:#ffffff"><spanstyle="background-color:#f8f8f8">cardNameDict={'Aa':'黑桃A','Ab':'红桃A','Ac':'梅花A','Ad':'方片A',n'Ka':'黑桃K','Kb':'红桃K','Kc':'梅花K','Kd':'方片K',n'Qa':'黑桃Q','Qb':'红桃Q','Qc':'梅花Q','Qd':'方片Q',n'Ja':'黑桃J','Jb':'红桃J','Jc':'梅花J','Jd':'方片J',n'0a':'黑桃10','0b':'红桃10','0c':'梅花10','0d':'方片10',n'9a':'黑桃9','9b':'红桃9','9c':'梅花9','9d':'方片9',n'8a':'黑桃8','8b':'红桃8','8c':'梅花8','8d':'方片8',n'7a':'黑桃7','7b':'红桃7','7c':'梅花7','7d':'方片7',n'6a':'黑桃6','6b':'红桃6','6c':'梅花6','6d':'方片6',n'5a':'黑桃5','5b':'红桃5','5c':'梅花5','5d':'方片5',n'4a':'黑桃4','4b':'红桃4','4c':'梅花4','4d':'方片4',n'3a':'黑桃3','3b':'红桃3','3c':'梅花3','3d':'方片3',n'2a':'黑桃2','2b':'红桃2','2c':'梅花2','2d':'方片2'}</span></span></span>

?(7)判断胜负:

<spanstyle="color:#333333"><spanstyle="background-color:#ffffff"><spanstyle="background-color:#f8f8f8">defshowWinAndLose():nloserList=[]#[['id',score],['id',score],...]nwinnerList=[]#[['id',score],['id',score],...]nwinnerCount=0nloserCount=0nforiinrange(playerCount):nifplayerList[i]['score']>21:#爆牌直接进入败者列表nloserList.append([playerList[i]['id'],playerList[i]['score']])nelse:#临时胜者列表nwinnerList.append([playerList[i]['id'],playerList[i]['score']])niflen(winnerList)==0:#极端情况:全部爆牌nprint('全部玩家爆牌:')nforiinrange(len(loserList)):nprint(loserList[i][0],loserList[i][1])neliflen(loserList)==0:#特殊情况:无人爆牌nwinnerList.sort(key=lambdax:x[1],reverse=True)#根据分数值排序胜者列表nforiinrange(len(winnerList)):#计算最低分玩家数量nifi!=len(winnerList)-1:nifwinnerList[-i-1][1]==winnerList[-i-2][1]:nloserCount=(i+2)nelse:nifloserCount==0:nloserCount=1nbreaknelse:nloserCount=len(loserList)nifloserCount==1:nloserList.append(winnerList.pop())nelse:nwhile(len(loserList)!=loserCount):nloserList.append(winnerList.pop())nforiinrange(len(winnerList)):#计算最高分玩家数量nifi!=len(winnerList)-1:nifwinnerList[i][1]==winnerList[i+1][1]:nwinnerCount=(i+2)nelse:nifwinnerCount==0:nwinnerCount=1nbreaknelse:nwinnerCount=len(winnerList)nwhile(len(winnerList)!=winnerCount):nwinnerList.pop()nprint('获胜:')nforiinrange(len(winnerList)):nprint(winnerList[i][0],winnerList[i][1])nprint('失败:')nforiinrange(len(loserList)):nprint(loserList[i][0],loserList[i][1])nelse:#一般情况:有人爆牌nwinnerList.sort(key=lambdax:x[1],reverse=True)#根据分数值排序胜者列表nforiinrange(len(winnerList)):#计算最高分玩家数量nifi!=len(winnerList)-1:nifwinnerList[i][1]==winnerList[i+1][1]:nwinnerCount=(i+2)nelse:nifwinnerCount==0:nwinnerCount=1nbreaknelse:nwinnerCount=len(winnerList)nwhile(len(winnerList)!=winnerCount):nwinnerList.pop()nprint('获胜:')nforiinrange(len(winnerList)):nprint(winnerList[i][0],winnerList[i][1])nprint('失败:')nforiinrange(len(loserList)):nprint(loserList[i][0],loserList[i][1])</span></span></span>

?游戏效果:咳咳咳.......感觉这游戏看运气也看胆量!!

?总结?

??哈哈哈!小编玩游戏比较废,你们要来试试嘛?无聊的时候可以摸摸鱼,打打酱油~

制作不易,记得一键三连哦!!如果需要本文完整的代码+图片素材。

Python新手安装包、免费激活码、等等更多Python资料【私信小编06】即可免费领取哦!!

打扑克又痛又叫免费和打扑克嘛?Python教你“经典纸牌游戏21点”玩法的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!



本文由欣欣吧手游攻略栏目发布,感谢您对欣欣吧的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“打扑克又痛又叫免费

标签: