bat小游戏代码大全
时间: 2024-02-03 20:09:43 浏览: 44
以下是两个关于贪吃蛇游戏的Python代码示例:
1. 百行Python代码实现贪吃蛇游戏:
```python
import pygame
import sys
import random
# 初始化游戏
pygame.init()
# 设置游戏窗口大小
window_width = 800
window_height = 600
window_size = (window_width, window_height)
window = pygame.display.set_mode(window_size)
pygame.display.set_caption("贪吃蛇游戏")
# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
green = (0, 255, 0)
# 定义贪吃蛇的初始位置和大小
snake_size = 20
snake_x = window_width / 2
snake_y = window_height / 2
# 定义贪吃蛇的移动速度
snake_speed = 10
snake_x_change = 0
snake_y_change = 0
# 定义食物的初始位置和大小
food_size = 20
food_x = round(random.randrange(0, window_width - food_size) / 20) * 20
food_y = round(random.randrange(0, window_height - food_size) / 20) * 20
# 定义贪吃蛇的身体
snake_body = []
snake_length = 1
# 定义游戏结束的标志
game_over = False
# 游戏主循环
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
snake_x_change = -snake_size
snake_y_change = 0
elif event.key == pygame.K_RIGHT:
snake_x_change = snake_size
snake_y_change = 0
elif event.key == pygame.K_UP:
snake_y_change = -snake_size
snake_x_change = 0
elif event.key == pygame.K_DOWN:
snake_y_change = snake_size
snake_x_change = 0
# 更新贪吃蛇的位置
snake_x += snake_x_change
snake_y += snake_y_change
# 判断是否吃到食物
if snake_x == food_x and snake_y == food_y:
food_x = round(random.randrange(0, window_width - food_size) / 20) * 20
food_y = round(random.randrange(0, window_height - food_size) / 20) * 20
snake_length += 1
# 绘制游戏窗口
window.fill(black)
pygame.draw.rect(window, green, [food_x, food_y, food_size, food_size])
snake_head = []
snake_head.append(snake_x)
snake_head.append(snake_y)
snake_body.append(snake_head)
if len(snake_body) > snake_length:
del snake_body[0]
for segment in snake_body[:-1]:
if segment == snake_head:
game_over = True
for segment in snake_body:
pygame.draw.rect(window, white, [segment[0], segment[1], snake_size, snake_size])
pygame.display.update()
# 判断游戏是否结束
if snake_x < 0 or snake_x >= window_width or snake_y < 0 or snake_y >= window_height:
game_over = True
pygame.time.Clock().tick(snake_speed)
# 退出游戏
pygame.quit()
sys.exit()
```
2. 使用set数据结构判断贪吃蛇是否咬到自身的代码:
```python
def game_over(snake):
broad_x, broad_y = snake.get_head()
flag = 0
old = len(snake.item)
new = len(set(snake.item))
if new < old:
flag = 1
if broad_x == 0 or broad_x == BOARDWIDTH - 1:
flag = 1
if broad_y == 0 or broad_y == BOARDHEIGHT - 1:
flag = 1
if flag:
return True
else:
return False
```
相关推荐
![bat](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)