在好例子网,分享、交流、成长!
您当前所在位置:首页Python 开发实例Python GUI开发 → "最强连一连"游戏解密

"最强连一连"游戏解密

Python GUI开发

下载此实例
  • 开发语言:Python
  • 实例大小:11.03M
  • 下载次数:48
  • 浏览次数:251
  • 发布时间:2020-03-04
  • 实例类别:Python GUI开发
  • 发 布 人:dhsdhsjdhskd
  • 文件格式:.zip
  • 所需积分:2

实例介绍

【实例简介】有一款微信小程序游戏,“最强连一连”,本工程用于对该游戏进行解密,按照提示将游戏信息输入本程序,本程序将会自动计算路线。

朋友推荐了这款游戏,挺好玩了,既能锻炼智力又能打发时间,但是本人又不想动脑,所以开发了这款解密程序。说笑,其实我也是新手,正好看到朋友玩这款游戏玩的焦头烂额的,我正好想学习GUI编程,拿这个练习GUI编程罢了。

使用的python版本为3.6.5,使用的GUI模块为wxpython。

本人在此实例下提供的实例文件,包含源代码文件lianyilian_my.py,程序所用素材文件(file文件夹及其中文件),以及一个用pyinstaller打包生成的exe程序,无需安装python即可直接在windows系统运行(zip压缩包,解压后找到lianyilian_my.exe双击即可运行)

【实例截图】

【核心代码】

解密方法就是递归算法,傻瓜式的一个一个试

class BitmapButtonFrame(wx.Frame):

    def __init__(self):
        self.bmp_fangkuai = wx.Bitmap('./file/fangkuai.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_kongbai = wx.Bitmap('./file/kongbai.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_start = wx.Bitmap('./file/start.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_start2shang = wx.Bitmap('./file/start2shang.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_start2xia = wx.Bitmap('./file/start2xia.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_start2zuo = wx.Bitmap('./file/start2zuo.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_start2you = wx.Bitmap('./file/start2you.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_shang_xia = wx.Bitmap('./file/shang_xia.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_zuo_you = wx.Bitmap('./file/zuo_you.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_zuo_shang = wx.Bitmap('./file/zuo_shang.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_zuo_xia = wx.Bitmap('./file/zuo_xia.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_you_shang = wx.Bitmap('./file/you_shang.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_you_xia = wx.Bitmap('./file/you_xia.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_shang2stop = wx.Bitmap('./file/shang2stop.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_xia2stop = wx.Bitmap('./file/xia2stop.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_zuo2stop = wx.Bitmap('./file/zuo2stop.bmp', wx.BITMAP_TYPE_BMP)
        self.bmp_you2stop = wx.Bitmap('./file/you2stop.bmp', wx.BITMAP_TYPE_BMP)

        [self.width, self.height] = get_size()
        # print(self.width, self.height)
        self.w_1, self.h_1 = self.width*50 16, self.height*50 115
        # print(self.w_1, self.h_1)
        wx.Frame.__init__(self, None, -1, "连一连解密", size=(self.w_1, self.h_1))
        self.panel = wx.Panel(self, -1)

        self.my_progress = 0
        self.button_pos = {}
        self.start_pos = 0, 0
        self.step_count = self.width*self.height
        self.map_data = []
        # print(self.map_data)
        self.names = locals()
        for i in range(self.height):
            self.map_data.append([])
            for j in range(self.width):
                self.map_data[i].append(1)
        # print(self.map_data)

        for i in range(self.height):
            for j in range(self.width):
                self.w_2, self.h_2 = j*50, i*50
                # print(w_2, h_2)
                self.names["button" str(i*self.width j)] = wx.BitmapButton(self.panel, -1,
                                                                             self.bmp_fangkuai,
                                                                             pos=(self.w_2, self.h_2),
                                                                             size=(50,50), style=0)
                self.button_pos[(str(self.names["button" str(i*self.width j)])[-5:-1])] = i,j

                self.Bind(wx.EVT_BUTTON, self.onclick, self.names["button" str(i*self.width j)])
        # print(self.button_pos)
        self.tishi_1 = wx.StaticText(self.panel, label="请依次点击墙的位置", pos=(5, 50 * self.height 5))
        self.tishi_2 = wx.StaticText(self.panel, label="然后点击下一步", pos=(5, 50 * self.height 20))
        self.button_next = wx.Button(self.panel, label="下一步", pos=(50*self.width-90, 50*self.height 40))
        self.Bind(wx.EVT_BUTTON, self.click_next, self.button_next)

    def onclick(self, event):
        if self.my_progress == 0:
            # print(event.GetEventObject())
            i, j = self.button_pos[str(event.GetEventObject())[-5:-1]]
            # print(i, j)
            if self.map_data[i][j] != 0:
                self.names["button" str(i * self.width j)].SetBitmap(self.bmp_kongbai)
                self.map_data[i][j] = 0
                self.step_count -= 1
            # print(self.map_data)
        elif self.my_progress == 1:
            i, j = self.button_pos[str(event.GetEventObject())[-5:-1]]
            # print(i, j)
            self.names["button" str(i * self.width j)].SetBitmap(self.bmp_start)
            self.map_data[i][j] = 7
            # print(self.map_data)
            self.start_pos = i, j
            self.tishi_1.SetLabelText("路线计算中...")
            ret = self.main_loop(self.map_data[:], self.start_pos, 1)
            # print(ret)
            if ret[0]:
                self.show(ret[1])
                self.tishi_1.SetLabelText("成功!")
            else:
                self.tishi_1.SetLabelText("输入错误!没有任何路线可以成功!")
            self.button_next.SetLabel("重置")
            self.my_progress = 2

    def click_next(self, event):
        if self.my_progress == 0:
            self.my_progress = 1
            self.tishi_1.SetLabelText("请点击起始位置")
            self.tishi_2.SetLabelText("")
        elif self.my_progress == 2:
            self.my_init()

    def my_init(self):
        self.my_progress = 0
        self.start_pos = 0, 0
        self.step_count = self.width*self.height
        # print(self.step_count)
        for i in range(self.height):
            for j in range(self.width):
                self.map_data[i][j] = 1
        # print(self.map_data)

        for i in range(self.height):
            for j in range(self.width):
                self.names["button" str(i * self.width j)].SetBitmap(self.bmp_fangkuai)
        # print(self.button_pos)
        self.tishi_1.SetLabelText("请依次点击墙的位置")
        self.tishi_2.SetLabelText("然后点击下一步")
        self.button_next.SetLabel("下一步")

实例下载地址

"最强连一连"游戏解密

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警