Text Size
Text Size
Exit Full Screen
Python Mini
Show
Source Code
View Source Code in Full Screen
Open in New Tab
from processing import * import random width = 420 height = 450 side = 30 num_rows = height/side num_columns = width/side print "rows:", num_rows print "columns:", num_columns # 0 = path # 1 = wall # 2 = fire # 3 = teleport # 4 = fake wall # 5 = start # 6 = end maze = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 0, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 0, 4, 4, 4, 0, 0, 0, 1, 1], [1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1], [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1], [1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1], [1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1], [1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1], [2, 0, 0, 0, 0, 0, 1, 0, 4, 0, 4, 0, 0, 1, 1], [1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 1, 3, 4, 1, 1, 1, 1, 1, 1], [1, 5, 1, 1, 1, 1, 1, 6, 4, 1, 1, 1, 1, 1, 1] ] player = { 'row': 14, 'column': 1, 'dead': False } teleports = [] def findTeleports(): for row in range(num_rows): for column in range(num_columns): if maze[row][column] == 3: t = { 'row': row, 'column': column } teleports.append(t) def setup(): global fire, playerImg, deadImg size(width, height) fire = loadImage("http://sabrinaw.oyosite.com/fire.png") playerImg = loadImage("http://sabrinaw.oyosite.com/mazesbu.png") deadImg = loadImage("http://sabrinaw.oyosite.com/mazesbu+dead.png") findTeleports() def draw(): background(0, 153, 255) drawGrid() drawMaze() () drawPlayer() def blackout(): for row in range(num_rows): for column in range(num_columns): if (player['row'] != row or player['column'] != column): stroke(0, 0, 0) fill(0, 0, 0) rect(column * side, row * side, side, side) def drawPlayer(): row = player['row'] col = player['column'] if maze[row][col] == 2: player['dead'] = True if not player['dead']: image(playerImg, col * side, row * side, side, side) else: image(deadImg, col * side, row * side, side, side) gameOver() if maze[row][col] == 6: win() def gameOver(): fill(255, 0, 0) textSize(40) text("You Died!", 150, 250) exitp() def win(): fill(0, 255, 0) textSize(40) text("You Win!", 150, 250) exitp() def drawGrid(): stroke(0, 107, 179) for x in range(0, width, side): line(x, 0, x, height) for y in range(0, height, side): line(0, y, width, y) def drawMaze(): for row in range(num_rows): for column in range(num_columns): if maze[row][column] in [1, 4]: stroke(0, 15, 26) fill(0, 46, 77) rect(column * side, row * side, side, side) elif maze[row][column] == 2: image(fire, column * side, row * side, side, side) elif maze[row][column] == 3: stroke(0, 107, 179) fill(0, 140, 255) rect(column * side, row * side, side, side) def keyPressed(): if (keyboard.keyCode in [UP, DOWN, LEFT, RIGHT]): movePlayer(keyboard.keyCode) def movePlayer(direction): row = player['row'] col = player['column'] if direction == UP: new_row = row - 1 if (new_row >= 0 and maze[new_row][col] != 1): player['row'] = new_row elif direction == DOWN: new_row = row + 1 if (new_row < num_rows and maze[new_row][col] != 1): player['row'] = new_row elif direction == LEFT: new_col = col - 1 if (new_col >= 0 and maze[row][new_col] != 1): player['column'] = new_col elif direction == RIGHT: new_col = col + 1 if (new_col < num_columns and maze[row][new_col] != 1): player['column'] = new_col checkTeleports(player['row'], player['column']) def checkTeleports(row, column): t_index = None for i in range(len(teleports)): tele = teleports[i] if (tele['row'] == row and tele['column'] == column): t_index = i break if t_index is not None: new_t = random.randint(0, len(teleports)-1) while new_t == t_index: new_t = random.randint(0, len(teleports)-1) player['row'] = teleports[new_t]['row'] player['column'] = teleports[new_t]['column'] run()
Maze.py
( around 168 lines python code )
Published By:
ZombieEaterz
Published on
2017-07-21T14:24:50Z
Python Mini
- an
OYOclass
application,
own your own class today
.
Run
Result
×
Error message shows here