コード例 #1
0
    def json_to_species(cls, json_species):
        """
        Converts a JSON Species+ into a Species.
        :param json_species: a JSON Species+ as specified by the data definition at
                             http://www.ccs.neu.edu/home/matthias/4500-s16/6.html
        :return: a Species object
        """
        gdict = globals()
        if len(json_species) == SPECIES_LENGTH:
            [[gdict[FOOD], species_food], [gdict[BODY], species_body],
             [gdict[POPULATION], species_pop],
             [gdict[TRAITS], json_species_traits]] = json_species
            fat_food = False
        else:
            [[gdict[FOOD], species_food], [gdict[BODY], species_body],
             [gdict[POPULATION], species_pop],
             [gdict[TRAITS], json_species_traits], [gdict[FATFOOD],
                                                    fat_food]] = json_species

        species_traits = [
            cls.json_to_trait(trait) for trait in json_species_traits
        ]
        species_obj = Species(species_pop, species_food, species_body,
                              species_traits, fat_food)
        species_obj.validate_attributes()
        return species_obj
コード例 #2
0
    def json_to_species(cls, json_species):
        if len(json_species) == SPECIES_LENGTH:
            [[globals()[FOOD], species_food], [globals()[BODY], species_body],
             [globals()[POPULATION], species_pop],
             [globals()[TRAITS], json_species_traits]] = json_species
            fat_food = None
        elif len(json_species) == SPECIES_FAT_LENGTH:
            [[globals()[FOOD], species_food], [globals()[BODY], species_body],
             [globals()[POPULATION], species_pop],
             [globals()[TRAITS], json_species_traits],
             [globals()[FATFOOD], fat_food]] = json_species
            assert (species_body >= fat_food >= MIN_FATFOOD)
        else:
            raise AssertionError

        assert (all([
            MAX_FOOD >= species_food >= MIN_FOOD,
            MAX_BODY >= species_body >= MIN_BODY,
            MAX_POP >= species_pop >= MIN_POP,
            MAX_TRAITS >= len(json_species_traits)
        ]))

        species_traits = [
            cls.json_to_trait(trait) for trait in json_species_traits
        ]
        species_obj = Species(species_pop, species_food, species_body,
                              species_traits, fat_food)
        return species_obj
コード例 #3
0
    def setUp(self):
        self.jt_1 = CARNIVORE
        self.jt_2 = FATTISSUE
        self.jt_3 = BURROWING
        self.jt_4 = CLIMBING

        self.jSpecies_1 = [[FOOD, 2], [BODY, 2], [POPULATION, 2],
                           [TRAITS, [self.jt_1]]]
        self.jSpecies_2 = [[FOOD, 2], [BODY, 3], [POPULATION, 3],
                           [TRAITS, [self.jt_2]], [FATFOOD, 0]]
        self.jSpecies_3 = [[FOOD, 2], [BODY, 3], [POPULATION, 4],
                           [TRAITS, [self.jt_3, self.jt_4]]]
        self.jSpecies_4 = [[FOOD, 2], [BODY, 2], [POPULATION, 2],
                           [TRAITS, [self.jt_3, self.jt_4]]]

        self.jPlayer_1 = [[ID, 1], [SPECIES, [self.jSpecies_1]], [BAG, 2]]
        self.jPlayer_2 = [[ID, 2], [SPECIES, [self.jSpecies_2]], [BAG, 1]]
        self.jPlayer_3 = [[ID, 3],
                          [SPECIES, [self.jSpecies_3, self.jSpecies_4]],
                          [BAG, 3]]
        self.jPlayer_4 = [[ID, 2], [SPECIES, []], [BAG, 1]]

        self.json_feeding = [
            self.jPlayer_1, 10, [self.jPlayer_2, self.jPlayer_3]
        ]
        self.json_feed_1 = False
        self.json_feed_2 = self.jSpecies_3
        self.json_feed_3 = [self.jSpecies_2, 3]
        self.json_feed_4 = [self.jSpecies_1, self.jPlayer_2, self.jSpecies_2]

        self.t_1 = TraitCard(CARNIVORE)
        self.t_2 = TraitCard(FATTISSUE)
        self.t_3 = TraitCard(BURROWING)
        self.t_4 = TraitCard(CLIMBING)

        self.species_1 = Species(2, 2, 2, [self.t_1])
        self.species_2 = Species(3, 2, 3, [self.t_2], 0)
        self.species_3 = Species(4, 2, 3, [self.t_3, self.t_4])
        self.species_4 = Species(2, 2, 2, [self.t_3, self.t_4])

        self.player_1 = PlayerState(name=1,
                                    food_bag=2,
                                    species=[self.species_1])
        self.player_2 = PlayerState(name=2,
                                    food_bag=1,
                                    species=[self.species_2])
        self.player_3 = PlayerState(name=3,
                                    food_bag=3,
                                    species=[self.species_3, self.species_4])
        self.player_4 = PlayerState(name=2, food_bag=1, species=[])

        self.feeding = [self.player_1, 10, [self.player_2, self.player_3]]
        self.feed_1 = False
        self.feed_2 = self.species_3
        self.feed_3 = [self.species_2, 3]
        self.feed_4 = [self.species_1, self.player_2, self.species_2]

        self.jSpecies_card1 = [2, WARNINGCALL]
        self.jSpecies_card2 = [5, CARNIVORE]
        self.jSpecies_card3 = [-3, BURROWING]
        self.jSpecies_card4 = [3, AMBUSH]
        self.jSpecies_card5 = [0, SCAVENGER]

        self.species_card1 = TraitCard(WARNINGCALL, 2)
        self.species_card2 = TraitCard(CARNIVORE, 5)
        self.species_card3 = TraitCard(BURROWING, -3)
        self.species_card4 = TraitCard(AMBUSH, 3)
        self.species_card5 = TraitCard(SCAVENGER, 0)

        self.jList_of_players = [
            self.jPlayer_1, self.jPlayer_4, self.jPlayer_3
        ]
        self.jDeck = [
            self.jSpecies_card1, self.jSpecies_card2, self.jSpecies_card3,
            self.jSpecies_card4, self.jSpecies_card5
        ]
        self.jDealer = [self.jList_of_players, 12, self.jDeck]

        self.list_of_players = [self.player_1, self.player_4, self.player_3]
        self.deck = [
            self.species_card1, self.species_card2, self.species_card3,
            self.species_card4, self.species_card5
        ]

        self.dealer1 = Dealer(self.list_of_players, 12, self.deck)