Exemple #1
0
	def generate(id=None, phase=1):
		"""
		:param id: The seed used for random generation. Defaults at random, but can be set for deterministic state generation
		:param phase: The phase at which your generated state starts at
		:return: A starting state generated using the parameters given
		"""

		rng = random.Random(id)
		deck = Deck.generate(id)
		player1s_turn = rng.choice([True, False])

		state = State(deck, player1s_turn)

		if phase == 2:
			while state.__phase == 1:
				if state.finished():
					return State.generate(id if id is None else id+1, phase) # Father forgive me

				state = state.next(rng.choice(state.moves()))

			total_score = state.__p1_points + state.__p2_points
			state.__set_points(1, int(total_score/2))
			state.__p1_pending_points = 0

			state.__set_points(2, int(total_score/2))
			state.__p2_pending_points = 0


		return state
    def test_generate(self):
        d = Deck.generate(0)

        stock = d.get_card_states().count("S")
        self.assertEqual(stock, 10, "The value should be 10")

        player1 = d.get_card_states().count("P1H")
        self.assertEqual(player1, 5, "The value should be 5")

        player2 = d.get_card_states().count("P2H")
        self.assertEqual(player2, 5, "The value should be 5")
    def test_trump_exchange(self):

        d = Deck.generate(0)
        print d.get_trump_suit()
        print d.get_card_states()
        if d.can_exchange(1):
            print "1 exchanged"
            d.exchange_trump()
            print d.get_card_states()

        elif d.can_exchange(2):
            print "2 exchanged"
            d.exchange_trump()
            print d.get_card_states()
        else:
            print "no one exchanged"
Exemple #4
0
	def test_clone(self):
		deck = Deck.generate(0)
		state = State(deck,True)
		clone = state.clone()

		self.assertEqual(state.finished(), clone.finished())

		self.assertEqual(state.revoked(), clone.revoked())

		self.assertEqual(state.winner(), clone.winner())

		current_deck = state.get_deck()
		clone_deck = clone.get_deck()
		self.assertEqual(current_deck.get_card_states(), clone_deck.get_card_states())


		pass
Exemple #5
0
    def generate(id=None, phase=1):
        """
		:param id: The seed used for random generation. Defaults at random, but can be set for deterministic state generation
		:param phase: The phase at which your generated state starts at
		:return: A starting state generated using the parameters given
		"""

        if id is None:
            id = random.randint(0, 100000)
        rng = random.Random(id)
        deck = Deck.generate(id)
        player1s_turn = rng.choice([True, False])

        state = State(deck, player1s_turn)

        if phase == 2:
            while state.__phase == 1:
                if state.finished():
                    return State.generate(id + 1, phase)  # Father forgive me

                state = state.next(rng.choice(state.moves()))

        return state