43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
|
import random
|
||
|
|
||
|
from constants import *
|
||
|
from player import *
|
||
|
from blocks import *
|
||
|
from enemies import *
|
||
|
|
||
|
def generateMap(gameMap, players):
|
||
|
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(spot[0], spot[1], gameMap)
|
||
|
except Exception as error:
|
||
|
continue
|
||
|
|
||
|
for i in range(50):
|
||
|
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!")
|
||
|
gameMap[spot[0]][spot[1]] = Enemy(spot[0], spot[1], gameMap)
|
||
|
break
|
||
|
except Exception as error:
|
||
|
continue
|
||
|
|
||
|
for player in players:
|
||
|
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
|