#python初学个人笔记01- 用python做一个简易贪吃蛇游戏画蛇和苹果

Posted 1muv0111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#python初学个人笔记01- 用python做一个简易贪吃蛇游戏画蛇和苹果相关的知识,希望对你有一定的参考价值。

编译器:VSCODE python版本:3.8

上文中我们已经熟悉了python中的turtle库,现在我们要思考:如何在游戏里面画一条蛇?如何画苹果?

1 - 设计一条小蛇

先不要想太多,现在我们需要做的仅仅只是画一条简易的小蛇,而不考虑它的操控与运动。
在上一章的末尾,我们已经成功的画出了一个带有箭头的小红色方格了,你是否已经想到,我们可以建立多个小方格,把它连接起来,就是一条完整的小蛇了?

参考上一次我们运行的程序,我们已经画了一个带箭头的红色方格,那如果我们在不同的点上画一个方格,连起来就是一个长方形,再更改一下颜色,你是不是发现创建一个小蛇其实很简单?
你可能在代码里输入了如下:

square(0,0,10,"black")
square(10,0,10,"black")
square(20,0,10,"black")
square(30,0,10,"black")
square(40,0,10,"black")

done()

运行起来!它的确画出来了五个连续的正方形,但这个代码不够“好”,它太繁琐了,画五个还行,如果画1000个呢?有没有什么办法能让他以更简单的形式来呈现,并且我们考虑到后期游戏开发中可能会多次引用修改这个黑色小方格。
我们将用到 list - 列 、for循环。
list,顾名思义,就是创造一列可供我们调用列表,同时,列表是可变的——我们可以改变列表的内容。

snake=[[0,0],[10,0],[20,0],[30,0],[40,0],[50,0]]

这样,我们就建立了一个名为snake的序列。接下来就是调用它了!

for n in range(len(snake)): #for循环 
    square(snake[n][0],snake[n][1],10,"black") #当n=0时,说明调用snake函数的第一个参数,即[0],[0],当n=1时,说明调用第二个参数,即[10],[0]

试试看!是不是和刚刚的一模一样。这就是循环的强大之处。
现在,你可能还没发现list的优点所在,等到后期开发的时候,你会发现它的强大之处的!

但是,一条带着箭头的蛇,总是怪怪的,有没有什么方法能让箭头消失呢?还有我们该如何让蛇从程序启动一开始就画好,而不是程序打开后再画呢?

这就涉及turtle库的问题了,我们打开document python:https://docs.python.org/zh-cn... ,找到了两个关于此的函数

一个是hideturtle() - 让海龟隐藏起来 (实际上就是箭头)
一个是tracer(False) - 禁用海龟动画并设置刷新图形的延迟时间
运行起来!果然箭头不在了,一条完整的蛇呈现在屏幕中间。

2 - 设计一个会动的苹果

到这里了,你肯定不会再困惑于如何设计一个苹果。
我们当然希望苹果不是在一成不变的位置,而是能够随即的产生。这就要引用到random的randrange函数。
https://docs.python.org/zh-cn...

apple_x=randrange(-20,20)*10  
apple_y=randrange(-20,20)*10

square(apple_x,apple_y,10,\'red\')

这样,一个会动的苹果(每一次打开,苹果的位置都会随即分配)就搞定了!

3 - 第二期完整代码

from turtle import *
from gamebase import square
from random import randrange
hideturtle()
tracer(False)
snake=[[0,0],[10,0],[20,0],[30,0],[40,0],[50,0]]
apple_x=randrange(-20,20)*10
apple_y=randrange(-20,20)*10

for n in range(len(snake)): 
    square(snake[n][0],snake[n][1],10,"black")

square(apple_x,apple_y,10,\'red\')



done()

4 - 如何让小蛇动起来?(下期)

聪明的你可能已经想到了,让小蛇动起来,让屏幕里面的小方块添头去尾,一个静态的蛇就会变成一个动态的蛇,如何用代码实现?

5 - 个人总结

1 编写一个程序之前要先设计它的流程,并以代码的形式思考设计的可行性。
2 for循环、list(列)
3 当困惑时,要善于借助互联网、书籍查找资料
4 自己动手打代码,哪怕照着打。

以上是关于#python初学个人笔记01- 用python做一个简易贪吃蛇游戏画蛇和苹果的主要内容,如果未能解决你的问题,请参考以下文章

Python Tornado初学笔记之数据库

Python2 爬虫初学笔记

初学python,感受和C的不同

初学python,感受和C的不同

python笔记 PyQt4初学随笔[一些有趣的异常]

python 学习笔记01