贪吃蛇编程程序代码是什么
其他 90
-
贪吃蛇是一款经典的游戏,它的编程程序代码可以用来实现游戏的逻辑和功能。下面是一个简单的贪吃蛇编程程序代码示例:
import pygame import time import random # 初始化pygame pygame.init() # 定义颜色 white = (255, 255, 255) yellow = (255, 255, 102) black = (0, 0, 0) red = (213, 50, 80) green = (0, 255, 0) blue = (50, 153, 213) # 设置显示窗口的宽度和高度 dis_width = 800 dis_height = 600 # 创建显示窗口 dis = pygame.display.set_mode((dis_width, dis_height)) pygame.display.set_caption('贪吃蛇') clock = pygame.time.Clock() snake_block = 10 snake_speed = 30 font_style = pygame.font.SysFont(None, 50) score_font = pygame.font.SysFont(None, 35) def our_snake(snake_block, snake_list): for x in snake_list: pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block]) def game_loop(): game_over = False game_close = False x1 = dis_width / 2 y1 = dis_height / 2 x1_change = 0 y1_change = 0 snake_List = [] Length_of_snake = 1 foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0 foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0 while not game_over: while game_close == True: dis.fill(blue) message("你输了!按Q-退出或者C-重新开始", red) pygame.display.update() for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_q: game_over = True game_close = False if event.key == pygame.K_c: game_loop() 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: x1_change = -snake_block y1_change = 0 elif event.key == pygame.K_RIGHT: x1_change = snake_block y1_change = 0 elif event.key == pygame.K_UP: y1_change = -snake_block x1_change = 0 elif event.key == pygame.K_DOWN: y1_change = snake_block x1_change = 0 if x1 >= dis_width or x1 < 0 or y1 >= dis_height or y1 < 0: game_close = True x1 += x1_change y1 += y1_change dis.fill(blue) pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block]) snake_Head = [] snake_Head.append(x1) snake_Head.append(y1) snake_List.append(snake_Head) if len(snake_List) > Length_of_snake: del snake_List[0] for x in snake_List[:-1]: if x == snake_Head: game_close = True our_snake(snake_block, snake_List) pygame.display.update() if x1 == foodx and y1 == foody: foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0 foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0 Length_of_snake += 1 clock.tick(snake_speed) pygame.quit() quit() game_loop()上述代码使用Python的pygame库实现了一个简单的贪吃蛇游戏。游戏窗口的大小为800×600,贪吃蛇和食物的大小为10×10。玩家通过上下左右箭头键控制贪吃蛇的移动,目标是吃掉食物并尽可能地延长贪吃蛇的长度。当贪吃蛇撞到边界或自己的身体时,游戏结束。玩家可以选择重新开始或退出游戏。
1年前 -
贪吃蛇是一款经典的游戏,可以通过编程来实现。下面是一个简单的贪吃蛇编程程序代码的示例:
import pygame import random # 初始化pygame pygame.init() # 定义颜色 WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) GREEN = (0, 255, 0) BLUE = (0, 0, 255) # 设置屏幕宽高和每个方格的大小 SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 GRID_SIZE = 20 # 创建屏幕对象 screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption("贪吃蛇") # 定义贪吃蛇类 class Snake: def __init__(self): self.body = [(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)] self.direction = random.choice(['UP', 'DOWN', 'LEFT', 'RIGHT']) def move(self): head = self.body[0] x, y = head if self.direction == 'UP': y -= GRID_SIZE elif self.direction == 'DOWN': y += GRID_SIZE elif self.direction == 'LEFT': x -= GRID_SIZE elif self.direction == 'RIGHT': x += GRID_SIZE self.body.insert(0, (x, y)) self.body.pop() def change_direction(self, new_direction): if new_direction == 'UP' and self.direction != 'DOWN': self.direction = new_direction elif new_direction == 'DOWN' and self.direction != 'UP': self.direction = new_direction elif new_direction == 'LEFT' and self.direction != 'RIGHT': self.direction = new_direction elif new_direction == 'RIGHT' and self.direction != 'LEFT': self.direction = new_direction def draw(self): for segment in self.body: pygame.draw.rect(screen, GREEN, (segment[0], segment[1], GRID_SIZE, GRID_SIZE)) def check_collision(self): head = self.body[0] if head[0] < 0 or head[0] >= SCREEN_WIDTH or head[1] < 0 or head[1] >= SCREEN_HEIGHT: return True for segment in self.body[1:]: if segment == head: return True return False # 定义食物类 class Food: def __init__(self): self.position = (random.randint(0, SCREEN_WIDTH/GRID_SIZE-1) * GRID_SIZE, random.randint(0, SCREEN_HEIGHT/GRID_SIZE-1) * GRID_SIZE) def draw(self): pygame.draw.rect(screen, RED, (self.position[0], self.position[1], GRID_SIZE, GRID_SIZE)) # 创建贪吃蛇和食物对象 snake = Snake() food = Food() # 游戏主循环 running = True clock = pygame.time.Clock() while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: snake.change_direction('UP') elif event.key == pygame.K_DOWN: snake.change_direction('DOWN') elif event.key == pygame.K_LEFT: snake.change_direction('LEFT') elif event.key == pygame.K_RIGHT: snake.change_direction('RIGHT') snake.move() if snake.check_collision(): running = False screen.fill(BLACK) snake.draw() food.draw() if snake.body[0] == food.position: snake.body.append((0, 0)) food.position = (random.randint(0, SCREEN_WIDTH/GRID_SIZE-1) * GRID_SIZE, random.randint(0, SCREEN_HEIGHT/GRID_SIZE-1) * GRID_SIZE) pygame.display.flip() clock.tick(10) # 退出游戏 pygame.quit()上述代码是使用Python语言编写的一个简单贪吃蛇游戏程序。程序使用了Pygame库来实现游戏的图形界面,并使用了一些基本的图形绘制函数和事件处理函数来完成游戏逻辑。程序中定义了贪吃蛇类和食物类,分别用于控制贪吃蛇的移动和绘制,以及食物的生成和绘制。在游戏主循环中,通过监听键盘事件来改变贪吃蛇的移动方向,并判断贪吃蛇是否与边界或自身发生碰撞。如果贪吃蛇吃到了食物,会增加身体长度并生成新的食物。游戏结束后,通过调用Pygame库的quit()函数退出游戏。
1年前 -
贪吃蛇是一款经典的游戏,可以用各种编程语言编写。下面以Python为例,给出一个简单的贪吃蛇编程程序代码。
import pygame import random # 初始化pygame库 pygame.init() # 定义颜色 BLACK = pygame.Color(0, 0, 0) WHITE = pygame.Color(255, 255, 255) RED = pygame.Color(255, 0, 0) GREEN = pygame.Color(0, 255, 0) BLUE = pygame.Color(0, 0, 255) # 设置游戏窗口大小和标题 WIDTH, HEIGHT = 640, 480 WIN = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("贪吃蛇") # 定义蛇的初始位置和速度 snake_pos = [[100, 50], [90, 50], [80, 50]] snake_speed = pygame.time.Clock() # 定义食物的初始位置 food_pos = [random.randrange(1, (WIDTH // 10)) * 10, random.randrange(1, (HEIGHT // 10)) * 10] food_spawn = True # 定义初始移动方向 direction = 'RIGHT' change_to = direction # 定义游戏结束的函数 def game_over(): font = pygame.font.SysFont('Arial', 30) text = font.render('游戏结束', True, RED) text_rect = text.get_rect() text_rect.midtop = (WIDTH / 2, HEIGHT / 4) WIN.blit(text, text_rect) pygame.display.flip() pygame.time.wait(2000) pygame.quit() # 定义主函数 def main(): global direction, change_to, snake_pos, food_pos, food_spawn while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() elif event.type == pygame.KEYDOWN: if event.key == pygame.K_RIGHT or event.key == ord('d'): change_to = 'RIGHT' if event.key == pygame.K_LEFT or event.key == ord('a'): change_to = 'LEFT' if event.key == pygame.K_UP or event.key == ord('w'): change_to = 'UP' if event.key == pygame.K_DOWN or event.key == ord('s'): change_to = 'DOWN' # 判断移动方向的合法性 if change_to == 'RIGHT' and direction != 'LEFT': direction = 'RIGHT' if change_to == 'LEFT' and direction != 'RIGHT': direction = 'LEFT' if change_to == 'UP' and direction != 'DOWN': direction = 'UP' if change_to == 'DOWN' and direction != 'UP': direction = 'DOWN' # 根据移动方向更新蛇的位置 if direction == 'RIGHT': snake_pos[0] += 10 if direction == 'LEFT': snake_pos[0] -= 10 if direction == 'UP': snake_pos[1] -= 10 if direction == 'DOWN': snake_pos[1] += 10 # 蛇吃到食物的情况 if snake_pos[0] == food_pos[0] and snake_pos[1] == food_pos[1]: food_spawn = False else: snake_pos.pop() # 食物重新生成 if not food_spawn: food_pos = [random.randrange(1, (WIDTH // 10)) * 10, random.randrange(1, (HEIGHT // 10)) * 10] food_spawn = True # 绘制游戏界面 WIN.fill(BLACK) for pos in snake_pos: pygame.draw.rect(WIN, GREEN, pygame.Rect(pos[0], pos[1], 10, 10)) pygame.draw.rect(WIN, BLUE, pygame.Rect(food_pos[0], food_pos[1], 10, 10)) # 判断游戏结束的条件 if snake_pos[0] < 0 or snake_pos[0] > WIDTH - 10: game_over() if snake_pos[1] < 0 or snake_pos[1] > HEIGHT - 10: game_over() if snake_pos[0] in snake_pos[1:]: game_over() pygame.display.update() snake_speed.tick(30) # 运行主函数 if __name__ == '__main__': main()以上是一个简单的贪吃蛇编程程序代码,使用了Python的pygame库来实现游戏界面的绘制和交互。程序通过键盘事件来改变蛇的移动方向,蛇的位置和食物的位置不断更新,同时判断游戏结束的条件,最后通过循环不断刷新屏幕来实现游戏的运行。
1年前