【天谴】基于Python实现看图回答类功能源码
说明:本源码为作者的参赛作品,现开源给有需要的人提供参考,切勿用于售卖等非法用途,转载请标明作者
下载链接:
https://pan.baidu.com/s/14SXCUGGk7sVG99ACSxtl0w
提取码:1933
项目的整体布局
通过导入Tkinter库来实现游戏的整体布局,具体使用的是pack布局方法,主色调为透明,原因是为了和图片更好的镶嵌,部分控件导入了ttk组件来美化,使布局更贴合windows7系统主题。
切换界面:
切换界面的方法是通过tkinter的创建一个总的窗口,然后通过调用函数使用Frame创建一个模块放置内容,然后通过destroy摧毁原先创建的Frame再调用函数再创建新的Frame函数实现切换界面的目的,各界面的图片都是通过tkinter的PhotoImage方法在Label上显示。
首先创建窗口:
if __name__ == '__main__':
root = tk.Tk()
Base(root)
root.mainloop()
创建多个类:
设置基本窗口:class Base
首页:class Cover
游戏界面:class Face1
排行榜:class Face2
设置:class Size
游戏结束界面:class Over
然后通过destroy摧毁类创建的Frame再调用其他的类重新创建新的Frame就可以实现切换界面
项目设置的实现
通过使用ini配置文件来实现记忆储存功能,使用configparser模块对config.ini文件进行配置的读取和保存。
先创建一个配置文件为key.ini
设置初始内容:
[size]
yxnd = 0
yxmc = 0
其中的yxnd为游戏难度,而yxmc为游戏模式
通过导入configparser库
使用configparser.read("key.ini")来读取配置文件
写入新的游戏难度和模式
configparser.set('size','yxnd',这是获取到的游戏难度的值)
configparser.set('size','yxmc',这是获取到的游戏模式的值)
configparser.write(open("key.ini","w")
再通过获取到的选项进行修改设置信息并存储
项目排行榜的实现
通过创建一个文本来存放排行榜的数据
规定存储每一个玩家的游戏结算信息格式为:
玩家的姓名 答对的题目数
通过读取文本内容,按空格符读取为数组,从而读取出一个二级列表
如文本的内容为:
张三 10
李四 15
王二 18
通过读取转化后为:
[['张三', '10'], ['李四', '15'], ['王二', '18']]
再通过
sorted(self.ph,key=(lambda x:int(x[1])),reverse=True)
self.phb = self.op[0:10]
来实现根据答对次数来排名,并只选取前十名玩家数据
为了更清楚的表示排名,在显示的内容前加上名次
并通过循环将排行榜显示出来,代码如下:
bonus = 0
for self.ph in self.phb:
self.nm=self.ph[1]
self.se=self.ph[0]
bonus = bonus+1
ttk.Label(self.frm1,text=str(bonus)+'.'+self.se+' '+self.nm+'\n').pack(anchor='w')
其中的bonus是显示的名次
这里为了美观,选用了ttk组件
代码的最后添加一个返回的按钮
ttk.Button(self.face2,text='返回',command=self.next3).pack(anchor='n')
返回调用的函数如下:
def next3(self):
self.face2.destroy()
Cover(self.master)
通过摧毁Frame再添加来实现切换界面

浙公网安备 33010602011771号