用户:
卡布叻曲琦饼干查看:0 回复:0 评论:0 创建时间:2023-02-16T21:12:36
【作品展示】

【作品介绍】
游戏规则:橙色是橙子,加一长度,蓝色是喵,减三长度
初始零分,加一长度一分
初始蛇身白色,五分绿色,十分黄色,二十分红色
三十分狂暴,喵(具体效果就等着吧)
【作品源代码】
import pygame
import random
import time
a = (input("请输入密码:\n"))
if a == "202318":
print("密码正确,下面是游戏规则:\n橙色是橙子,加一长度,蓝色是喵,减三长度\n初始零分,加一长度一分\n初始蛇身白色,五分绿色,十分黄色,二十分红色\n三十分狂暴,喵(具体效果就等着吧)")
time.sleep(5)
pygame.init()
S_W = 1200 # 1200/1900
S_H = 600 # 600/980
CELL_SIZE = 20
gray = (40, 40, 40)
green = (255, 255, 255)
black = (0, 0, 0)
orange = (255, 130, 0)
blue = (0, 0, 255)
snake_pos = [80, 80]
snake_body = [[80, 80], [60, 80], [40, 80]]
target_pos = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)] # 200,200/300,300
target_pos2 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)] # 300,220/460,420
target_pos3 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)] # 1100,340/1300,500
target_pos4 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)] # 600,480/900,780
target_pos5 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos6 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos7 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos8 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos9 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos10 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos11 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos12 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos13 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos14 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos15 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos16 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos17 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos18 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos19 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
target_pos20 = [int(random.randrange(1, 60)*CELL_SIZE),
int(random.randrange(1, 30)*CELL_SIZE)]
flag = 1
flag2 = 1
flag3 = 1
flag4 = 1
flag5 = 1
flag6 = 1
flag7 = 1
flag8 = 1
flag9 = 1
flag10 = 1
flag11 = 1
flag12 = 1
flag13 = 1
flag14 = 1
flag15 = 1
flag16 = 1
flag17 = 1
flag18 = 1
flag19 = 1
flag20 = 1
score = 0
level = 10
direction = change_dir = 'right'
screen = pygame.display.set_mode((S_W, S_H))
pygame.display.set_caption("贪吃蛇")
def draw_grid():
for i in range(0, S_W, CELL_SIZE):
pygame.draw.line(screen, gray, (i, 0), (i, S_H))
for j in range(0, S_H, CELL_SIZE):
pygame.draw.line(screen, gray, (0, j), (S_W, j))
def draw_snake(body):
for position in body:
pygame.draw.rect(
screen, green, (position[0], position[1], CELL_SIZE, CELL_SIZE))
while True:
if score > 1:
t = pygame.time.Clock()
t.tick(20)
green = (random.randrange(0, 255), random.randrange(
0, 255), random.randrange(0, 255))
pressed = pygame.key.get_pressed()
for evt in pygame.event.get():
if (evt.type == pygame.QUIT):
pygame.quit()
elif evt.type == pygame.KEYDOWN:
if evt.key == pygame.K_RIGHT or pressed[pygame.K_d]:
change_dir = 'right'
if evt.key == pygame.K_LEFT or pressed[pygame.K_a]:
change_dir = 'left'
if evt.key == pygame.K_UP or pressed[pygame.K_w]:
change_dir = 'up'
if evt.key == pygame.K_DOWN or pressed[pygame.K_s]:
change_dir = 'down'
direction = change_dir
if direction == 'right':
snake_pos[0] += CELL_SIZE
if direction == 'left':
snake_pos[0] -= CELL_SIZE
if direction == 'down':
snake_pos[1] += CELL_SIZE
if direction == 'up':
snake_pos[1] -= CELL_SIZE
snake_body.insert(0, list(snake_pos))
if snake_pos[0] == target_pos[0] and snake_pos[1] == target_pos[1]:
flag = 0
score += 1
elif snake_pos[0] == target_pos2[0] and snake_pos[1] == target_pos2[1]:
flag2 = 0
score += 1
elif snake_pos[0] == target_pos3[0] and snake_pos[1] == target_pos3[1]:
flag3 = 0
score += 1
elif snake_pos[0] == target_pos4[0] and snake_pos[1] == target_pos4[1]:
flag4 = 0
score += 1
elif snake_pos[0] == target_pos5[0] and snake_pos[1] == target_pos5[1]:
flag5 = 0
score += 1
elif snake_pos[0] == target_pos6[0] and snake_pos[1] == target_pos6[1]:
flag6 = 0
score += 1
elif snake_pos[0] == target_pos7[0] and snake_pos[1] == target_pos7[1]:
flag7 = 0
score += 1
elif snake_pos[0] == target_pos8[0] and snake_pos[1] == target_pos8[1]:
flag8 = 0
score += 1
elif snake_pos[0] == target_pos9[0] and snake_pos[1] == target_pos9[1]:
flag9 = 0
score += 1
elif snake_pos[0] == target_pos10[0] and snake_pos[1] == target_pos10[1]:
flag10 = 0
score += 1
elif snake_pos[0] == target_pos11[0] and snake_pos[1] == target_pos11[1]:
flag11 = 0
score += 1
elif snake_pos[0] == target_pos12[0] and snake_pos[1] == target_pos12[1]:
flag12 = 0
score += 1
elif snake_pos[0] == target_pos13[0] and snake_pos[1] == target_pos13[1]:
flag13 = 0
score += 1
elif snake_pos[0] == target_pos14[0] and snake_pos[1] == target_pos14[1]:
flag14 = 0
score += 1
elif snake_pos[0] == target_pos15[0] and snake_pos[1] == target_pos15[1]:
flag15 = 0
score += 1
elif snake_pos[0] == target_pos16[0] and snake_pos[1] == target_pos16[1]:
flag16 = 0
score += 1
elif snake_pos[0] == target_pos17[0] and snake_pos[1] == target_pos17[1]:
flag17 = 0
score += 1
elif snake_pos[0] == target_pos18[0] and snake_pos[1] == target_pos18[1]:
flag18 = 0
score += 1
elif snake_pos[0] == target_pos19[0] and snake_pos[1] == target_pos19[1]:
flag19 = 0
score += 1
elif snake_pos[0] == target_pos20[0] and snake_pos[1] == target_pos20[1]:
flag20 = 0
score += 1
else:
snake_body.pop()
if flag == 0:
x = random.randrange(1, 60)
y = random.randrange(1, 30)
target_pos = [int(x*CELL_SIZE), int(y*CELL_SIZE)]
flag = 1
if flag2 == 0:
x2 = random.randrange(1, 60)
y2 = random.randrange(1, 30)
target_pos2 = [int(x2*CELL_SIZE), int(y2*CELL_SIZE)]
flag2 = 1
if flag3 == 0:
x3 = random.randrange(1, 60)
y3 = random.randrange(1, 30)
target_pos3 = [int(x3*CELL_SIZE), int(y3*CELL_SIZE)]
flag3 = 1
if flag4 == 0:
x4 = random.randrange(1, 60)
y4 = random.randrange(1, 30)
target_pos4 = [int(x4*CELL_SIZE), int(y4*CELL_SIZE)]
flag4 = 1
if flag5 == 0:
x5 = random.randrange(1, 60)
y5 = random.randrange(1, 30)
target_pos5 = [int(x5*CELL_SIZE), int(y5*CELL_SIZE)]
flag5 = 1
if flag6 == 0:
x6 = random.randrange(1, 60)
y6 = random.randrange(1, 30)
target_pos6 = [int(x6*CELL_SIZE), int(y6*CELL_SIZE)]
flag6 = 1
if flag7 == 0:
x7 = random.randrange(1, 60)
y7 = random.randrange(1, 30)
target_pos7 = [int(x*CELL_SIZE), int(y*CELL_SIZE)]
flag = 1
if flag8 == 0:
x8 = random.randrange(1, 60)
y8 = random.randrange(1, 30)
target_pos8 = [int(x8*CELL_SIZE), int(y8*CELL_SIZE)]
flag8 = 1
if flag9 == 0:
x9 = random.randrange(1, 60)
y9 = random.randrange(1, 30)
target_pos9 = [int(x9*CELL_SIZE), int(y9*CELL_SIZE)]
flag9 = 1
if flag10 == 0:
x10 = random.randrange(1, 60)
y10 = random.randrange(1, 30)
target_pos10 = [int(x10*CELL_SIZE), int(y10*CELL_SIZE)]
flag10 = 1
if flag11 == 0:
x11 = random.randrange(1, 60)
y11 = random.randrange(1, 30)
target_pos11 = [int(x11*CELL_SIZE), int(y11*CELL_SIZE)]
flag11 = 1
if flag12 == 0:
x12 = random.randrange(1, 60)
y12 = random.randrange(1, 30)
target_pos12 = [int(x12*CELL_SIZE), int(y12*CELL_SIZE)]
flag12 = 1
if flag13 == 0:
x13 = random.randrange(1, 60)
y13 = random.randrange(1, 30)
target_pos13 = [int(x13*CELL_SIZE), int(y13*CELL_SIZE)]
flag13 = 1
if flag14 == 0:
x14 = random.randrange(1, 60)
y14 = random.randrange(1, 30)
target_pos14 = [int(x14*CELL_SIZE), int(y14*CELL_SIZE)]
flag14 = 1
if flag15 == 0:
x15 = random.randrange(1, 60)
y15 = random.randrange(1, 30)
target_pos15 = [int(x15*CELL_SIZE), int(y15*CELL_SIZE)]
flag15 = 1
if flag16 == 0:
x16 = random.randrange(1, 60)
y16 = random.randrange(1, 30)
target_pos16 = [int(x16*CELL_SIZE), int(y16*CELL_SIZE)]
flag16 = 1
if flag17 == 0:
x17 = random.randrange(1, 60)
y17 = random.randrange(1, 30)
target_pos17 = [int(x17*CELL_SIZE), int(y17*CELL_SIZE)]
flag17 = 1
if flag18 == 0:
x18 = random.randrange(1, 60)
y18 = random.randrange(1, 30)
target_pos18 = [int(x18*CELL_SIZE), int(y18*CELL_SIZE)]
flag18 = 1
if flag19 == 0:
x19 = random.randrange(1, 60)
y19 = random.randrange(1, 30)
target_pos19 = [int(x19*CELL_SIZE), int(y19*CELL_SIZE)]
flag19 = 1
if flag20 == 0:
x20 = random.randrange(1, 60)
y20 = random.randrange(1, 30)
target_pos20 = [int(x20*CELL_SIZE), int(y20*CELL_SIZE)]
flag20 = 1
screen.fill(black)
draw_snake(snake_body)
draw_grid()
# draw_snake(snake_body)
pygame.draw.rect(
screen, orange, (target_pos[0], target_pos[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos2[0], target_pos2[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos3[0], target_pos3[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos4[0], target_pos4[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos5[0], target_pos5[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos6[0], target_pos6[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos7[0], target_pos7[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos8[0], target_pos8[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos9[0], target_pos9[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos10[0], target_pos10[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos11[0], target_pos11[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos12[0], target_pos12[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos13[0], target_pos13[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos14[0], target_pos14[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos15[0], target_pos15[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos16[0], target_pos16[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos17[0], target_pos17[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos18[0], target_pos18[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos19[0], target_pos19[1], 20, 20))
pygame.draw.rect(
screen, orange, (target_pos20[0], target_pos20[1], 20, 20))
pygame.display.flip()
if snake_pos[0] > S_W:
snake_pos[0] = -20
elif snake_pos[0] < 0:
snake_pos[0] = S_W
elif snake_pos[1] > S_H:
snake_pos[1] = -20
elif snake_pos[1] < 0:
snake_pos[1] = S_H
else:
t = pygame.time.Clock()
t.tick(level)
if score < 5:
level = 10
green = (255, 255, 255)
if score > 4:
level = random.randrange(13, 15)
green = (0, 255, 0)
if score > 9:
level = random.randrange(15, 17)
green = (255, 255, 0)
if score > 19:
level = random.randrange(17, 19)
green = (255, 0, 0)
for evt in pygame.event.get():
if (evt.type == pygame.QUIT):
pygame.quit()
elif evt.type == pygame.KEYDOWN:
if evt.key == pygame.K_RIGHT:
change_dir = 'right'
if evt.key == pygame.K_LEFT:
change_dir = 'left'
if evt.key == pygame.K_UP:
change_dir = 'up'
if evt.key == pygame.K_DOWN:
change_dir = 'down'
if change_dir == 'right' and direction == 'left':
change_dir = 'left'
if change_dir == 'left' and direction == 'right':
change_dir = 'right'
if change_dir == 'up' and direction == 'down':
change_dir = 'down'
if change_dir == 'down' and direction == 'up':
change_dir = 'up'
direction = change_dir
if direction == 'right':
snake_pos[0] += CELL_SIZE
if direction == 'left':
snake_pos[0] -= CELL_SIZE
if direction == 'down':
snake_pos[1] += CELL_SIZE
if direction == 'up':
snake_pos[1] -= CELL_SIZE
snake_body.insert(0, list(snake_pos))
if snake_pos[0] == target_pos[0] and snake_pos[1] == target_pos[1]:
flag = 0
score += 1
else:
snake_body.pop()
if flag == 0:
x = random.randrange(1, 60)
y = random.randrange(1, 30)
target_pos = [int(x*CELL_SIZE), int(y*CELL_SIZE)]
flag = 1
if snake_pos[0] == target_pos2[0] and snake_pos[1] == target_pos2[1]:
flag2 = 0
score -= 3
snake_body.pop()
snake_body.pop()
snake_body.pop()
if flag2 == 0:
x2 = random.randrange(1, 60)
y2 = random.randrange(1, 30)
target_pos2 = [int(x2*CELL_SIZE), int(y2*CELL_SIZE)]
flag2 = 1
if snake_pos[0] == target_pos3[0] and snake_pos[1] == target_pos3[1]:
flag3 = 0
score -= 3
snake_body.pop()
snake_body.pop()
snake_body.pop()
if flag3 == 0:
x3 = random.randrange(1, 60)
y3 = random.randrange(1, 30)
target_pos3 = [int(x3*CELL_SIZE), int(y3*CELL_SIZE)]
flag3 = 1
if snake_pos[0] == target_pos4[0] and snake_pos[1] == target_pos4[1]:
flag4 = 0
score -= 3
snake_body.pop()
snake_body.pop()
snake_body.pop()
if flag4 == 0:
x4 = random.randrange(1, 60)
y4 = random.randrange(1, 30)
target_pos4 = [int(x4*CELL_SIZE), int(y4*CELL_SIZE)]
flag4 = 1
screen.fill(black)
draw_snake(snake_body)
draw_grid()
# draw_snake(snake_body)
pygame.draw.rect(
screen, orange, (target_pos[0], target_pos[1], 20, 20))
pygame.draw.rect(
screen, blue, (target_pos2[0], target_pos2[1], 20, 20))
pygame.draw.rect(
screen, blue, (target_pos3[0], target_pos3[1], 20, 20))
pygame.draw.rect(
screen, blue, (target_pos4[0], target_pos4[1], 20, 20))
pygame.display.flip()
"""if snake_pos[0] > S_W:
snake_pos[0] = -20
elif snake_pos[0] < 0:
snake_pos[0] = S_W
elif snake_pos[1] > S_H:
snake_pos[1] = -20
elif snake_pos[1] < 0:
snake_pos[1] = S_H"""
if snake_pos[0] > S_W or snake_pos[0] < 0 or snake_pos[1] > S_H or snake_pos[1] < 0:
pygame.quit()
for i in snake_body[1:]:
if snake_pos[0] == i[0] and snake_pos[1] == i[1]:
pygame.quit()
if len(snake_body) == 0:
pygame.quit()
else:
print("密码错误,机器十秒后自爆")
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn