Example #1
0
    def generateCard(self, tileSeed, zoneId):
        rng = RandomNumGen.RandomNumGen(tileSeed)

        # Retrieve a list of Fish based on the Genus Type. Each Genus
        # found in the pond will be represented on the board.
        fishList = FishGlobals.getPondGeneraList(zoneId)

        # Determine the number of cells left to fill.
        emptyCells = (self.cardSize - 1) - len(fishList)

        rodId = 0
        for i in range(emptyCells):
            fish = FishGlobals.getRandomFishVitals(zoneId, rodId, rng)
            while (not fish[0]):
                fish = FishGlobals.getRandomFishVitals(zoneId, rodId, rng)
            fishList.append((fish[1], fish[2]))
            rodId += 1

            if rodId > 4: rodId = 0

        # Now, fill up the the card by randomly placing the fish in a cell.
        for index in range(self.cardSize):
            if index != self.cardSize // 2:
                choice = rng.randrange(0, len(fishList))
                self.cellList.append(fishList.pop(choice))
            else:
                self.cellList.append((None, None))
 def generateCard(self, tileSeed, zoneId):
     rng = RandomNumGen.RandomNumGen(tileSeed)
     rowSize = self.game.getRowSize()
     fishList = FishGlobals.getPondGeneraList(zoneId)
     for i in xrange(len(fishList)):
         fishTuple = fishList.pop(0)
         weight = FishGlobals.getRandomWeight(fishTuple[0], fishTuple[1])
         fish = FishBase.FishBase(fishTuple[0], fishTuple[1], weight)
         fishList.append(fish)
     
     emptyCells = self.game.getCardSize() - 1 - len(fishList)
     rodId = 0
     for i in xrange(emptyCells):
         fishVitals = FishGlobals.getRandomFishVitals(zoneId, rodId, rng)
         while not fishVitals[0]:
             fishVitals = FishGlobals.getRandomFishVitals(zoneId, rodId, rng)
         fish = FishBase.FishBase(fishVitals[1], fishVitals[2], fishVitals[3])
         fishList.append(fish)
         rodId += 1
         if rodId > 4:
             rodId = 0
             continue
     
     for i in xrange(rowSize):
         for j in xrange(self.game.getColSize()):
             color = self.getCellColor(i * rowSize + j)
             if i * rowSize + j == self.game.getCardSize() / 2:
                 tmpFish = 'Free'
             else:
                 choice = rng.randrange(0, len(fishList))
                 tmpFish = fishList.pop(choice)
             xPos = BG.CellImageScale * (j - 2) + BG.GridXOffset
             yPos = BG.CellImageScale * (i - 2) - 0.014999999999999999
             cellGui = BingoCardCell.BingoCardCell(i * rowSize + j, tmpFish, self.model, color, self, image_scale = BG.CellImageScale, pos = (xPos, 0, yPos))
             self.cellGuiList.append(cellGui)
    def generateCard(self, tileSeed, zoneId):
        rng = RandomNumGen.RandomNumGen(tileSeed)
        rowSize = self.game.getRowSize()
        fishList = FishGlobals.getPondGeneraList(zoneId)
        for i in range(len(fishList)):
            fishTuple = fishList.pop(0)
            weight = FishGlobals.getRandomWeight(fishTuple[0], fishTuple[1])
            fish = FishBase.FishBase(fishTuple[0], fishTuple[1], weight)
            fishList.append(fish)

        emptyCells = self.game.getCardSize() - 1 - len(fishList)
        rodId = 0
        for i in range(emptyCells):
            fishVitals = FishGlobals.getRandomFishVitals(zoneId, rodId, rng)
            while not fishVitals[0]:
                fishVitals = FishGlobals.getRandomFishVitals(zoneId, rodId, rng)

            fish = FishBase.FishBase(fishVitals[1], fishVitals[2], fishVitals[3])
            fishList.append(fish)
            rodId += 1
            if rodId > 4:
                rodId = 0

        for i in range(rowSize):
            for j in range(self.game.getColSize()):
                color = self.getCellColor(i * rowSize + j)
                if i * rowSize + j == self.game.getCardSize() / 2:
                    tmpFish = 'Free'
                else:
                    choice = rng.randrange(0, len(fishList))
                    tmpFish = fishList.pop(choice)
                xPos = BG.CellImageScale * (j - 2) + BG.GridXOffset
                yPos = BG.CellImageScale * (i - 2) - 0.015
                cellGui = BingoCardCell.BingoCardCell(i * rowSize + j, tmpFish, self.model, color, self, image_scale=BG.CellImageScale, pos=(xPos, 0, yPos))
                self.cellGuiList.append(cellGui)
Example #4
0
    def generateCard(self, tileSeed, zoneId):
        rng = RandomNumGen.RandomNumGen(tileSeed)
        fishList = FishGlobals.getPondGeneraList(zoneId)
        emptyCells = self.cardSize - 1 - len(fishList)
        rodId = 0
        for i in xrange(emptyCells):
            fish = FishGlobals.getRandomFishVitals(zoneId, rodId, rng)
            while not fish[0]:
                fish = FishGlobals.getRandomFishVitals(zoneId, rodId, rng)
            fishList.append((fish[1], fish[2]))
            rodId += 1
            if rodId > 4:
                rodId = 0
                continue

        for index in xrange(self.cardSize):
            if index != self.cardSize / 2:
                choice = rng.randrange(0, len(fishList))
                self.cellList.append(fishList.pop(choice))
                continue
            self.cellList.append((None, None))
Example #5
0
 def generateCard(self, tileSeed, zoneId):
     rng = RandomNumGen.RandomNumGen(tileSeed)
     fishList = FishGlobals.getPondGeneraList(zoneId)
     emptyCells = self.cardSize - 1 - len(fishList)
     rodId = 0
     for i in xrange(emptyCells):
         fish = FishGlobals.getRandomFishVitals(zoneId, rodId, rng)
         while not fish[0]:
             fish = FishGlobals.getRandomFishVitals(zoneId, rodId, rng)
         fishList.append((fish[1], fish[2]))
         rodId += 1
         if rodId > 4:
             rodId = 0
             continue
     
     for index in xrange(self.cardSize):
         if index != self.cardSize / 2:
             choice = rng.randrange(0, len(fishList))
             self.cellList.append(fishList.pop(choice))
             continue
         self.cellList.append((None, None))
Example #6
0
    def generateCard(self, tileSeed, zoneId):
        assert (self.game != None)

        rng = RandomNumGen.RandomNumGen(tileSeed)
        rowSize = self.game.getRowSize()

        # Retrieve a list of Fish based on the Genus Type. Each Genus
        # found in the pond will be represented on the board.
        fishList = FishGlobals.getPondGeneraList(zoneId)

        # Go through the fish list and generate actual fish.
        # NOTE: This should likely be removed when the fish logos come into play.
        # There is no need to generate a Fish object. Tuples (genus, species)
        # can effectively be used to identify the type of fish for a specific
        # BingoCardCell.
        for i in xrange(len(fishList)):
            fishTuple = fishList.pop(0)
            weight = FishGlobals.getRandomWeight(fishTuple[0], fishTuple[1])
            fish = FishBase.FishBase(fishTuple[0], fishTuple[1], weight)
            fishList.append(fish)

        # Determine the number of cells left to fill.
        emptyCells = (self.game.getCardSize() - 1) - len(fishList)

        # Fill up the empty cells with randomly generated fish. In order to
        # maintain fairness, iterate through the rods as well.
        rodId = 0
        for i in xrange(emptyCells):
            fishVitals = FishGlobals.getRandomFishVitals(zoneId, rodId, rng)
            while (not fishVitals[0]):
                fishVitals = FishGlobals.getRandomFishVitals(
                    zoneId, rodId, rng)

            fish = FishBase.FishBase(fishVitals[1], fishVitals[2],
                                     fishVitals[3])
            fishList.append(fish)
            rodId += 1
            if rodId > 4: rodId = 0

        # Now that we have generated all of the fish that will make up the card,
        # it is time to actually generate a BingoCardCell for every fish. This
        # cell will be parented to the GUI instance and its position and scale
        # are based on the CardImageScale. (See base positions above)
        for i in xrange(rowSize):
            for j in xrange(self.game.getColSize()):
                color = self.getCellColor(i * rowSize + j)
                if i * rowSize + j == self.game.getCardSize() / 2:
                    tmpFish = 'Free'
                else:
                    choice = rng.randrange(0, len(fishList))
                    tmpFish = fishList.pop(choice)

                xPos = BG.CellImageScale * (j - 2) + BG.GridXOffset
                yPos = BG.CellImageScale * (i - 2) - 0.015
                cellGui = BingoCardCell.BingoCardCell(
                    i * rowSize + j,
                    tmpFish,
                    self.model,
                    color,
                    self,
                    image_scale=BG.CellImageScale,
                    pos=(xPos, 0, yPos),
                )
                self.cellGuiList.append(cellGui)