def randomizePosition(self,maxlimit): self.cells = [] self.startCell = Utils.getRandomPosition(maxlimit) self.orientation = Utils.getRandomOrientation() for i in range(self.size): relativePosition = self.startCell.getRelativePosition(i, self.orientation) cell = BoardCell.BoardCell(relativePosition.getRow(), relativePosition.getColumn(), True) self.cells.append(cell)
def testGameLogic(self): userA = User.User("testUserA") userB = User.User("testUserB") while(1): rocketPositionA=Utils.getRandomPosition(Utils.BOARDSIZE) userA.sendRocket(rocketPositionA, userB) if(userB.isDefeated()): break rocketPositionB=Utils.getRandomPosition(Utils.BOARDSIZE) userB.sendRocket(rocketPositionB, userA) if(userA.isDefeated()): break self.assertTrue(userA.isDefeated() or userB.isDefeated(), 'Game should have finished now')
def getUserCoordinate(user, coordinateName): response = None while 1: sendMessageToUser(user.clientSocket, "send a rocket to which " + coordinateName) response = getMessageFromUser(user.clientSocket) if response.isdigit(): if Utils.isValidCoordinate(int(response), Utils.BOARDSIZE): break sendMessageToUser( user.clientSocket, "Invalid input, please enter a positive number between 0 and " + str(Utils.BOARDSIZE - 1) ) return int(response)
def isValidPosition(self, position): if Utils.isValidCoordinate(position.getRow(), self.size) and Utils.isValidCoordinate(position.getColumn(), self.size): if not self.grid[position.getRow()][position.getColumn()].getIsBoat(): return True return False