python程序写蛇_如何用Python画一条蛇

先上效果图

最近又打算重新学习Python了,

之前也入门过Python,

但是弄完Python的开发环境后,

停留在print("hello world")阶段

非科班出身,

没有一点编程基础,

又没有大神带我飞,

看书太枯燥,看视频跟不上了,

一句话总结就是“一懒二拖延三不读书”

这篇东西就当做是学习Python的笔记吧

1

2

言归正传,如何用Python画一条蛇?

请确保已经安装了Python开发环境,

然后打开IDLE,新建文件,

输入以下代码,最后按下F5

import turtle

def drawSnake(rad, angle, len, neckrad):

for i in range(len):

turtle.circle(rad,angle)

turtle.circle(-rad,angle)

turtle.circle(rad,angle/2)

turtle.fd(rad)

turtle.circle(neckrad+1,180)

turtle.fd(rad*2/3)

def main():

turtle.setup(1300, 800, 0, 0)

pythonsize=30

turtle.pensize(pythonsize)

turtle.pencolor("yellow")

turtle.seth(-40)

drawSnake(40,80,5,pythonsize/2)

main()

import 用来引入外部函数库,turtle是Python中一个流行的绘制图像的函数库。turtle中文名龟,可以想象成一只乌龟在一个平面直角坐标系中,乌龟根据一组函数的指令来决定前进的方向和方式。是它在平面坐标系中移动的轨迹所绘制的图形。

def用来定义函数,函数用来表达一个功能,函数名称就是这段代码的名字。def所定义的函数在程序中未经调用不能够直接执行,需要通过函数名调用才能执行。def后连续的缩进语句都是这个函数的部分。在整个蟒蛇函数中,首先调用的是main函数,在main函数最后调用drawSnake函数。

在main函数中第一行的turtle.setup(1300, 800, 0, 0),意思是启动一个图形窗口,四个参数分别是启动窗口的宽度和高度,以及启动时窗口在平面坐标中的位置。

启动的窗口

pythonsize=30

turtle.pensize(pythonsize)

这一段表示运行轨迹的宽度,Pythonsize表示一个输入参数,在这里是30,输入不同的数值宽度会不同。

turtle.pencolor("yellow")表示运行轨迹的颜色

turtle.seth(-40)表示运行的方向,负值表示相反的方向。在平面直角坐标系中,0表示向东,180表示向西,90表示向北,270表示向南。

main函数确定了轨迹运行的大小、颜色、运行方向以及初始的爬行方位,最后调用drawSnake函数,启动绘制的功能。在main函数中的drawSnake(40,80,5,pythonsize/2)对应drawSnake函数中的drawSnake(rad, angle, len, neckrad)。

其中drawSnake函数中的几个参数是自定义的,

turtle.circle(rad,angle),参数rad描述了圆形轨迹半径的位置,参数angle表示沿着圆形爬行的弧度值。

turtle.fd(rad),也叫turtle.forward()函数。表示向前爬行移动的距离。

通过修改函数的参数值可以得到不同的图形,

比如

进阶玩法还有绘制五角星

End

大概就是这样了,

说实话就算是看懂了代码,我也想不到这样做

现阶段只能多码代码了,说不定码多了就有感觉了

Python中,我们可以使用pygame库来创建游戏或动,包括绘制彩色的。以下是一个简单的例子,展示了如何用pygame一条彩色: ```python import pygame import sys # 初始化pygame pygame.init() # 设置窗口大小 screen_width = 600 screen_height = 400 screen = pygame.display.set_mode((screen_width, screen_height)) # 的颜色和初始位置 snake_color = (0, 255, 0) # 绿色 snake_pos = [(50, 50), (49, 50), (48, 50)] # 初始三个点 # 游戏循环 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() keys = pygame.key.get_pressed() if keys[pygame.K_UP]: snake_pos.insert(0, (snake_pos[0][0], snake_pos[0][1] - 10)) elif keys[pygame.K_DOWN]: snake_pos.insert(0, (snake_pos[0][0], snake_pos[0][1] + 10)) elif keys[pygame.K_LEFT]: snake_pos.insert(0, (snake_pos[0][0] - 10, snake_pos[0][1])) elif keys[pygame.K_RIGHT]: snake_pos.insert(0, (snake_pos[0][0] + 10, snake_pos[0][1])) # 检查边界和碰撞 if snake_pos[0][0] < 0 or snake_pos[0][0] > screen_width - 10 or \ snake_pos[0][1] < 0 or snake_pos[0][1] > screen_height - 10: print("Game Over!") pygame.quit() sys.exit() for pos in snake_pos[:-1]: if pos == snake_pos[-1]: print("Game Over!") pygame.quit() sys.exit() # 绘制身 for pos in snake_pos: pygame.draw.rect(screen, snake_color, [pos[0], pos[1], 10, 10]) # 更新屏幕 pygame.display.update() ``` 在这个示例中,我们首先导入pygame,然后设置窗口大小并初始化。游戏循环中,我们监听键盘事件移动,并检查是否达到边界或自相撞。每次循环都会更新的位置,并重新绘制身。运行此程序会看到一个绿色的小在屏幕上移动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值