Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Add your Python code here. E.g.
- from microbit import *
- from random import randint as rnd
- FREE=0
- UP=1
- RIGHT=2
- DOWN=3
- LEFT=4
- FOOD=5
- class Coord:
- def __init__(self, y, x):
- self.x = x
- self.y = y
- def move(self, dir):
- if dir == UP:
- if self.y > 0:
- self.y -= 1
- if dir == DOWN:
- if self.y < 4:
- self.y += 1
- if dir == LEFT:
- if self.x > 0:
- self.x -= 1
- if dir == RIGHT:
- if self.x < 4:
- self.x += 1
- board = [
- [FREE,FREE,FREE,FREE,FREE],
- [FREE,FREE,FREE,FREE,FREE],
- [FREE,FREE,FREE,FREE,FREE],
- [FREE,FREE,FREE,FREE,FREE],
- [FREE,FREE,FREE,FREE,FREE]
- ];
- def bget(coord):
- return board[coord.y][coord.x]
- def bset(coord, val):
- board[coord.y][coord.x] = val
- def put_food():
- while True:
- x = rnd(0,4)
- y = rnd(0,4)
- if board[y][x] == FREE:
- board[y][x] = FOOD
- break
- board[2][0] = RIGHT
- board[2][1] = RIGHT
- head = Coord(2,1)
- tail = Coord(2,0)
- put_food()
- while True:
- for y in range(0,5):
- for x in range(0,5):
- n = board[y][x]
- brt = 0
- if n == FOOD:
- brt = 3
- elif x==head.x and y == head.y:
- brt = 9
- elif n >= 1 and brt <= 4:
- brt = 6
- display.set_pixel(x,y, brt)
- sleep(500)
- # handle input, move head
- dire = bget(head)
- if button_a.was_pressed():
- dire -= 1
- if dire == 0:
- dire = 4
- if button_b.was_pressed():
- dire += 1
- if dire == 5:
- dire = 1
- bset(head, dire)
- head.move(dire)
- if head.x < 0 or head.x > 4 or head.y < 0 or head.y > 4:
- break
- oldh = bget(head)
- if oldh != FREE and oldh != FOOD:
- break
- bset(head, dire)
- if oldh == FOOD:
- put_food()
- else:
- tt = bget(tail)
- bset(tail, FREE)
- tail.move(tt)
- while True:
- if button_a.was_pressed() or button_b.was_pressed():
- reset()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement