From 4c2d00c6188b7b289092f6fb78d8d1f1e78d4124 Mon Sep 17 00:00:00 2001 From: 1024Adam Date: Sat, 11 Mar 2017 12:18:29 -0500 Subject: [PATCH] Lines generating as expected, need to adjust side values for vertical lines? (k maze gen algo) --- infinite_maze/Game.py | 8 +++---- infinite_maze/Line.py | 53 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 54 insertions(+), 7 deletions(-) diff --git a/infinite_maze/Game.py b/infinite_maze/Game.py index c95b1a9..7502093 100644 --- a/infinite_maze/Game.py +++ b/infinite_maze/Game.py @@ -12,7 +12,7 @@ def __init__(self): self.xMin = 80 self.xMax = (self.width / 2) self.yMin = 40 - self.yMax = (self.height - 40) + self.yMax = (self.height - 32) self.screen = pygame.display.set_mode((self.width, self.height)) @@ -52,9 +52,9 @@ def updateScreen(self, player, lines): self.pace += 1 # Print Border - pygame.draw.line(self.getScreen(), self.fgColor, (self.xMin, self.yMin), (self.width, self.yMin), 1) - pygame.draw.line(self.getScreen(), self.fgColor, (self.xMin, self.yMax + 15), (self.width, self.yMax + 15), 1) - pygame.draw.line(self.getScreen(), self.fgColor, (80, self.yMin), (80, self.yMax + 15), 2) + pygame.draw.line(self.getScreen(), self.fgColor, (self.xMin, self.yMin), (self.width, self.yMin), 2) + pygame.draw.line(self.getScreen(), self.fgColor, (self.xMin, self.yMax + 10), (self.width, self.yMax + 10), 2) + pygame.draw.line(self.getScreen(), self.fgColor, (80, self.yMin), (80, self.yMax + 10), 2) # Print Display Text timeText = self.font.render('Time: ' + self.clock.getTimeString(), 1, self.fgColor) diff --git a/infinite_maze/Line.py b/infinite_maze/Line.py index f67b511..3d64bf6 100644 --- a/infinite_maze/Line.py +++ b/infinite_maze/Line.py @@ -1,3 +1,5 @@ +from random import randint + class Line: def __init__(self): self.start = (0, 0) @@ -47,21 +49,66 @@ def getYEnd(self): def setYEnd(self, newY): self.end = (self.end[0], newY) + def getSideA(self): + return (self.sideA) + + def setSideA(self, side): + self.sideA = side + + def getSideB(self): + return (self.sideB) + + def setSideB(self, side): + self.sideB = side + @staticmethod def generateMaze(game, width, height): lines = [] - #side = 0 # Horizontal Line Gen + sideA = 0 + sideB = 1 for x in range(width): xPos = (22 * x) + game.getXMax() for y in range(1, height - 1): yPos = (22 * y) + game.getYMin() - lines.append(Line((xPos, yPos), (xPos + 22, yPos), 0, 0)) + lines.append(Line((xPos, yPos), (xPos + 22, yPos), sideA, sideB)) + sideA = sideB + sideB += 1 # Vertical Line Gen + sideA = 0 + sideB = 1 for y in range(height - 1): yPos = (22 * y) + game.getYMin() for x in range(1, width): xPos = (22 * x) + game.getXMax() - lines.append(Line((xPos, yPos), (xPos, yPos + 22), 0, 0)) + lines.append(Line((xPos, yPos), (xPos, yPos + 22), sideA, sideB)) + sideA = sideB + sideB += 1 + + sets = [] + length = len(lines) + #while (len(sets) != 1): + # length = len(lines) + # lineNum = randint(0, length - 1) + # lineNum = 5 + # tempSideA = lines[lineNum].getSideA() + # tempSideB = lines[lineNum].getSideB() + # if(tempSideA != tempSideB): + # del lines[lineNum] + # for line in lines: + # if (line.getSideA() == tempSideB): + # line.setSideA(tempSideA) + # elif (line.getSideB() == tempSideB): + # line.setSideB(tempSideA) + # sets = [] + # for line in lines: + # tempSideA = line.getSideA() + # tempSideB = line.getSideB() + # print tempSideA, tempSideB + # if (tempSideA not in sets): + # sets.append(tempSideA) + # if (tempSideB not in sets): + # sets.append(tempSideB) + # print len(sets) return (lines)