Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Copyright (c)2012 Eyecreate Studios
import random
class universe:
def __init__(self):
self.width=200
self.height=200
random.seed(None)
self.winLocation=[random.randint(0,self.width),random.randint(0,self.height)]
self.grid = [[0 for col in range(self.width)] for row in range(self.height)]
self.startLocation=self.getCloseLocation(self.winLocation[0],self.winLocation[1])
#Uncomment these if you like cheating
#print self.startLocation
#print self.winLocation
#print "distx:"+str(abs(self.startLocation[0]-self.winLocation[0]))+" disty:"+str(abs(self.startLocation[1]-self.winLocation[1]))
#print "approx fuel to destination:"+str(abs(self.startLocation[0]-self.winLocation[0])+abs(self.startLocation[1]-self.winLocation[1]))
def getView(self,cX,cY,width,height):
screen = [[0 for row in range(5)] for col in range(8)] #for now, grid size is hardcoded.
rangeX = range(cX-4,cX+4)
rangeY = range(cY-2,cY+3)
# check if view is outside of bounds
if cX-4<0: rangeX = range(width)
if cY-2<0: rangeY = range(height)
if cX+4>self.width: rangeX = range(self.width-width,self.width)
if cY+3>self.height: rangeY = range(self.height-height,self.height)
for rIndex in rangeX:
for cIndex in rangeY:
screen[rIndex-rangeX[0]][cIndex-rangeY[0]]=self.grid[rIndex][cIndex]
return screen,[cX-rangeX[0],cY-rangeY[0]]
def getCloseLocation(self,locX,locY):
return self.quickCoordinateCheck(random.randint(locX-(self.width/4),locX+(self.width/4)),random.randint(locY-(self.height/4),locY+(self.height/4)),self.width/2)
def getStartLocation(self):
return self.startLocation
def getWinLocation(self):
return self.winLocation
def quickCoordinateCheck(self,numX,numY,offset):
#make sure ship start is on map and within fuel distance.
retX=numX
retY=numY
if numX<0: retX=0
if numX>self.width: retX=self.width-offset
if numY<0: retY=0
if numY>self.height: retY=self.height-offset
return [retX,retY]
def newRandomPlanet(self):
return planet(None)
def generatePlanets(self):
for rIndex in range(len(self.grid)):
for cIndex in range(len(self.grid[rIndex])):
if random.randint(0,10)>7:
self.grid[rIndex][cIndex]=self.newRandomPlanet()
self.grid[self.winLocation[0]][self.winLocation[1]]=planet("winner")
class planet:
def __init__(self,pType):
self.pType=pType
def getType(self):
return self.pType