Overview
Comment: | Track player wins and losses |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
eb833168ae16949b1fbfeba450f2277c |
User & Date: | joel on 2018-11-22 13:41:49 |
Other Links: | manifest | tags |
Context
2018-11-22
| ||
16:02 | Add functions to track average contribution, average and median scores check-in: 1de0c8 user: joel tags: trunk | |
13:41 | Track player wins and losses check-in: eb8331 user: joel tags: trunk | |
13:24 | Add function to spit out overview of game in Excel (start on [927402827e]) check-in: d20fed user: joel tags: trunk | |
Changes
Modified bunco.py from [87116e] to [481d05].
︙ | ︙ | |||
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | self.math_comprehension = math self.roll_speed = speed self.max_streak = 0 self.round_bunco_counts = [0] self.round_scores = [0] self.round_roll_counts = [0] self.personal_roll_scores = [0] self.turn_progress = 0 self.current_streak = 0 self.max_fuzzydie_streak = 0 self.current_fuzzydie_streak = 0 self.rolled_bunco = False self.current_roll = [] def __repr__(self): return f"<Player {self.name}: " \ + f"\tscores\t\t{self.round_scores}>" \ + f"\troll counts\t{self.round_roll_counts}>" def __str__(self): return self.name def prep_new_round(self): self.round_scores.append(0) self.round_roll_counts.append(0) self.personal_roll_scores.append(0) self.round_bunco_counts.append(0) self.turn_progress = 0 self.current_streak = 0 def score_last_roll(self): desired_num = Game.current_round() % 6 desired_num = 6 if desired_num == 0 else desired_num | > > | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | self.math_comprehension = math self.roll_speed = speed self.max_streak = 0 self.round_bunco_counts = [0] self.round_scores = [0] self.round_roll_counts = [0] self.personal_roll_scores = [0] self.round_wins = [0] self.turn_progress = 0 self.current_streak = 0 self.max_fuzzydie_streak = 0 self.current_fuzzydie_streak = 0 self.rolled_bunco = False self.current_roll = [] def __repr__(self): return f"<Player {self.name}: " \ + f"\tscores\t\t{self.round_scores}>" \ + f"\troll counts\t{self.round_roll_counts}>" def __str__(self): return self.name def prep_new_round(self): self.round_scores.append(0) self.round_roll_counts.append(0) self.personal_roll_scores.append(0) self.round_bunco_counts.append(0) self.round_wins.append(0) self.turn_progress = 0 self.current_streak = 0 def score_last_roll(self): desired_num = Game.current_round() % 6 desired_num = 6 if desired_num == 0 else desired_num |
︙ | ︙ | |||
203 204 205 206 207 208 209 210 211 212 213 214 215 216 | # Team 2 (odds) lost losers = self.players[1::2] # Player 2 move to spot 3 self.players[3] = self.players[2] # Replace middle two players self.players[1:3] = new_players return losers def prep_new_round(self): self.team1_score = 0 self.team2_score = 0 self.active_player = -1 for player in self.players: player.prep_new_round() | > > > > | 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 | # Team 2 (odds) lost losers = self.players[1::2] # Player 2 move to spot 3 self.players[3] = self.players[2] # Replace middle two players self.players[1:3] = new_players return losers def notch_wins(self): for player in self.winners(): player.round_wins[Game.current_round() - 1] = 1 def prep_new_round(self): self.team1_score = 0 self.team2_score = 0 self.active_player = -1 for player in self.players: player.prep_new_round() |
︙ | ︙ | |||
363 364 365 366 367 368 369 370 371 372 373 374 375 376 | # Settle ties at each table by doing a roll-off as many times as needed for table in self.tables: log('all', f"{table}: Team 1 {table.team1_score} pts, Team 2 {table.team2_score} pts") while table.team1_score == table.team2_score: log('all', f"{table} having a roll-off to resolve a tie") table.roll_off() log('all', f"{table}: Team 1 {table.team1_score} pts, Team 2 {table.team2_score} pts") log_db = sqlite3.connect("bunco.sqlite") log_dbc = log_db.cursor() def run_query(*args): log_dbc.execute(*args) log_db.commit() | > > | 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 | # Settle ties at each table by doing a roll-off as many times as needed for table in self.tables: log('all', f"{table}: Team 1 {table.team1_score} pts, Team 2 {table.team2_score} pts") while table.team1_score == table.team2_score: log('all', f"{table} having a roll-off to resolve a tie") table.roll_off() log('all', f"{table}: Team 1 {table.team1_score} pts, Team 2 {table.team2_score} pts") table.notch_wins() log_db = sqlite3.connect("bunco.sqlite") log_dbc = log_db.cursor() def run_query(*args): log_dbc.execute(*args) log_db.commit() |
︙ | ︙ |
Modified bunco_app.py from [e250da] to [b9a3c7].
︙ | ︙ | |||
118 119 120 121 122 123 124 | for n, player in enumerate(g.players): row = n + 3 ws.write(row, 0, player.name, row_heading) for r in range(g.current_round()): col = r + 1 ws.write(row, col, player.round_scores[r], score_style) | | > > > > > | 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | for n, player in enumerate(g.players): row = n + 3 ws.write(row, 0, player.name, row_heading) for r in range(g.current_round()): col = r + 1 ws.write(row, col, player.round_scores[r], score_style) # derive losses from wins losses = [int(not x) for x in player.round_wins] ws.write(row, end_col + 1, sum(player.round_scores), total_style) ws.write(row, end_col + 2, sum(player.round_wins), total_style) ws.write(row, end_col + 3, sum(losses), total_style) ws.write(row, end_col + 4, sum(player.round_bunco_counts), total_style) ws.write(row, end_col + 5, sum(player.round_roll_counts), total_style) wb.close() |