コード例 #1
0
    def write_stats(self, spies_won):
        session = Session()

        game = Game(num_players=len(self.players), date=datetime.datetime.utcnow(), resistance_rounds=self.resistance_rounds, spy_rounds=self.spy_rounds)

        for player_name in self.players:
            player = Player.query.filter_by(name=player_name)
            if player is None:
                player = Player(name=player_name)

            if player in self.spies:
                if spies_won:
                    player.spy_wins = player.spy_wins + 1
                    player.total_wins = player.total_wins + 1
                else:
                    player.spy_losses = player.spy_losses + 1
            else:
                if not spies_won: 
                    player.resistance_wins = player.resistance_wins + 1
                    player.total_wins = player.total_wins + 1
                else:
                    player.resistance_losses = player.resistance_losses + 1

            player.total_games = player.total_games + 1
            player.win_percent = player.total_wins / player.total_games
            game.players.append(player)
            session.add(player)

        session.add(game)
        session.commit()
コード例 #2
0
ファイル: game.py プロジェクト: barbourkd/resistance-bot
    def write_stats(self, spies_won):
        session = Session()

        # First, write the game:
        game = Game(num_players=len(self.players), date=datetime.datetime.utcnow(), resistance_rounds=self.resistance_rounds, spy_rounds=self.spy_rounds)

        for player_name in self.players:
            player = Player.query.filter_by(name=player_name)
            if player is None:
                player = Player(name=player_name)

            if player in self.spies:
                if spies_won:
                    player.spy_wins = player.spy_wins + 1
                else:
                    player.spy_losses = player.spy_losses + 1
            else:
                if not spies_won: 
                    player.resistance_wins = player.resistance_wins + 1
                else:
                    player.resistance_losses = player.resistance_losses + 1

            game.players.append(player)
            session.add(player)

        session.add(game)
        session.commit()
コード例 #3
0
    def test_players(self):
        session = Session()
        p1 = Player(name='test_user')
        p1.spy_wins = 10
        session.add(p1)
        session.commit()

        g = Game(num_players=2,
                 date=datetime.datetime.utcnow(),
                 resistance_rounds=3,
                 spy_rounds=2)
        p2 = Player(name='test_user2')

        g.players.append(p1)
        g.players.append(p2)

        session.add(g)
        session.add(p2)
        session.commit()

        player_list = session.query(Player).filter_by(name='test_user').all()
        self.assertEqual(len(player_list), 1)
        self.assertIn(p1, player_list)

        player = player_list[0]
        self.assertEqual(len(player.games), 1)
        self.assertIn(g, player.games)
コード例 #4
0
    def test_game_stats(self):
        session = Session()

        p1 = Player(name='test_user')
        p2 = Player(name='test_user2')

        games = [
            Game(num_players=2,
                 date=datetime.datetime.utcnow(),
                 resistance_rounds=3,
                 spy_rounds=2),
            Game(num_players=2,
                 date=datetime.datetime.utcnow(),
                 resistance_rounds=3,
                 spy_rounds=2),
            Game(num_players=2,
                 date=datetime.datetime.utcnow(),
                 resistance_rounds=3,
                 spy_rounds=2),
            Game(num_players=2,
                 date=datetime.datetime.utcnow(),
                 resistance_rounds=1,
                 spy_rounds=3)
        ]

        for game in games:
            game.players.append(p1)
            game.players.append(p2)
            session.add(game)

        session.add(p1)
        session.add(p2)
        session.commit()

        total_games = session.query(Game).count()
        resistance_wins = session.query(Game).filter(
            Game.resistance_rounds >= 3).count()
        spy_wins = session.query(Game).filter(Game.spy_rounds >= 3).count()

        self.assertEqual(resistance_wins / total_games, 3 / 4)
        self.assertEqual(spy_wins / total_games, 1 / 4)
コード例 #5
0
    def test_games(self):
        session = Session()
        p1 = Player(name='test_user')
        p2 = Player(name='test_user2')

        g = Game(num_players=2,
                 date=datetime.datetime.utcnow(),
                 resistance_rounds=3,
                 spy_rounds=2)

        g.players.append(p1)
        g.players.append(p2)

        session.add(g)
        session.add(p1)
        session.add(p2)
        session.commit()

        query_game = session.query(Game).first()
        self.assertEqual(query_game, g)

        self.assertEqual(len(query_game.players), 2)
        self.assertIn(p1, query_game.players)
コード例 #6
0
	def test_players(self):
		session = Session()
		p1 = Player(name='test_user')
		p1.spy_wins = 10
		session.add(p1)
		session.commit()

		g = Game(num_players=2, date=datetime.datetime.utcnow(), resistance_rounds=3, spy_rounds=2)
		p2 = Player(name='test_user2')

		g.players.append(p1)
		g.players.append(p2)

		session.add(g)
		session.add(p2)
		session.commit()

		player_list = session.query(Player).filter_by(name='test_user').all()
		self.assertEqual(len(player_list), 1)
		self.assertIn(p1, player_list)

		player = player_list[0]
		self.assertEqual(len(player.games), 1)
		self.assertIn(g, player.games)
コード例 #7
0
 def generate_test_players(self, num):
     for x in xrange(num):
         p = Player(name=str(x))
         self.players.append(p)