Найти в Дзене
28 подписчиков

Код для каркаса змейки на Python:


from tkinter import *
game_width =500
game_height = 500
snake_item = 10
snake_color1 = 'cyan'
snake_color2 = 'blue'
snake_x = 24
snake_y = 24
snake_x_nav = 0
snake_y_nav = 0
snake_list = []
snake_size = 5
tk =Tk()
tk.title('Snake v. 0.5')
tk.resizable(0,0)
tk.wm_attributes('-topmost', 1)
canvas = Canvas(tk, width=game_width, height=game_height, bd=0, highlightthickness=0)
canvas.pack()
tk.update()
def snake_paint_item(canvas, x, y):
  global snake_list
  id1 = canvas.create_rectangle(x*snake_item, y*snake_item,x*snake_item+snake_item, y*snake_item+snake_item, fill=snake_color1)
  id2 = canvas.create_rectangle(x*snake_item+2, y*snake_item+2,x*snake_item+snake_item-2, y*snake_item+snake_item-2, fill=snake_color2)
  snake_list.append([x,y,id1,id2])
  #print(snake_list)
def check_can_we_delete_snake_item():
  if len(snake_list) >= snake_size:
   temp_item = snake_list.pop(0)
   #print(temp_item)
   canvas.delete(temp_item[2])
   canvas.delete(temp_item[3])
def snake_move(event):
  global snake_x
  global snake_y
  if event.keysym == 'Up':
   snake_x_nav = 0
   snake_y_nav = -1
   check_can_we_delete_snake_item()
  elif event.keysym == 'Down':
   snake_x_nav = 0
   snake_y_nav = 1
   check_can_we_delete_snake_item()
  elif event.keysym == 'Left':
   snake_x_nav = -1
   snake_y_nav = 0
   check_can_we_delete_snake_item()
  elif event.keysym == 'Right':
   snake_x_nav = 1
   snake_y_nav = 0
   check_can_we_delete_snake_item()
  snake_x = snake_x + snake_x_nav
  snake_y = snake_y + snake_y_nav
  snake_paint_item(canvas, snake_x, snake_y)
snake_paint_item(canvas, snake_x, snake_y)
canvas.bind_all("<KeyPress-Left>", snake_move)
canvas.bind_all("<KeyPress-Right>", snake_move)
canvas.bind_all("<KeyPress-Up>", snake_move)
canvas.bind_all("<KeyPress-Down>", snake_move)
Код для каркаса змейки на Python:  from tkinter import * game_width =500 game_height = 500 snake_item = 10 snake_color1 = 'cyan' snake_color2 = 'blue' snake_x = 24 snake_y = 24 snake_x_nav = 0...
1 минута