欢迎来到咨信网! | 成为共赢成为共赢 咨信网助力知识提升 | 自信网络旗下运营:咨信网 自信AI创作助手 自信AI导航
咨信网
全部分类
  • 包罗万象   教育专区 >
  • 品牌综合   考试专区 >
  • 管理财经   行业资料 >
  • 环境建筑   通信科技 >
  • 法律文献   文学艺术 >
  • 学术论文   百科休闲 >
  • 应用文书   研究报告 >
  • ImageVerifierCode 换一换
    首页 咨信网 > 资源分类 > PDF文档下载
    分享到微信 分享到微博 分享到QQ空间

    Python贪吃蛇(完整代码+详细注释+粘贴即食).pdf

    • 资源ID:851959       资源大小:323.57KB        全文页数:4页
    • 资源格式: PDF        下载积分:5金币
    微信登录下载
    验证码下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    验证码: 获取验证码
    温馨提示:
    支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    VIP下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    声明    |    会员权益      获赠5币      写作写作
    1、填表:    下载求助     索取发票    退款申请
    2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【鱼**】。
    6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    7、文档遇到问题,请及时私信或留言给本站上传会员【鱼**】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

    Python贪吃蛇(完整代码+详细注释+粘贴即食).pdf

    1、Python贪吃蛇(完整代码+详细注释+粘贴即)章录代码#!/usr/bin/env python#-*-coding:utf-8-*-#author:Wangdali time:2021年12016:08:44#python实现:贪吃蛇游戏玩法:回车开始游戏;空格暂停游戏/继续游戏;向键/wsad控制蛇向思路:列表存储蛇的体;浅表体,深背景将体凸显出来;蛇的移动:仔细观察,是:体除头和尾不动、尾部消失,头部增加,所以,新添加的元素放在列表头部、删除尾部元素;游戏结束判定策略:超出边界;触碰到的体:蛇前进的下格为体的部分(即在列表中)。#注:因为在列表中需要频繁添加和删除元素,所以deque容

    2、器代替列表;是因为deque具有效的插和删除效率#初始化蛇,长度为3,放置在屏幕左上;#导包import randomimport sysimport timeimport pygamefrom pygame.locals import*from collections import deque#基础设置Screen_Height=480Screen_Width=600Size=20#格Line_Width=1#游戏区域的坐标范围Area_x=(0,Screen_Width/Size-1)#0是左边界,1是右边界#注:python中/为整数除法;/为浮点数除法Area_y=(2,Screen_

    3、Height/Size-1)#物的初步设置#物的分值+颜Food_Style_List=(10,(255,100,100),(20,(100,255,100),(30,(100,100,255)#整体颜设置Light=(100,100,100)Dark=(200,200,200)Black=(0,0,0)Red=(200,30,30)Back_Ground=(40,40,60)#本输出格式设置def Print_Txt(screen,font,x,y,text,fcolor=(255,255,255):#font.render参数意义:.render(内容,是否抗锯齿,字体颜,字体背景颜)Te

    4、xt=font.render(text,True,fcolor)screen.blit(Text,(x,y)#初始化蛇def init_snake():snake=deque()snake.append(2,Area_y0)snake.append(1,Area_y0)snake.append(0,Area_y0)return snake#物设置#注意需要对物出现在蛇上的情况进判断def Creat_Food(snake):注:randint 产的随机数区间是包含左右极限的,也就是说左右都是闭区间的1,n,能取到1和n。randrange 产的随机数区间只包含左极限,也就是左闭右开的1,n),

    5、1能取到,n取不到。randint产的随机数是在指定的某个区间内的个值,产的随机数是在指定的某个区间内的个值,randrange 产的随机数可以设定个步长,也就是个间隔。food_x=random.randint(Area_x0,Area_x1)#此处有疑问 food_y=random.randint(Area_y0,Area_y1)#如果物出现在蛇上,重来;while(food_x,food_y)in snake:food_x=random.randint(Area_x0,Area_x1)food_y=random.randint(Area_y0,Area_y1)return food_x,

    6、food_y#物风格def Food_Style():return Food_Style_Listrandom.randint(0,2)#返回随机的分值和颜def main():pygame.init()screen=pygame.display.set_mode(Screen_Width,Screen_Height)#初始化个准备显的窗或屏幕 pygame.display.set_caption(贪吃蛇)#Set the current window caption#得分字体设置 font1=pygame.font.SysFont(SimHei,24)#GO字体设置 font2=pygame

    7、.font.SysFont(None,72)fwidth,fheight=font2.size(GAME OVER)#程序bug修复:如果蛇在向右移动,快速点击分别施加向下、向左的命令,向下的命令会被覆盖,只有向左的命令被接受,直接GameOver#b变量为了防这个情况发 b=True#蛇 snake=init_snake()#物 food=Creat_Food(snake)food_style=Food_Style()#向控制 pos=(1,0)#启动游戏相关变量初始化 game_over=True#结束标志#是否开始,当start=True,game_over=True时,才显 GAME

    8、OVER game_start=False#开始标志 score=0#得分 orispeed=0.3#蛇初始速度 speed=orispeed#蛇速度 last_move_time=None pause=False#暂停while True:for event in pygame.event.get():if event.type=QUIT:sys.exit()elif event.type=KEYDOWN:if event.key=K_RETURN:if game_over:game_start=True game_over=False b=True snake=init_snake()fo

    9、od=Creat_Food(snake)food_style=Food_Style()pos=(1,0)#得分 score=0 last_move_time=time.time()elif event.key=K_SPACE:if not game_over:pause=not pause#以下为防蛇在向右移动时按向左键,导致GameOverelif event.key in(K_UP,K_w):if b and not pos1:#pos=(0,-1)b=Falseelif event.key in(K_DOWN,K_s):elif event.key in(K_DOWN,K_s):if b

    10、 and not pos1:pos=(0,1)b=Falseelif event.key in(K_LEFT,K_a):if b and not pos0:pos=(-1,0)b=Falseelif event.key in(K_RIGHT,K_d):if b and not pos0:pos=(1,0)b=False#填充背景 screen.fill(Back_Ground)#画格线、竖线for x in range(Size,Screen_Width,Size):pygame.draw.line(screen,Black,(x,Area_y0*Size),(x,Screen_Height)

    11、,Line_Width)#画格线、横线for y in range(Area_y0*Size,Screen_Height,Size):pygame.draw.line(screen,Black,(0,y),(Screen_Width,y),Line_Width)#蛇的爬过程if not game_over:curTime=time.time()if curTime-last_move_timespeed:#if not pause:b=True last_move_time=curTime next_s=(snake00+pos0,snake01+pos1)#如果吃到了物if next_s=f

    12、ood:snake.appendleft(next_s)score+=food_style0 speed=orispeed-0.03*(score/100)food=Creat_Food(snake)food_style=Food_Style()else:#在区域内if Area_x0=next_s0=Area_x1 and Area_y0=next_s1=Area_y1 and next_s not in snake:snake.appendleft(next_s)snake.pop()else:game_over=True#画物if not game_over:rect(Surface,c

    13、olor,Rect,width=0)第个参数指定矩形绘制到哪个Surface对象上第个参数指定颜第三个参数指定矩形的范围(left,top,width,height)第四个参数指定矩形边框的(0表填充矩形)例如绘制三个矩形:pygame.draw.rect(screen,BLACK,(50,50,150,50),0)pygame.draw.rect(screen,BLACK,(250,50,150,50),1)pygame.draw.rect(screen,BLACK,(450,50,150,50),10)#避免 GAME OVER的时候把 GAME OVER的字给遮住了 pygame.dra

    14、w.rect(screen,food_style1,(food0*Size,food1*Size,Size,Size),0)#画蛇for s in snake:pygame.draw.rect(screen,Dark,(s0*Size+Line_Width,s1*Size+Line_Width,Size-Line_Width*2,Size-Line_Width*2),0)Print_Txt(screen,font1,30,7,f速度:score/100)Print_Txt(screen,font1,450,7,f得分:score)Print_Txt(screen,font1,450,7,f得分

    15、:score)#画GameOverif game_over:if game_start:#print(GameOver)Print_Txt(screen,font2,(Screen_Width-fwidth)/2,(Screen_Height-fheight)/2,GAME OVER,Red)pygame.display.update()if _name_=_main_:main()运截图笔记补充1)蛇的移动,先根据向来判断,这使pos变量来记录向pos(1,0)/表当前蛇向右的向pos(-1,0)/表当前蛇向左的向pos(0,1)/表当前蛇向下的向pos(0,-1)/表当前蛇向上的向2)怎么能控制蛇的速度呢?其实是控制时间来刷新,我们知道所有的动作都在个循环完成的,也就是代码都直在运着。如我设置速度为1,表秒刷新次,那么蛇的移动也就是秒次,我们看到的也是秒移动格。当我们设置速度为0.5,表0.5秒刷新次,那我们就看到0.5秒移动格,速度就相对地看起来快了。参考博客(阿嘎多!)1、2、


    注意事项

    本文(Python贪吃蛇(完整代码+详细注释+粘贴即食).pdf)为本站上传会员【鱼**】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表




    页脚通栏广告
    关于我们 - 网站声明 - 诚招英才 - 文档分销 - 便捷服务 - 联系我们 - 成长足迹

    Copyright ©2010-2024   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:4008-655-100    投诉/维权电话:4009-655-100   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-2024(领证中)    



    关注我们 :gzh.png  weibo.png  LOFTER.png