Python方法解扑克牌24点游戏代码,python扑克牌,对于用python语言来


对于用python语言来编写游戏或是解游戏都是很受欢迎的,今天的这段python代码是有关于纸牌24点的解法,单张牌数值范围在1到14之间。Python方法解扑克牌24点游戏代码如下:

喜欢这篇文章的人还在关注:Python编写的俄罗斯方块游戏案例源码详解

#!/usr/bin/python# coding:utf-8'''简介:本脚本用于计算24点'''import math,sys,osdef _cal(a,b):temp={'+':a+b,'-':a-b,'--':b-a,'*':a*b}if b!=0 and a!=0:temp['/']=float(a)/btemp['\\']=float(b)/areturn tempdef cal(num):for i0 in num:for i1 in num:if i1==i0:continueelse:for i2 in num:if i2==i1 or i2==i0:continueelse:for i3 in num:if i3==i1 or i3==i0 or i3==i2:continueelse:temp1=_cal(num[i0],num[i1])for k1 in temp1:temp2=_cal(temp1[k1],num[i2])for k2 in temp2:temp3=_cal(temp2[k2],num[i3]) for k3 in temp3:if temp3[k3]==24:print '((%d%s%d)%s%d)%s%d=24' %(num[i0],k1,num[i1],k2,num[i2],k3,num[i3])return Truereturn Falseprint 'fail'#www.iplaypy.com#单独测试一组test=[1,2,4,9]num={1:test[0],2:test[1],3:test[2],4:test[3]}cal(num)'''#查看所有的无解组Max=15fail=0failist=[]for i1 in range(1,Max):for i2 in range(1,Max):for i3 in range(1,Max):for i4 in range(1,Max):num={1:i1,2:i2,3:i3,4:i4}if not cal(num):temp=[num[1],num[2],num[3],num[4]]temp.sort()if temp not in failist:failist.append(temp)fail=fail+1print failistprint 'all:%d,fail:%d' %(15**4,fail)#无解个数721'''

编橙之家文章,

评论关闭