python课程作业-贪吃蛇

现在整理经常会用到的课程作业( python第一弹,持续更新中…)

目录

  • python课程作业-贪吃蛇
    • 简介
    • 系统环境
    • pip安装依赖
    • 实现代码
    • 可能的错误
    • 错误解决
    • 运行结果

简介

现在经常需要用到各种作业,网上的资料存在着各种各样的问题,因此我就为了大家的方便,将这些收集整理并在本地进行验证。对这些代码或资料中能缺少、错误的部分加以修正和补充,确保按照我的步骤可以很简单的把这个代码运行出来,供大家当平时作业或者练习使用。

保证可以运行!!!

系统环境

windows 10
python 3.6、3.7、3.8

pip安装依赖

pip install pygame

如果要求不能使用pygame,可以见:贪吃蛇(二)


实现代码

新建“贪吃蛇.py”文件,下列代码直接复制过去就可以使用:

#-*- coding: utf-8 -*-
import pygame, sys, random, time
from pygame.locals import *pygame.init()## 这里如果找不到 可以下载资源
font_file = 'trebuc.ttf'
font_filename = 'C:\\Windows\\Fonts\\' + font_filefont = pygame.font.Font(font_filename,30)
mainClock = pygame.time.Clock()
wsurface = pygame.display.set_mode((800,600),0,32)
pygame.display.set_caption("Snake")Len = 20
snakeRect = []
for i in range(10,13):snakeRect.append(pygame.Rect(i * (Len) , 50 , Len, Len))
food = pygame.Rect(10 * (Len), 10 * (Len), Len, Len)
ml    = False
mr    = True
mu    = False
md    = False
score = 0
black = (0, 0, 0)
green = (0, 255, 0)
white = (255, 255, 255)
global FPSCLOCK
FPSCLOCK = pygame.time.Clock()
#####################################################
def judge():if snakeRect[0].left - 15 <= food.left <= snakeRect[0].left + 15 and snakeRect[0].top - 15 <= food.top <= snakeRect[0].top + 15:return True
def judge2(a, b):if a.left - 15 <= b.left <= a.left + 15 and a.top - 15 <= b.top <= a.top + 15:return True
def checkForKeyPress():#checkForQuit()for event in pygame.event.get([KEYDOWN, KEYUP]):if event.type == KEYUP:continuereturn event.keyreturn None
#######################################################
flagg = True
speed = 8
while True:for event in pygame.event.get():if event.type == QUIT:pygame.QUIT()sys.exit()if event.type == KEYDOWN:if event.key == K_r:snakeRect = []for i in range(10,13):snakeRect.append(pygame.Rect(i * (Len) , 50 , Len, Len))food = pygame.Rect(10 * (Len), 10 * (Len), Len, Len)ml    = Falsemr    = Truemu    = Falsemd    = Falsescore = 0flagg = Truespeed = 8if event.key == K_p:wsurface.fill(black)text_surface1 = font.render('Pause!' , True, (0, 0, 255))wsurface.blit(text_surface1, (10, 50))while checkForKeyPress() == None:pygame.display.update()FPSCLOCK.tick()if event.key == K_LEFT and mr == False:ml = Truemr = Falsemu = Falsemd = Falseif event.key == K_RIGHT and ml == False:ml = Falsemr = Truemu = Falsemd = Falseif event.key == K_UP and md == False:ml = Falsemr = Falsemu = Truemd = Falseif event.key == K_DOWN and mu == False:ml = Falsemr = Falsemu = Falsemd = Truehead = pygame.Rect(snakeRect[0].left,snakeRect[0].top,snakeRect[0].width,snakeRect[0].height)if flagg == False:continueif ml == True:head.right = head.left - 1if mr == True:head.left = head.right + 1if mu == True:head.bottom = head.top - 1if md == True:head.top = head.bottom + 1snakeRect.insert(0, head)#判断失败和重新游戏if head.right < 0 or head.left > 800 or head.bottom < 0 or head.top > 600 or snakeRect[0] in snakeRect[1:]:wsurface.fill(white)text_surface2 = font.render('Press R to restart!' , True, (0, 0, 255))wsurface.blit(text_surface2, (50, 80))pygame.display.update()while checkForKeyPress() == None:pygame.display.update()FPSCLOCK.tick()breakflagg = Falsecontinueflagg = Trueif judge():score = score + 10speed = speed + 1while True:flag = Truefood.left = random.randrange(10,800)food.top = random.randrange(10,600)for temp in snakeRect:if judge2(food, temp):flag = Falseif flag == True:breakelse:snakeRect.pop()wsurface.fill(black)for i in range(len(snakeRect)):pygame.draw.rect(wsurface,green,snakeRect[i])pygame.draw.rect(wsurface,white,food)text_surface = font.render(u"Score: " + str(score), True, (0, 0, 255))wsurface.blit(text_surface, (10, 50))pygame.display.update()mainClock.tick(speed)

可能的错误

报错:

FileNotFoundError: [Errno 2] No such file or directory: ‘C:\Windows\Fonts\simsunb.ttf’

原因:

报错的原因是缺少字体

错误解决

从下面连接下载字体,放入和.py文件同一个目录下:

链接:https://pan.baidu.com/s/1eeE8Mqm_XSyXqAnQPOORqQ
提取码:ssjp

并且将下列代码更改:

## 这里如果找不到 可以下载资源
font_file = 'trebuc.ttf'
font_filename = 'C:\\Windows\\Fonts\\' + font_file

为:

## 这里如果找不到 可以下载资源
# font_file = 'trebuc.ttf'
font_filename = './trebuc.ttf'

运行结果

参考文献:
python实现贪吃蛇:https://www.cnblogs.com/chengjian-physique/p/8083249.html

python课程作业-贪吃蛇相关推荐

  1. Python制作AI贪吃蛇,很多很多细节、思路都写下来了!

    前提:本文实现AI贪吃蛇自行对战,加上人机对战,读者可再次基础上自行添加电脑VS电脑和玩家VS玩家(其实把人机对战写完,这2个都没什么了,思路都一样) 很多人学习python,不知道从何学起. 很多人 ...

  2. Python制作AI贪吃蛇,细节、思路都写下来了!

    前提:本文实现AI贪吃蛇自行对战,加上人机对战,读者可再次基础上自行添加电脑VS电脑和玩家VS玩家(其实把人机对战写完,这2个都没什么了,思路都一样) 实现效果: 很多人学习python,不知道从何学 ...

  3. Python 简单实现贪吃蛇小游戏

    文章目录 1. pygame库的简介2. pygame库的安装3. python代码实现贪吃蛇小游戏4. pyinstaller打包成exe 很多人学习python,不知道从何学起. 很多人学习pyt ...

  4. python写一个游戏多少代码-使用Python写一个贪吃蛇游戏实例代码

    我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的类中,而不是在Snake类中. 特殊食物: 1.绿色:普通,吃了增加体型 2.红色:吃了减少体型 3.金色:吃了回到 ...

  5. python游戏脚本实例-使用Python写一个贪吃蛇游戏实例代码

    我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的类中,而不是在Snake类中. 特殊食物: 1.绿色:普通,吃了增加体型 2.红色:吃了减少体型 3.金色:吃了回到 ...

  6. python编程小游戏-10分钟用Python编写一个贪吃蛇小游戏,简单

    贪吃蛇,大家应该都玩过.小编当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最 ...

  7. 10分钟用python编写贪吃蛇小游戏_牛得一批!10分钟用Python编写一个贪吃蛇小游戏...

    贪吃蛇,大家应该都玩过.当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最主要 ...

  8. 贪吃蛇博弈算法python_算法应用实践:如何用Python写一个贪吃蛇AI

    原标题:算法应用实践:如何用Python写一个贪吃蛇AI 前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势 ...

  9. 10分钟python游戏_牛得一批!10分钟用Python编写一个贪吃蛇小游戏

    贪吃蛇,大家应该都玩过.当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最主要 ...

  10. Pygame实战:用 Python 写个贪吃蛇大冒险,保姆级教程。

    导语 ​ 贪吃蛇,大家应该都玩过.当初第一次接触贪吃蛇的时候 ,还是我爸的数字手机,考试成绩比较好,就会得到一些小奖励,玩手机游戏肯定也在其中首位,毕竟小孩子天性都喜欢~ 当时都能玩的不亦乐乎.今天, ...

最新文章

  1. 牛客16500 珠心算测试
  2. Python爬虫系列:使用selenium+Edge查询指定城市天气情况
  3. SAP License:ERP实施风险是什么?
  4. JPEG 及MJPEG开发笔记
  5. dpkg:处理 xxx (--configure)时出错解决办法,也可用于卸载软件出错的情况
  6. 苹果Mac测试及维护工具:​​​​​​​​Techtool Pro
  7. json 数据 生成 图表_比Excel更美观!你可知PhotoShop也能画图表
  8. 《终极算法》读书笔记(二)终极算法
  9. kmeans聚类理论篇
  10. 数学建模优化模型简单例题_简单数学建模100例
  11. 非科班学弟如何转行斩获 ATM 大厂的 Offer ?
  12. 智慧校园,用“智慧”培育“未来之花”
  13. 答案揭晓 | 关于云基础架构,你了解多少?
  14. jntoo.php,admin/website.php · 曹琪/shufadasai-englishi - Gitee.com
  15. 华为路由器:ipsec技术
  16. MogaFX—日元兑美元30多年来首次突破150日元
  17. 计算机整机制造业下滑,多因素导致全球PC出货量下滑 中国增速减缓
  18. python让灯闪烁_【掌控】mpython-光线传感器-一闪一闪亮晶晶灯光秀 - DF创客社区 - 分享创造的喜悦...
  19. 如何防护 DDoS 攻击?
  20. php显示文件内容,php读取文件内容_PHP读取文件内容并输出显示

热门文章

  1. 服务器修改硬盘顺序,服务器硬盘阵列硬盘顺序
  2. 安装SQL SERVER2019 安装CAB文件问题
  3. 3.3Packet Tracer - 实施基本连接
  4. 互联网周刊:移动互联网时代的运营商之失zz
  5. 在线地图地址3857+4326
  6. Linux下查看网络流量常用方法
  7. 线段树入门(线段懵逼树、加了一些解释,丰富了一下内容)
  8. 中科院ICTCLAS分词汉语词性标记集
  9. 激光雷达是什么?为什么移动机器人必不可少?
  10. 一文看懂抢注域名的相关问题解答