最简单python游戏(python编程代码游戏)
这是我们小时候最喜欢的游戏。实际上,我们可以通过导入两个模块在python中编写这个游戏!这太酷了!
我们开始吧!
首先,我们需要安装turtle。如果你还没有安装它,打开你的cmd并输入下面的命令。
pip install turtle
现在我们将安装随机模块。random模块用于生成随机数。在cmd中输入以下命令。
pip install random2
编写代码并亲自尝试,享受游戏!
游戏代码
import turtle import random w = 500 h = 500 food_size = 10 delay = 100 offsets = { "up": (0, 20), "down": (0, -20), "left": (-20, 0), "right": (20, 0) } def reset(): global snake, snake_dir, food_position, pen snake = [[0, 0], [0, 20], [0, 40], [0, 60], [0, 80]] snake_dir = "up" food_position = get_random_food_position() food.goto(food_position) move_snake() def move_snake(): global snake_dir new_head = snake[-1].copy() new_head[0] = snake[-1][0] + offsets[snake_dir][0] new_head[1] = snake[-1][1] + offsets[snake_dir][1] if new_head in snake[:-1]: reset() else: snake.append(new_head) if not food_collision(): snake.pop(0) if snake[-1][0] > w / 2: snake[-1][0] -= w elif snake[-1][0] < - w / 2: snake[-1][0] += w elif snake[-1][1] > h / 2: snake[-1][1] -= h elif snake[-1][1] < -h / 2: snake[-1][1] += h pen.clearstamps() for segment in snake: pen.goto(segment[0], segment[1]) pen.stamp() screen.update() turtle.ontimer(move_snake, delay) def food_collision(): global food_position if get_distance(snake[-1], food_position) < 20: food_position = get_random_food_position() food.goto(food_position) return True return False def get_random_food_position(): x = random.randint(- w / 2 + food_size, w / 2 - food_size) y = random.randint(- h / 2 + food_size, h / 2 - food_size) return (x, y) def get_distance(pos1, pos2): x1, y1 = pos1 x2, y2 = pos2 distance = ((y2 - y1) ** 2 + (x2 - x1) ** 2) ** 0.5 return distance def go_up(): global snake_dir if snake_dir != "down": snake_dir = "up" def go_right(): global snake_dir if snake_dir != "left": snake_dir = "right" def go_down(): global snake_dir if snake_dir!= "up": snake_dir = "down" def go_left(): global snake_dir if snake_dir != "right": snake_dir = "left" screen = turtle.Screen() screen.setup(w, h) screen.title("Snake") screen.bgcolor("blue") screen.setup(500, 500) screen.tracer(0) pen = turtle.Turtle("square") pen.penup() food = turtle.Turtle() food.shape("square") food.color("yellow") food.shapesize(food_size / 20) food.penup() screen.listen() screen.onkey(go_up, "Up") screen.onkey(go_right, "Right") screen.onkey(go_down, "Down") screen.onkey(go_left, "Left") reset() turtle.done()
游戏截图
代码介绍
这是一个使用Python Turtle库编写的贪吃蛇游戏程序。Turtle库提供了图形界面和绘图功能,使得编写可视化程序更加简单。在这个程序中,通过控制贪吃蛇的移动方向,使其吃到食物并不断增长,同时避免撞到自己或边界。以下是程序的主要组成部分:
- 初始化设置:定义了窗口的宽度(w)和高度(h),食物大小(food_size),动画延迟时间(delay),以及贪吃蛇的初始位置和方向。
- 重置函数(reset):初始化贪吃蛇的位置、方向和食物的位置。
- 移动贪吃蛇函数(move_snake):根据当前方向移动贪吃蛇的头部,并更新贪吃蛇的身体。如果贪吃蛇头部与身体或边界发生碰撞,调用重置函数。每次移动后,通过清除之前绘制的图形并重新绘制贪吃蛇的身体,实现贪吃蛇的动画效果。
- 食物碰撞函数(food_collision):检查贪吃蛇的头部是否与食物碰撞,如果是,则更新食物的位置,并返回True;否则返回False。
- 获取随机食物位置函数(get_random_food_position):根据窗口尺寸和食物大小,随机生成食物的坐标。
- 获取距离函数(get_distance):计算两点之间的距离。
- 方向控制函数(go_up、go_right、go_down、go_left):根据按键输入改变贪吃蛇的移动方向。
- 创建窗口和画笔对象,并设置窗口的背景色、大小和标题。
- 监听按键事件,并将按键与相应的方向控制函数绑定。
- 调用重置函数开始游戏。
- 使用
turtle.done()
保持程序运行,直到窗口被关闭。
总体而言,这个程序实现了一个简单的贪吃蛇游戏,并提供了基本的界面交互和动画效果。