资源简介
python写了个自动拼图游戏,内部算法使用的是A*算法。
代码片段和文件信息
# -*- coding:utf-8 -*-
import sys
from tkinter import *
from tkinter import filedialog
from tkinter import ttk
from PIL import Image ImageTk
import random
import math
import time
def callback1():#打开图片
global fpath
fpath = filedialog.askopenfilename();
v1.set(fpath)
# print(fpath)
def callback2():#开始
global entry_num
entry_num=e1.get();#print(“e1“ entry_num)
root1.withdraw()
root = Toplevel()
im0 = Image.open(fpath)
# print(im0.size[0])
image_x=im0.size[0];image_y=im0.size[1]
if (image_x<800)|(image_y<500)|(image_x>1000)|(image_y>650):
min_xy=min(650/image_y1000/image_x)
image_x = int(image_x*min_xy)
image_y = int(image_y*min_xy)
im0 = im0.resize((image_ximage_y))
im0 = fill_image(im0 m n)
im0=cut_image(im0 m nentry_num)
global im
im=[]
for i in range(0m*n):im.append(ImageTk.PhotoImage(image=im0[i]))
# print(‘im‘im.width()image_x)
root.title(‘拼图游戏‘)
root.geometry(‘%dx%d‘ % (image_x+200 650)) # 这里的乘号不是 * ,而是小写英文字母 x
# root.resizable(width=Falseheight=False)
# photo = PhotoImage(file=“timg.jpg“)
btn1 = Button(root text=‘打乱图片‘ command=callback3) #
btn1.place(x=image_x+100 y=40 width=80 height=50)
# btn1.pack(ipadx=20 ipady=10padx=10 pady=10)
btn2 = Button(root text=‘开始重排‘ command=run) # 1command=root.quit()
btn2.place(x=image_x+100 y=110 width=80 height=50)
btn3 = Button(root text=‘退出‘ command=sys.exit) # command=root.withdraw()
btn3.place(x=image_x+100 y=180 width=80 height=50)
#********************************************************
global xsizeysizeframe1imageI
xsizeysize=im0[0].size
# print(xsizeysize)
frame1 = frame(rootheight = ysize*nwidth =xsize*m)
imageI=[]
for j in range(0n):
for i in range(0 m):
imageI.append(IntVar())
imageI[j*m+i]=Label(frame1 image=im[j*m+i]relief=‘groove‘borderwidth=5)
imageI[j*m+i].grid(column=irow=j)
frame1.place(x=10 y=(650-image_y)/2)
# ********************************************************
frame1.mainloop()
def callback3():#打乱图片
global move
global li0
global li_goal
move = [-m m -1 1]
li_goal=list(range(1 m*n+1))
# entry_num=int(entry_num)
li_goal[int(entry_num)-1]=0
li0=set_zero(int(entry_num) li_goal)
print(‘li0‘li0)
# path_ = askopenfilename()
# path.set(path_)
# img_open = Image.open(e1.get())
# img = ImageTk.PhotoImage(img_open)
for j in range(0n):
for i in range(0 m):
temp=li0[j*m+i]-1
if temp<0:temp=int(entry_num)-1
imageI[j*m+i].config(image=im[temp])
imageI[j*m+i].image = im[temp]
def run():
mc = run_Axing()
global step
if mc > -1:
num = 0
step = [openList[mc]]
while mc > 0:
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论