首页 > 编程语言 >Python代码玩遍童年的小游戏

Python代码玩遍童年的小游戏

时间:2023-07-23 12:34:44浏览次数:45  
标签:10 head 游戏 Python freegames 小游戏 玩遍 snake

贪吃蛇,吃豆人,迷宫,井字游戏......这些小单击游戏我相信大家小的时候肯定玩过,或许在某个时段还沉迷过.
随着年龄的增长,这些小游戏离我们越来越远,但是我相信大家的童心还是一直在的
今天就分享一个真正可以玩耍的GitHub项目 --- free-python-games

安装与使用

python大家都懂的,安装第三方库非常简单

pip install freegames

Python

由于该项目中的所有游戏均是基于Python内置模块Turtle制作,所以没有太多依赖,安装不会有困难

安装完之后我们可以使用 python -m freegames list 来查看所有的游戏列表

 

编辑

图1

贪吃蛇

现在我们可以使用一行代码启动相关游戏,比如贪吃蛇snake

python -m freegames.snake

Python

复制

 

编辑

图2

贪吃蛇的玩法想必不用过多解释了,使用键盘⬆️⬇️⬅️➡️即可操控

吃豆人

吃豆人没玩过也应该听过,使用下面的代码可以启动一个类似吃豆人的游戏

python -m freegames.pacman

Python

复制

 

编辑

图3

Flappy

Flappy这个游戏和之前非常火的Flappy bird十分类似

 

编辑

图4

只需要更换游戏名即可启动

python -m freegames.flappy

Python

复制

 

编辑

图5

这次需要不断点击鼠标来控制绿色小圆点飞行,实测比flappy bird难度要更高一点

Memory

Memory翻译过来是记忆,该游戏给出一些宫格,点击每一个小宫格会显示背后藏的数字,但会快速消失,当你成功选中两个相同的数字之后就会显示为拼图,可玩性还是很高的

python -m freegames.memory

Python

复制

 

编辑

图8

迷宫

这个游戏应该就不用介绍了,找出走出迷宫对应的路径即可

python -m freegames.maze

Python

复制

 

编辑

图7

Tic Tac Toe

这个游戏我打赌你一定玩过,单击屏幕即可放置一个X或O,当三个同样的图案在一条直线上就赢了

python3 -m freegames.tictactoe

Python

复制

 

编辑

图8

查看源码

还有更多的游戏这里就不再一一介绍,Turtle我们并不陌生,所以当我们玩游戏时应该思考开发者是怎样实现的。使用下面的代码即可在当前目录下生成对应游戏的源码

"免费的python游戏将游戏和学习结合在一个灵活的环境中 减少编程等困难主题的压力"

python3 -m freegames copy snake

Python

复制

执行之后,在当前目录下就多了一个snake.py文件,打开就能查看游戏对应的逻辑

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

"""Snake, classic arcade game.

 

Exercises

 

1. How do you make the snake faster or slower?

2. How can you make the snake go around the edges?

3. How would you move the food?

4. Change the snake to respond to arrow keys.

 

"""

 

from turtle import *

from random import randrange

from freegames import square, vector

 

food = vector(0, 0)

snake = [vector(10, 0)]

aim = vector(0, -10)

 

def change(x, y):

    "Change snake direction."

    aim.x = x

    aim.y = y

 

def inside(head):

    "Return True if head inside boundaries."

    return -200 < head.x < 190 and -200 < head.y < 190

 

def move():

    "Move snake forward one segment."

    head = snake[-1].copy()

    head.move(aim)

 

    if not inside(head) or head in snake:

        square(head.x, head.y, 9, 'red')

        update()

        return

 

    snake.append(head)

 

    if head == food:

        print('Snake:', len(snake))

        food.x = randrange(-15, 15) * 10

        food.y = randrange(-15, 15) * 10

    else:

        snake.pop(0)

 

    clear()

 

    for body in snake:

        square(body.x, body.y, 9, 'black')

 

    square(food.x, food.y, 9, 'green')

    update()

    ontimer(move, 100)

 

setup(420, 420, 370, 0)

hideturtle()

tracer(False)

listen()

onkey(lambda: change(10, 0), 'Right')

onkey(lambda: change(-10, 0), 'Left')

onkey(lambda: change(0, 10), 'Up')

onkey(lambda: change(0, -10), 'Down')

move()

done()

Python

现在我们就可以学习源码并进行修改来实现更多的功能与玩法,抓紧试试吧!

到此这篇关于一行Python代码玩遍童年的小游戏的文章就介绍到这了,

标签:10,head,游戏,Python,freegames,小游戏,玩遍,snake
From: https://www.cnblogs.com/yeci/p/17574866.html

相关文章

  • 用c语言实现2048小游戏
    ​ #include<time.h> #include<stdlib.h> #include<conio.h> #include<stdio.h> #include<windows.h> #definex026 #definey01 HANDLEhOutput=GetStdHandle(STD_OUTPUT_HANDLE); /*显示声明*/ voidp(int*a,inti,intx,inty); /*部......
  • Python使用Flask开发Web服务 - 裴 - flask的路由route的知识点演示
     默认是支持GET:  修改后,只支持post: 也可以getpost都支持 ......
  • python: socket
     """网络发送信息"""importsocketimportthreadingdefhandlesend(tcpclient):"""发送:return:"""whileTrue:message=input()tcpclient.send(message.encode()......
  • python+playwright 学习-67 抓取 table 表格数据
    前言最近有小伙伴提到如何抓取table表格上的数据,table表格的数据很简单,就是行和列。可以按行抓取,也可以按列抓取。获取table某一列的数据抓取第3列(项目名称)所有数据定位方式$x('//table/tbody/tr/td[3]')于是可以看到当前页面的第3列数据被全部定位到接下来就可以......
  • python 输入n行字符串
    如何实现Python输入n行字符串流程概述下面是实现Python输入n行字符串的一般流程:步骤描述1获取用户输入的行数n2创建一个空列表lines来存储字符串3使用循环n次,每次获取用户输入的字符串,并将其添加到lines列表中4最终得到的lines列表包含了用户输入的n行字......
  • python 循环往两个占位符
    Python循环往两个占位符循环是编程中常用的一种控制结构,它允许我们重复执行一段代码,达到简化代码和提高效率的目的。Python是一种高级编程语言,提供了多种循环结构,其中包括通过占位符循环的方法。在本文中,我们将介绍如何使用Python中的循环来填充两个占位符。什么是占位符?在......
  • python 输出为npy文件
    如何将Python输出为npy文件作为一名经验丰富的开发者,我很高兴能够教会你如何将Python的输出保存为npy文件。在本文中,我将为你详细介绍整个流程,并提供每一步所需的代码以及注释其意义。1.导入所需的库在开始之前,我们需要导入numpy库,因为它提供了将数据保存为npy文件的功能。imp......
  • python 使用Queue需要引入哪个包
    Python中使用Queue需要引入哪个包在Python中,如果我们想要使用队列(Queue)数据结构,我们需要引入queue模块。queue模块提供了实现各种队列类型的类,包括FIFO(先进先出)队列、LIFO(后进先出)队列和优先级队列等。通过引入queue模块,我们可以很方便地在我们的代码中使用队列。引入队列模块首......
  • python 循环list
    Python循环列表解析在Python编程中,循环是一种重要的控制结构。循环使我们能够重复执行一段代码,以便在处理大量数据或需要重复操作时提高效率。Python提供了多种循环结构,其中最常用的是for和while循环。本文将重点介绍如何使用循环来处理列表数据。列表简介在了解如何循环列表之......
  • python 判断变量是否是bytes
    Python判断变量是否是bytes概述在Python中,判断变量是否是bytes类型可以通过一系列步骤来实现。本文将介绍这个过程,并提供相应的示例代码。步骤下面是判断变量是否是bytes类型的流程图:步骤描述步骤1检查变量是否是bytes类型步骤2如果是bytes类型,则变量是bytes......