【天谴】基于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再添加来实现切换界面

posted @ 2020-03-11 11:46  秋鸿-  阅读(10)  评论(0)    收藏  举报