用pathon写贪吃蛇(二)

Python贪吃蛇双人大战 Python贪吃蛇双人大战 晚上家里小朋友要玩贪吃蛇游戏,还要跟我对战,一时半会我没想到去哪里下这样一个游戏,忽然灵机一动,可以自己写一个,顺便还可以跟小朋友展示一下程序员的厉害,于是开工。 原始版本 这是一个很基础的程序,自然不用从头写,在网上随便一搜,找到有人共享的代码,链接如下:https://www.cnblogs.com/qiu2013/p/6087627.html,据说是来源于《Ras... 阅读详情
之前已经写出了墙,现在要要把小蛇写出来,这里的小蛇是那种长度不变的,仅会随着键盘敲转变方向。
在根据键盘敲下的按键转变方向时,如果是直接掉头的方式,比如小蛇在向前走,但直接向后方转,这显然是无法做到的,所以对于这样的命令,我们认为它是无效的。
后一个点获得前一个点的坐标,蛇头根据按键转变方向

class Snake:
def init(self):
self.__position = [] # 存储位置信息
self.__position.append(Point(1, 2)) # 两个初始位置
self.__position.append(Point(1, 1))
self.speed = 1.6 # 移动速度
self.__toward = “d” # 移动方向 开始时默认向右走
@property
def toward(self): # 跟之前一样,把移动方向设定为property属性
return self.__toward

@toward.setter
def toward(self, t):						# "t"为传入的字符("w","s","a","d")
    s = self.__toward + t					# 这里这样设置是为了防止出现能直接掉头的尴尬场面
    if not (s == "ws"or s == "sw"or s == "ad"or s == "da"):
        self.__toward = t

# 移动
def step(self):
    # 只有头需要按照方向移动,其它“骨节”只需获取前一个骨节的坐标就可以了
    # 获取顺序为从尾到头
    for i in range(len(self.__position)-1, 0, -1):
        self.__position[i] = self.__position[i-1]	
    go = {							# wsad分别对应上下左右
        "w": Point(0, -1),
        "s": Point(0, +1),
        "a": Point(-1, 0),
        "d": Point(+1, 0)
    }
    # 蛇头的移动
    # 因为不能直接对x, y 两个属性进行修改(这里牵扯到内存的问题,如果直接修改
    # 两个属性值的话self.__position[1]的x, y属性值同样会被修改,因为此时两个对象
    # 指向的是同一块内存地址)所以这里实际应该是重新生成一个新的对象来替换
    self.__position[0] = Point(self.__position[0].x+go[self.__toward].x, self.__position[0].y+go[self.__toward].y)

def get_position(self):
    return self.__position				# 返回位置信息,之后同样传给display用于打印
【C语言笔记初级篇】第一章:C语言快速入门及注意事项 (1)第一个C语言程序 A:利用vs2010写C语言程序 1:按以下步骤新建工程 2:添加源文件,“.c”文件 B:第一个C语言代码 1:以下是基本的C语言程序 2:由于没有设置连接器,所以打印结果没有显示,按照如下步骤链接控制台 (2)数据类型 A:基本数据类型及占用字节 B:一些概念的梳理 概念一:关于计算机的单位 位(bit):计算机通过电路的开关和闭合处理信息,电路通... 阅读详情

相关推荐

WordPress主题开发实战:从零开始手把手教你创建自定义主题(含常用函数大全)

本文是一份WordPress主题开发实战指南,从零开始手把手教你创建自定义主题。内容涵盖主题核心文件结构、模板层级与循环机制、函数与钩子的运用,并附有详细的常用函数大全,帮助开发者彻底掌握主题开发的核心技能,实现从使用者到创造者的转变。

weixin_27943395的博客 257

Pycharm及python安装详细教程

首先我们来安装python 1、首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载。 2、下载完成后如下图所示 3、双击exe文件进行安装,如下图,并按照圈中区域进行设置,切记要勾选打钩的框,然后再点击Customize install

陌上行走的博客 76万+

CSP-J 复试考点

可以用来训练思维,对于学习时间短的同学,动态规划可以帮助你迅速进入编程状态,也有助于帮你发现题目背后可能隐藏的更简便的算法。动态规划、贪心都是和子问题相关的,动态规划的基本思想是将一个大的问题划分成子问题,接着分别求解,而且能够将一些重复的计算记忆化,大大提高效率。难度加大,会涉及到二分、动态规划之类的算法,容易遗漏考虑点,不易得全分,考试的时候要注意全面性。一般是压轴题,算法不明显,剪枝的搜索、动态规划、状压 DP、树形 DP 、树、图等。枚举算法是指,列举出所有可能的取值,从中找出最优解。

GuanHeTian的博客 2215

10年程序员职业生涯感悟—写给正在迷茫的你

希望能带给大家不一样的参考。或者能提前预防,少走弯路!

pythonandaiot的博客 1万+

FIFO应用于UART串口(含代码)

FIFO(First in first out)即先入先出,可以把它理解成一个缓存器,对于收发两端速度不一致,位宽不一致的情况可以使用FIFO作为收发两端中间的“调节剂”使数据可以进行正常发送。

m0_58544042的博客 2754

VS2019集成AddressSanitizer:C++内存错误检测实战指南

在C++开发中,内存管理是核心挑战之一,涉及堆、栈和全局变量的分配与释放。其原理在于程序运行时对内存地址的访问必须严格遵循分配边界和生命周期规则,否则会导致缓冲区溢出、释放后使用等严重错误。这类问题的技术价值在于直接影响程序的稳定性、安全性和性能,是高质量软件必须攻克的基础难题。应用场景广泛,从嵌入式系统到大型服务器软件,都需要可靠的内存错误检测机制。AddressSanitizer(ASan)作为一种编译时插桩技术,通过影子内存和运行时检查,能精准定位堆缓冲区溢出、释放后使用等隐蔽错误。本文以Visual

weixin_34356310的博客 279

Python入门基础知识总结(赶紧收藏)

Python入门基础知识总结(赶紧收藏)

Python84310366的博客 9万+

形位公差标注的常见误区与优化策略

本文深入解析机械设计中形位公差标注的常见误区与优化策略,特别针对NX2406用户提供实用技巧。从标注冗余、基准选择到公差值设定等五大误区入手,结合工程图实例展示如何提升标注精度与效率,帮助工程师避免常见错误,优化设计流程,确保零件功能实现与制造可行性。

info6的博客 246

Python基础 新手必学

新手必学 python零基础入门 简单易学 笔记

2302_79100751的博客 1338

【雷达通信】雷达信号处理仿真【含Matlab源码 2509期】

雷达信号处理仿真 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 905

汇川Easy系列PLC系统PID指令编程应用(增量型)

增量式PIDS7-1200/1500增量式PID(输出归一化、支持PWM输出)_西门子1200pid算法公式-优快云博客文章浏览阅读1k次。本文介绍了S7-1200/1500 PLC中增量式PID算法的应用,包括输出归一化和PWM输出。通过详细解析,阐述了PID输出如何限制在0.0-1.0之间,并且如何将PID输出与PWM占空比关联,适用于温度等控制场景。

RXXW_Dor的博客 1427

Python入门教程(全网最详细),零基础入门到精通,从看这一篇开始!

一.初聊Python在学习Python之前,你不要担心自己没基础或“脑子笨”,我始终认为,只要你想学并为之努力,就能学好,就能用Python去做很多事情。在这个喧嚣的时代,很多技术或概念会不断兴起,我希望你能沉下心来去学习,不要急于求成,一步一个脚印。当你把某个技术学好、学精后,还是能做一些事情的,甚至能找到喜欢的工作或完成实践项目。程序语言没有最好,只有最适合。作为一名初学者,我非常推荐你学习Python,为啥?

m0_59236602的博客 11万+

汇川Easy系列PID_AT指令弹簧质量阻尼系统闭环控制仿真测试

汇川Easy系列PLC系统PID指令(温度控制PID应用编程)

RXXW_Dor的博客 766

用Python写了一个贪吃蛇大冒险小游戏

????????关注后回复“进群”,拉你进程序员交流群????????来源丨blog.youkuaiyun.com/weixin_45087775一、游戏简介1.1 游戏操作及游戏规则(1)游戏开始后,通过键盘上下左右键...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 1262

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

python贪吃蛇_python实现贪吃蛇

原博文2017-12-22 00:26 −贪吃蛇的算法还是比较简单的,蛇的移动我是通过不停添加一个head方块,然后判断应该加到蛇头的哪个方向,加完后删掉蛇尾就行了,如果吃到食物就不删蛇尾。 只是一个贪吃蛇只需要70行代码左右就可以了,后来又加了计分,失败后重新游戏,暂停功能····结果...相关推荐2019-12-19 10:58 −# 画图蟒蛇绘制,和函数封装去掉注释即可运行 ```pytho...

weixin_39918682的博客 676

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

python写的贪吃蛇小游戏_使用Python第三方库pygame写个贪吃蛇小游戏

今天看到几个关于pygame模块的博客和视频,感觉非常有趣,这里照猫画虎写了一个贪吃蛇小游戏,目前还有待完善,但是基本游戏功能已经实现,下面是代码:# 导入模块import pygameimport random# 初始化pygame.init()w = 720 #窗口宽度h = 600 #窗口高度ROW = 30 #行数COL = 36 #列数#将所有的坐标看作是一个个点,定义点类c...

weixin_39735247的博客 173

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

python 贪吃蛇 100行_Python 100行写个贪吃蛇

import pygameimport sysimport random# 全局定义SCREEN_X = 600SCREEN_Y = 600# 蛇类# 点以25为单位class Snake(object):# 初始化各种需要的属性 [开始时默认向右/身体块x5]def __init__(self):self.dirction = pygame.K_RIGHTself.body = []for x ...

weixin_39866881的博客 108

Python编写简单贪吃蛇

1 引言 这几天刚开始学习python,想要写一个有趣的程序。再加上以前学习C语言的时候就想写一个贪吃蛇的程序,但是C语言写好像泰国繁琐。就一直没有实施。python来写这个好像就没那么复杂了。当然对于我这样的小白直接自己写肯定写不出来这个代码。还是在我参考网上大佬的代码,加上自己多次学习以后才搞出来的。先看看效果图: 2 开发前准备 首先我们要借助一个python的第三方库pygame来实现。...

qzm777的博客 564

python小游戏代码_100行python代码完成贪吃蛇小游戏,附上源码

大家小时候都玩过贪吃蛇吧?小编小时候可喜欢拿爸妈的手机玩了,厉害着呢!今天,小编就来用100行代码实现一个简易版的贪吃蛇。在网上,贪吃蛇教程蛮多的,但要安装蛮多库的,而且也不够清晰,今天的代码比较短,而且理解起来或者说你更改起来要简单一些。最终会实现效果如下:基本准备首先,我们需要安装pygame库,小编通过pip install pygame,很快就安装好了。在完成贪吃蛇小游戏的时候,我们需要知...

weixin_39997311的博客 294

如何用python玩贪吃蛇

#!/usr/bin/env python} #coding=utf-8 class Point: row = 0 col = 0 def __init__(self ,row ,col): self.row = row self.col = col def copy(self): return Point(row=self.row, col=self.col) import pygame import random p.

ljnnn77的博客 2296

用核桃编程编出来一款游戏,核桃编程小游戏制作

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理python中使用turtle绘制半圆形。PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取python免费学习资料以及群交流解答点击即可加入贪吃蛇游戏是一款经典的益智游戏,既简单又耐玩熟练掌握Python就业是不是好一点。回味童年经典,今天我们来一同学习贪吃蛇游戏的制作。

2301_81837718的博客 866

结对-结对编程项目作业名称-需求分析

结对-结对编程项目作业名称-需求分析 1 引言 此需求分析对“贪吃蛇”游戏做了全面细致的用户需求分析,明确了所要开发的游戏应该具有界面、性能以及功能,使软件开发人员能够更清楚的了解用户的需求,并在此基础上进一步提出了概要设计说明书和完成后续设计与开发工作。 2任务概述 2.1目标 “贪吃蛇”游戏以它简单有趣的特性为众多人群所喜欢,这次...

weixin_30300523的博客 90

python连连看小游戏_请用PYTHON编一个小游戏,如五子棋,连连看,贪吃蛇,扫雷,计算器等等...

展开全部#!/usr/bin/pythonfrom Tkinter import *import randomclass snake(Frame):def __init__(self, master=None):Frame.__init__(self, master)self.body = [(0,0)]self.bodyid = []self.food = [ -1, -1 ]self.food...

weixin_39928648的博客 402

Python入门:Python math模块全面学习教程

Python入门:Python math模块全面学习教程,本文是 Python math 模块的全面学习教程,先介绍模块基础,指出其为 Python 标准库组件,无需额外安装,导入后可通过 dir () 查看内容,强调其函数返回值多为浮点数,复数计算需用 cmath 模块。接着详解模块预定义的欧拉数、圆周率等常用常量及用法示例。然后按数值操作、三角函数、对数与指数、组合数学、距离与判断五大类,结合具体代码示例,讲解 math 模块核心方法,如数值舍入、三角函数单位转换、复利计算、抽奖概率计算、两点距离计算等

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 1万+

Python究竟是什么?你确定真的了解Python了嘛?

1、python到底是什么? Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,**简单来说,Pyhton就是一门编程语言!**但是它能提供高效的高级数据结构,还能简单有效地面向对象编程。Python作为目前热门的程序语言,拥有着超高的人气,并且Python和目前热门的人工智能有这密切相关的联系。 2、为什么大多数人选择学Python? 如今有很多的人学编程语言都会首选Python,为什么呢?因为Python相对于其他的语言比较容易上手些,是很适合编程初学

weixin_56537764的博客 3260

如何在树莓派上进行python编程_树莓派Python编程指南

树莓派Python编程指南作者:(美)布拉德伯里(Bradbury,A.) 等著出版日期:2015年01月文件大小:35.95M支持设备:¥30.00仅供试读适用客户端:言商书局iPad/iPhone客户端:下载 Android客户端:下载PC客户端:下载更多详情:查看?对图书下载、阅读卡购买有疑问:立即进入帮助中心>>图书简介目录《树莓派Python编程指南》资深Linux极客撰写,系统且深入地...

weixin_39932479的博客 701
上一篇: 用python写贪吃蛇(1)
下一篇: 用python写贪吃蛇(三)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值