紧接上回,已经完成了单独的贪食蛇的控制,但是呢,居然没有苹果可以吃,所以,非常简单的加入苹果,同时呢,修改一下主程序中贪食蛇的创建,单独编写一个贪食蛇身体生成函数,这样将来要做双蛇也很简单了。

#创建一条新的蛇
def create_new_snake():snake_body = []snake_x = random.randint(5, rows - 5)snake_y = random.randint(5, columns - 5)snake_body.append([snake_x, snake_y])snake_body.append([snake_x, snake_y + 1])snake_body.append([snake_x, snake_y + 2])return snake_body

把主程序中所有生成新蛇的地方换成

snake = create_new_snake()

创建新苹果,苹果不能出现在蛇的身体里,所以

def create_new_apple(snake_body):apple_in_game = Falsewhile not apple_in_game:apple_x = random.randint(0, rows - 1)apple_y = random.randint(0, columns - 1)# print(apple_x, apple_y)if (apple_x, apple_y) not in snake_body:new_apple = pygame.image.load('apple.png')new_apple = pygame.transform.scale(new_apple, (tile_size - 2, tile_size - 2))apple_x_location = apple_y * tile_size + x_margin/2apple_y_location = apple_x * tile_size + y_margin/2display.blit(new_apple, (apple_x_location, apple_y_location))apple_in_game = Truereturn new_apple, (apple_x, apple_y), apple_x_location, apple_y_location

在主程序中,主循环之前创建一个苹果

if __name__ == '__main__':pygame.init()snake = create_new_snake()# 未按下按键时,默认的初识移动方向direction = directions[random.randint(0, 3)]# 创建一个小苹果apple, apple_location, apple_left, apple_top = create_new_apple(snake)# 吃到苹果标志apple_was_eaten = False

因为蛇与苹果之间有交互关系,如果蛇吃到苹果,那么蛇的身体会增加一格,也就是此次循环不删除列表的最后一个元素,所以定义了一格标志位。

在主循环中,与监测按键平级的地方,放入蛇与苹果关系检查。

        if apple_location in snake:apple, apple_location, apple_left, apple_top = create_new_apple(snake)apple_was_eaten = Truemy_score += 1

无论

python编写小游戏之三入最最简陋简单贪食蛇编写2相关推荐

  1. 配合理lcd的c语言小游戏,51单片机+LCD12864做的贪食蛇和俄罗斯方块小游戏分享

    //12864并行接口参考程序,控制器st7920 #include "reg52.h" #include "Lcd12864.h" #include &quo ...

  2. python经典小游戏五子棋,适合python编程的小游戏

    python入门可以做的小游戏 1.Python入门拼图小游戏简单介绍:将图像分为m×n个矩形块,并将图像右下角的矩形块替换为空白块后,将这些矩形块随机摆放成原图像的形状. 2.Python入门推箱子 ...

  3. python入门小游戏代码20行,python入门小游戏代码

    python入门可以做的小游戏 1.Python入门拼图小游戏简单介绍:将图像分为m×n个矩形块,并将图像右下角的矩形块替换为空白块后,将这些矩形块随机摆放成原图像的形状. 2.Python入门推箱子 ...

  4. 10个python入门小游戏,零基础打通关,就能掌握编程基础

    前言 不会python就不能用python开发入门级的小游戏? 当然不是,我收集了十个python入门小游戏的源码和教程,并且即使你没有python基础,只要跟着这十个小游戏的开发详细教程去做,以及有 ...

  5. 一分钟教你学会python_十分钟教你学会python编写小游戏

    原标题:十分钟教你学会python编写小游戏 看过,估计大家都已经精通了吧,好的,话不多说,今天就活学活用,用python来编写纸牌游戏21点,江湖人称黑杰克,BLACK JACK-(注意法式卷舌). ...

  6. python小游戏之三

    猜拳游戏 Python代码实现猜拳小游戏 Python代码实现猜拳小游戏_zhangtongyuan0909的博客-CSDN博客_python猜拳游戏代码 用python中类与对象写一个猜拳游戏 用p ...

  7. python编写小游戏17_十分钟教你学会python编写小游戏

    原标题:十分钟教你学会python编写小游戏 看过,估计大家都已经精通了吧,好的,话不多说,今天就活学活用,用python来编写纸牌游戏21点,江湖人称黑杰克,BLACK JACK-(注意法式卷舌). ...

  8. 第一次用python写小游戏

    记一次用python开发小游戏的经历 在学习if语句和循环时,突然想起初中时玩过一款叫<黑道圣徒3>的游戏,里面有一个文字冒险的小游戏,看样子能用if实现,就想着把它做出来. 游戏玩法 开 ...

  9. 用c语言编写的打字母游戏,用C语言编写小游戏——“井字棋”

    原标题:用C语言编写小游戏--"井字棋" 作者:Milo Yip 来源:知乎 原文链接:https://zhuanlan.zhihu.com/p/39581573 在 Milo Y ...

最新文章

  1. 最近对Allegro的几个总结
  2. Server Application Unavailable
  3. 三种运动让身高增长4-10cm
  4. Java 洛谷 P5461 赦免战俘讲解
  5. win101909要不要更新_win10更新好还是不更新_win10更新有什么用
  6. java向Excel文件写入数据
  7. DevOps到底是什么意思?
  8. 20张可视化大屏,给数据分析师最全的大屏模板!无代码直接套用
  9. weblogic服务器连接池配置细节
  10. 时间序列预测算法总结
  11. 博士申请 | 皇家墨尔本理工大学鲍芝峰教授招收数据挖掘方向全奖博士生
  12. 腾讯会议 .wemta 文件如何转码成 mp4 文件
  13. docker的离线安装方法和网络源安装方法、内网环境linux脚本批量安装docker、安装docker-compose
  14. 台式电脑点关闭计算机关不了,台式电脑关机关不了怎么办
  15. LeetCode——5776. 判断矩阵经轮转后是否一致(Determine Whether Matrix Can Be Obtained By Rotation)[简单]——分析及代码(Java)
  16. EB-Boost :智慧景区共享单车中长期投放量精准预测方法
  17. 1093:计算多项式的值
  18. linux设置系统时间戳
  19. Windos测试IP和端口是否能访问
  20. 美赛数模论文之公式写作

热门文章

  1. 苹果手机微信语音没声音怎么回事_有没有iOS便签软件?想在苹果手机上用便签记事...
  2. 天上掉馅饼?当心旅行社的“八大陷阱”
  3. C语言 逆序输出数组元素
  4. MySQL联合索引(abc)命中规则
  5. python占位符怎么使用
  6. php实现图片液化,ps液化滤镜怎么用 ps液化滤镜功能教程
  7. 计算机主板元件及作业,电脑主板元器件认识(1).ppt
  8. 推荐一本经典的操作系统和Linux原理书
  9. 一封2014年回怼微软坑爹正版计划的信
  10. 高性能游戏本搭服务器,用过这些高性能游戏本, 才知道什么叫优秀