#!/usr/bin/env python}
#coding=utf-8
class Point:
row = 0
col = 0
def __init__(self ,row ,col):
self.row = row
self.col = col
def copy(self):
return Point(row=self.row, col=self.col)
import pygame
import random
pygame.init()
W = 800
H = 600
ROW = 30
COL = 40
size=(W,H)
window = pygame.display.set_mode(size)
pygame.display.set_caption('ff')
bg_color = (255,255,225)
head_color = (0,158,128)
food_color = (255,255,0)
snake_color = (200,147,158)
head = Point(row=int(ROW/2),col=int(COL/2))
snakes = [
Point(row=head.row, col=head.col+1),
Point(row=head.row, col=head.col+2),
Point(row=head.row, col=head.col+3)]
def get_food():
while 1:
pos = (Point(row = random.randint(0, ROW-1), col=random.randint(0, COL - 1)))
is_coll = False
if head.row == pos.row and head.col == pos.col:
is_coll = True
for snake in snakes:
if snake.row == pos.row and snake.col == pos.col:
is_coll = True
break
if not is_coll:
break
return pos
food = get_food()
def rect(point,color):
left = point.col * W/COL
top = point.row * H/ROW
pygame.draw.rect(window,color,(left,top,15,15))
direct = 'left'
quit = True
clock = pygame.time.Clock()
while quit:
for event in pygame.event.get():
if event.type == pygame.QUIT :
quit = False
elif event.type == pygame.KEYDOWN:
#print(event)
if event.key == pygame.K_LEFT or event.key ==pygame.K_a :
direct = 'left'
elif event.key == pygame.K_DOWN or event.key == pygame.K_s:
direct = 'down'
elif event.key == pygame.K_UP or event.key == pygame.K_w:
direct = 'up'
elif event.key == pygame.K_d or event.key == pygame.K_RIGHT:
direct = 'right'
eat = (head.row == food.row and head.col == food.col)
snakes.insert(0, head.copy())
if head.row == food.row and head.col == food.col:
food = get_food()
if not eat:
snakes.pop()
if direct == 'left':
head.col -= 1
elif direct == 'right':
head.col += 1
elif direct == 'up':
head.row -= 1
elif direct == 'down':
head.row += 1
dead = False
if head.col < 0:
head.col=COL-1
elif head.col>COL-1:
head.col=0
if head.row < 0:
head.row=ROW-1
elif head.row>ROW-1:
head.row=0
for snake in snakes:
if head.col == snake.col and head.row == snake.row:
dead = True
break
if dead:
print('死了')
quit = False
pygame.draw.rect(window,bg_color,(0,0,W,H ))
rect(head,head_color)
rect(food, food_color)
for snake in snakes:
rect(snake, snake_color)
pygame.display.flip()
#FPS=len(snakes) - 4 /10+5
clock.tick(10)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)