52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
import random
|
|
import uuid
|
|
|
|
from globals import *
|
|
from player import *
|
|
from blocks import *
|
|
from enemies import *
|
|
|
|
def generateMap():
|
|
gameMap.clear()
|
|
for i in range(tileCountx):
|
|
column = []
|
|
for j in range(tileCounty):
|
|
column.append(False)
|
|
gameMap.append(column)
|
|
for i in range(300):
|
|
try:
|
|
spot = [random.randint(0, tileCountx - 1), random.randint(0, tileCounty - 1)]
|
|
if gameMap[spot[0]][spot[1]]:
|
|
raise Exception("spot taken!")
|
|
gameMap[spot[0]][spot[1]] = Block(uuid.uuid4(), spot[0], spot[1])
|
|
except Exception as error:
|
|
continue
|
|
|
|
for i in range(3):
|
|
for j in range(50):
|
|
try:
|
|
spot = [random.randint(0, tileCountx - 1), random.randint(0, tileCounty - 1)]
|
|
if gameMap[spot[0]][spot[1]]:
|
|
raise Exception("spot taken!")
|
|
newEnemy = Enemy(uuid.uuid4(), spot[0], spot[1])
|
|
gameMap[spot[0]][spot[1]] = newEnemy
|
|
enemies[newEnemy.id] = newEnemy
|
|
break
|
|
except Exception as error:
|
|
continue
|
|
|
|
for id, player in players.items():
|
|
maxTries = 5
|
|
for i in range(maxTries):
|
|
if i == maxTries - 1:
|
|
raise Exception("No spots found for player!")
|
|
try:
|
|
spot = [random.randint(0, tileCountx - 1), random.randint(0, tileCounty - 1)]
|
|
if gameMap[spot[0]][spot[1]]:
|
|
raise Exception("spot taken!")
|
|
gameMap[spot[0]][spot[1]] = player
|
|
player.x = spot[0]
|
|
player.y = spot[1]
|
|
break
|
|
except Exception as error:
|
|
continue |