玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python方法解扑克牌24点游戏代码

python 培训

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

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

#!/usr/bin/python
# coding:utf-8
'''
简介:本脚本用于计算24点
'''
import math,sys,os

def _cal(a,b):
	temp={'+':a+b,'-':a-b,'--':b-a,'*':a*b}
	if b!=0 and a!=0:
		temp['/']=float(a)/b
		temp['\\']=float(b)/a
	return temp

def cal(num):
	for i0 in num:
		for i1 in num:
			if i1==i0:
				continue
			else:
				for i2 in num:
					if i2==i1 or i2==i0:
						continue
					else:
						for i3 in num:
							if i3==i1 or i3==i0 or i3==i2:
								continue
							else:
								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 True
	return False
	print 'fail'

#www.iplaypython.com
#单独测试一组
test=[1,2,4,9]
num={1:test[0],2:test[1],3:test[2],4:test[3]}
cal(num)

'''
#查看所有的无解组
Max=15
fail=0
failist=[]
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+1

print failist
print 'all:%d,fail:%d' %(15**4,fail)
#无解个数721
'''

玩蛇网原创,转载请注明文章出处和来源网址:http://www.iplaypython.com/code/game/g2498.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网Python新手QQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
文章发布日期:2016-03-30 09:49 玩蛇网 www.iplaypython.com

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
相关文章推荐
别人正在看
特别推荐
去顶部去底部