青蛙跳小游戏之python3解法
来源:互联网 发布:mac电脑快速回到桌面 编辑:程序博客网 时间:2024/05/04 20:20
青蛙跳小游戏是一个看似简单的智力游戏,游戏任务是让左右两边的青蛙互换位置。鼠标点击青蛙,它会跳到离它最近的一块空置的石头上。下图是游戏界面:
我在4399上也找到了这个小游戏,链接http://www.4399.com/flash/7584.htm 。
这个小游戏我尝试了好多次,太笨了,只能用代码搞起,就是深度搜索,找到一个解就OK。代码如下:
pos=[0 for x in range(7)]for i in range(3):pos[i]=-1for i in range(3):pos[6-i]=1#print(pos)repos=pos[::-1]count=0def kltry():global count,pos,reposif pos==repos:print('OK')exit()blank=pos.index(0)if blank>=1 and pos[blank-1]<0:pos[blank]=-1pos[blank-1]=0print(str(blank-1)+'->'+str(blank))kltry()pos[blank]=0pos[blank-1]=-1print('return')if blank>=2 and pos[blank-2]<0:pos[blank]=-1pos[blank-2]=0print(str(blank-2)+'->'+str(blank))kltry()pos[blank]=0pos[blank-2]=-1print('return')if blank<=5 and pos[blank+1]>0:pos[blank]=1pos[blank+1]=0print(str(blank)+'<-'+str(blank+1))kltry()pos[blank]=0pos[blank+1]=1print('return')if blank<=4 and pos[blank+2]>0:pos[blank]=1pos[blank+2]=0print(str(blank)+'<-'+str(blank+2))kltry()pos[blank]=0pos[blank+2]=1print('return')kltry()
输出结果如下:
kl@kl-Latitude:~/桌面$ python3 jumpfrog.py 2->31->20->1returnreturn0->2return2<-43->41->30->10<-21->2returnreturnreturn1<-20->20<-1returnreturnreturnreturn3<-54->54<-65->6returnreturnreturn5<-64->64<-5returnreturnreturnreturnreturn4<-53->51->30->10<-21->2return2<-43->41->31<-2returnreturnreturn4<-65->63->51->31<-22<-43->4OK
2->3就是从把第2个位置的青蛙跳到第3个位置(从0开始数的哈),return就是上一步走的不对,要返回上一级,但是游戏是不能悔棋的,只能重新开始,所以根据这样的结果也不好手工复现,于是我又写了如下的代码,之前,先把上面的输出结果重定向到log文件中,把上面数据处理一下:
f=open('log','r')data=[]while True:line=f.readline()if line=='':breakdata.append(line[:-1])f.close()while 'return' in data:n=data.index('return')del data[n]del data[n-1]print(data)
这样,输出结果处理后变成:
kl@kl-Latitude:~/桌面$ python3 showfog.py ['2->3', '2<-4', '4<-5', '3->5', '1->3', '0->1', '0<-2', '2<-4', '4<-6', '5->6', '3->5', '1->3', '1<-2', '2<-4', '3->4', 'OK']
这样就可以手工复现了,总共需要15步让左右两边的青蛙交换位置。周围好多人都可以分分钟甚至一把就通关,我还要代码搞起果然弱爆了。。。果然木有50W年薪了呢。。。
转载请注明:转自http://blog.csdn.net/littlethunder/article/details/20525965
2 0
- 青蛙跳小游戏之python3解法
- 【第一话】青蛙阶梯跳的递归解法
- 一款“翻转”小游戏的解法
- A题之变态青蛙跳
- 青蛙跳
- 青蛙跳
- 青蛙跳
- 青蛙跳
- python3 fibonacci的高效解法
- Java小游戏之控制台小游戏
- 数论之青蛙约会
- python3 一个点球小游戏 学习random模块
- 青蛙跳台阶问题的四种解法
- 青蛙爬台阶问题的三种解法@python
- 09扩展 青蛙跳台阶(高效解法)
- Java青蛙跳台阶的递归和非递归解法
- 青蛙跳和变态青蛙跳问题
- 枚举之讨厌的青蛙
- Hadoop学习之Hadoop集群的定制配置(一)
- 自定义Dialog
- 经验积累
- HTTP协议详解
- Ant脚本复制文件的写法
- 青蛙跳小游戏之python3解法
- OpenGL: 颜色混合
- [java]android SQLite
- 索引和SQL查询优化(待补充)
- linux 下的一些命令
- 久违的月亮
- hdu4548美素数
- LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- oracle hint用法大全