华容道怎么玩(九宫格华容道怎么玩)
目前应该是有很多小伙伴对于华容道怎么玩方面的信息比较感兴趣,现在小编就收集了一些与九宫格华容道怎么玩相关的信息来分享给大家,感兴趣的小伙伴可以接着往下看,希望会帮助到你哦。
项目创作的初衷:
早期的一个项目,创作品思想源自于数字华容道(n-puzzle),是一种智力游戏,十五数字推盘游戏的板上会有十五个方块和一个大小相当于一个方块的空位(供方块移动之用),当15个数字依次排序并且最后一个格子为空位即代表挑战成功。

首先把问题场景化,通过程序游戏的形式,让大家直观简单地操作,容易接受,也便于交流和传播,同时在游戏中思考和解决问题。
初始程序界面
挑战成功完成的界面
实现过程和完整代码:
程序UI没有使用PyQt,而是用Python自带的tkinter库,界面元素主要使用按钮来完成。
每次开局,都采取随机打乱方式,但是需要一些注意,必须要保证有解(两两交换!)
import tkinter as tkimport tkinter.messageboximport randomroot = tk.Tk()root.geometry("400x420")root.title("益智游戏—数字华容道")lb1=tk.Label(root,text="请移动板上的方块,让所有的方块顺着数字的次序排列。",font=("",11))lb1.grid(padx=5,pady=5,row=0,column=1,columnspan=4)count=0lb2=tk.Label(root,text="完成步数: "+str(count),font=("",10))lb2.grid(padx=2,pady=2,row=5,column=3)id=[i for i in range(15)]imgid=[i+1 for i in range(16)]finish=[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]def msg():tk.messagebox.showinfo(title="恭喜!",message="恭喜你,挑战成功!")def move(index, t,r,c):#print(index,t,r,c)k=r-1+(c-1)*4r0=imgid.index(16)%4+1c0=imgid.index(16)//4+1k0=r0-1+(c0-1)*4#print(k,k0)def change():buttons[k].config(text="16",bg="white",fg="white")buttons[k0].config(text=imgid[k], bg="tan",fg="black")imgid[k],imgid[k0]=imgid[k0],imgid[k]tmp=[ imgid.index(i+1) for i in range(16)]#print(tmp)global countcount=count+1lb2.config(text="完成步数: "+str(count))if(tmp==finish):msg()if(r==r0 and c0-c==1) or (r==r0 and c0-c==-1) or (r0-r==1 and c==c0) or (r0-r==-1 and c==c0):#print(k,t,"move right")change()#print(imgid)buttons = []#随机两两交换,保证有解!def shuffleid():for i in range(8):a=random.choice(id)b=random.choice(id)c=random.choice(id)d=random.choice(id)while (a==b or a==c or a==d or b==c or b==d or c==d):a=random.choice(id)b=random.choice(id)c=random.choice(id)d=random.choice(id)#print(a,b,c,d)imgid[a],imgid[b]=imgid[b],imgid[a]imgid[c],imgid[d]=imgid[d],imgid[c]#print(imgid)def init():shuffleid()for i in imgid:n=iif(n==16):fg="white"bg="white"else:fg="black"bg="tan"r=imgid.index(i)%4+1c=imgid.index(i)//4+1num=imgid.index(i)button = tk.Button(root, bg=bg, text=n,fg=fg,font=("",12),width=10,height=4,relief=tk.GROOVE, command=lambda index=num, n=n,r=r,c=c: move(index, n,r,c))button.grid(padx=4, pady=4, row=r, column=c)# Add a reference to the button to 'buttons'buttons.append(button)init()def restart():shuffleid()global countcount=0for i in imgid:n=iif(n==16):fg="white"bg="white"else:fg="black"bg="tan"r=imgid.index(i)%4+1c=imgid.index(i)//4+1num=imgid.index(i)buttons[imgid.index(i)].config(text=i,bg=bg,fg=fg)#print(imgid)bt1=tk.Button(root,text="重新开始",command=restart)bt1.grid(padx=2,pady=2,row=5,column=2,columnspan=1)root.mainloop()本文结束,以上,就是华容道怎么玩,九宫格华容道怎么玩的全部内容了,如果大家还想了解更多,可以关注我们哦。
相关文章
- 详细阅读
-
? :一手车卖给了二手车商,成交后第二天说车子是事故车,说隐瞒事实?详细阅读
我一手车卖给了二手车商,成交后第二天说车子是事故车,说我隐瞒事实,要求全款退车,我该怎么办? 报警处理。二手车行在车辆鉴定方面是内行,买车人在车辆鉴定...
2022-08-16 3141
-
搞笑短视频题材 :个人短视频槽点题材如何构思?详细阅读
我们反过来看一些搞笑的账号,这些账号虽然粉丝不少,内容也很不错,但是关注搞笑账号的用户,大多数都是为了开心的,所以这样的粉丝群体自然就很难变现。所以我...
2022-08-16 3654
-
91短视频版ios :有哪些苹果手机上能用,你又不愿意让人知道的好用的app呢?详细阅读
在苹果手机中使用的软件,在不越狱的情况下,大多数人都是在苹果商店上下载软件。 但是还有其他的方法可以让你的手机中安装上在苹果商店中没有的软件。 有两个...
2022-08-16 2913
-
短视频作品怎么发 :抖音如何发长视频完整版?详细阅读
抖音是我们熟知的一款非常火爆的短视频软件,在抖音上可以浏览别人的作品,也可以发布自己的作品,那么自己发布作品的时候想要发长视频,怎么发呢?一起来看一下...
2022-08-16 2774
-
短视频用户行为分析 :据说中国近八成手机网民是短视频用户,侵权问题如何解决?详细阅读
侵权这个问题在如今这个自媒体泛滥的时代不好精准定位。 因为一个好的题材自己发布出去可能只需要短短的几分钟时间就能够引起火爆。 平台的大数据根本无法做...
2022-08-16 2305
-
91短视频ios :苹果手机除了app store,还能在哪里下载软件?包括一些破解软件?详细阅读
苹果手机,下载软件,好像只能在苹果手机自带的APP STORE下载吧?我自己从来没有尝试过在其他地方下载,在越狱最火热的年份,我也没有尝试过越狱。 2...
2022-08-16 2356
-
富二代富二代短视频 :为什么现在富二代比穷二代努力?详细阅读
大家好这里是二次元胡辣汤。酸爽可口。 看到这个问题我首先想到了马太效应。富者更富,穷者更穷。这也是一个不争的事实。但是不否认那些努力的年轻人。 富二...
2022-08-16 2219

发表评论