用户:罗kTda查看:0 回复:0 评论:0 创建时间:2022-08-31T18:46:31
【作品展示】

【作品介绍】
w:上,s:下,a左,d右
【作品源代码】
import pygame
import sys
import random
pygame.init()
screen = pygame.display.set_mode((400, 400))
pygame.display.set_caption('snake')
direct = [0, 1]
body = []
for i in range(3, 8):
body.append([4, i])
head = [4, 7]
clock = 0
blank = []
for i in range(20):
for j in range(20):
if not [i, j] in body:
blank.append([i, j])
food = random.choice(blank)
while True:
pygame.time.delay(20)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == ord('a'):
new = [0, -1]
elif event.key == ord('d'):
new = [0, 1]
elif event.key == ord('w'):
new = [-1, 0]
elif event.key == ord('s'):
new = [1, 0]
else:
continue
if direct[0] == new[0] or direct[1] == new[1]:
continue
direct = new[:]
clock += 1
if clock >= 15:
clock = 0
old = [body[len(body)-1][0], body[len(body)-1][1]]
head = [old[0] + direct[0], old[1] + direct[1]]
if food == head:
blank = []
for i in range(20):
for j in range(20):
if not [i, j] in body:
blank.append([i, j])
food = random.choice(blank)
else:
del body[0]
if head in body:
pygame.quit()
sys.exit()
if not (0 <= head[0] < 20) or not (0 <= head[1] < 20):
pygame.quit()
sys.exit()
body.append(head)
screen.fill((0, 0, 0))
for i in body:
pygame.draw.rect(screen, (200, 200, 200), (20*i[1], 20*i[0], 20, 20))
pygame.draw.rect(screen, (100, 170, 255), (20*food[1], 20*food[0], 20, 20))
pygame.draw.rect(screen, (255, 255, 255),
(20 * head[1], 20 * head[0], 20, 20))
pygame.display.update()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn