贪吃蛇(python,PyQt5)

喜欢就顶一下,不喜欢就踩一下吐舌头

话不多说,直接上图:


import sys,random,time,win32event,pywintypes,win32api
from PyQt5.QtGui import QFont,QIcon
from PyQt5.QtCore import Qt,QSize,QTimer
from PyQt5.QtWidgets import (QApplication,QDesktopWidget,QWidget,QMessageBox,
                             QHBoxLayout,QGridLayout,QVBoxLayout,QLabel,QFrame,
                             QLCDNumber,QPushButton,QToolButton)


class APP(QWidget):
    def __init__(self):
        super(APP,self).__init__()
        self.variable()
        self.Interface()
        self.center()
        self.Preset()
        self.link()

    def Preset(self):#打开游戏预设
        self.Randomgeneration()
        self.timer=QTimer()#建立计时器
        
    def variable(self):#各种变量
        self.cell=dict()#储存全部像素点组件
        self.cells=list()#储存全部像素点
        self.snake=[(12,12)]#蛇所占的像素点
        self.fruit=tuple()#果实的位置
        self.direction=(0,0)#方向键位置
        self.startsuspend='suspend'
        self.speed=400#初始速度
        self.lock=0#键盘锁,防止快速连按
        
    def Interface(self):#界面
        self.setWindowTitle('贪吃蛇')#标题
        self.setFixedSize(425,325)#限制窗口大小
        self.grabKeyboard()#窗口接收键盘事件

        self.Floor=QHBoxLayout()

        self.Form1=QFrame()
        self.Form1.setFrameShape(QFrame.Panel|QFrame
回答: Python PyQT5贪吃蛇是一个经典的游戏,玩家通过控制蛇的移动来吃食物并增长身体长度。在这个游戏中,蛇的移动策略通常是基于BFS算法来计算到达食物的最短路径长度。\[1\]游戏开始时,蛇很短,它会使用BFS算法计算每个位置到达食物的最短路径长度,而在没有蛇身阻挡的情况下,最短路径长度就是曼哈顿距离。然后,通过虚拟蛇进行探路,判断蛇的移动是否安全,只有在安全的情况下,真正的蛇才会跟随虚拟蛇的路径移动。\[1\] 在游戏中,安全的布局定义是指蛇能够追着蛇尾跑,并且在追逐蛇尾的过程中能够安全地吃到食物。当蛇的长度增长时,蛇尾后面会不断出现新的空间,这使得蛇能够继续追逐蛇尾。\[1\]然而,当蛇的长度增加到一定程度时,为了活下来,蛇只能追逐蛇尾。在追逐蛇尾的过程中,蛇会考虑是否能够安全地吃到食物。\[1\] 在游戏中,蛇每次移动一步后,布局会发生变化,因此可能存在更优解。因此,更好的策略是在蛇移动一步后重新进行BFS算法计算,并进行安全判断,然后再继续移动。这样可以确保蛇能够找到更好的路径来吃到食物。\[3\] 总结起来,Python PyQT5贪吃蛇游戏中,蛇的移动策略通常基于BFS算法来计算最短路径长度,并通过虚拟蛇进行探路来判断移动是否安全。安全的布局定义是指蛇能够追着蛇尾跑,并在追逐蛇尾的过程中安全地吃到食物。在移动过程中,蛇会重新计算最短路径,并进行安全判断,以找到更好的路径来吃到食物。\[1\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [惊了,用Python写了一个AI贪吃蛇,追着你跑的那种](https://blog.csdn.net/qq_42554007/article/details/108656621)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值