from picoboy import PicoBoy
import time
import random
xSize = 29
ySize = 15
pb = PicoBoy()
board = [[0 for x in range(ySize)] for y in range(xSize)]
##### Quellcode ueber dieser Linie bitte nicht aendern! #####
laenge=3
xPos=14
yPos=7
richtung = random.randint(1,4)
def putApple():
global board
x = random.randint(0,xSize-1)
y = random.randint(0,ySize-1)
while(board[x][y] != 0):
x = random.randint(0,xSize-1)
y = random.randint(0,ySize-1)
board[x][y] = -1
def erlaubt(x,y):
if x<0 or x>=xSize or y<0 or y>=ySize or board[x][y] > 0:
return False
else:
return True
def spielfeldLeeren():
global board
i = 0
while i < xSize:
j = 0
while j < ySize:
board[i][j] = 0
j = j + 1
i = i + 1
def score():
global laenge
punkte = laenge - 3
pb.text(str(punkte%10),120,43,1)
punkte = int(punkte/10)
pb.text(str(punkte%10),120,33,1)
punkte = int(punkte/10)
pb.text(str(punkte%10),120,23,1)
punkte = int(punkte/10)
def spielfeldZeichnen():
global xPos
global yPos
global board
global laenge
score()
pb.rect(0,0,4*(xSize+1),4*(ySize+1),1)
i = 0
while i < xSize:
j = 0
while j < ySize:
if board[i][j] > 0:
if board[i][j] == laenge:
pb.fill_rect(i*4+2,j*4+2,4,4,1)
else:
pb.rect(i*4+2,j*4+2,4,4,1)
board[i][j] = board[i][j] - 1
if board[i][j] == -1:
pb.fill_rect(i*4+3,j*4+3,2,2,1)
j = j + 1
i = i + 1
def schritt():
global xPos
global yPos
global board
global richtung
global laenge
if (pb.pressedUp() and richtung != 2):
richtung = 1
if (pb.pressedDown() and richtung != 1):
richtung = 2
if (pb.pressedLeft()and richtung != 4):
richtung = 3
if (pb.pressedRight()and richtung != 3):
richtung = 4
if richtung == 1:
yPos = yPos - 1
if richtung == 2:
yPos = yPos + 1
if richtung == 3:
xPos = xPos - 1
if richtung == 4:
xPos = xPos + 1
if(not erlaubt(xPos,yPos)):
while(True):
pb.fill_rect(10,10,4*(xSize+1)-20,4*(ySize+1)-20,0)
pb.rect(10,10,4*(xSize+1)-20,4*(ySize+1)-20,1)
pb.text("Score:",18,18)
pb.text(str(laenge - 3),18,28)
pb.show()
time.sleep_ms(4000)
machine.reset()
if(board[xPos][yPos] == -1):
laenge = laenge + 1
putApple()
board[xPos][yPos] = laenge
spielfeldLeeren()
putApple()
last = time.ticks_us()
while True :
schritt()
pb.fill(0)
spielfeldZeichnen()
pb.show()
while time.ticks_diff(time.ticks_us(), last) < 75000:
pass
last = time.ticks_us()