Overview
| Comment: | Add functions to track average contribution, average and median scores | 
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive | 
| Timelines: | family | ancestors | descendants | both | trunk | 
| Files: | files | file ages | folders | 
| SHA3-256: | 1de0c8566fa54f7c8f0060ec5d8adb1b | 
| User & Date: | joel on 2018-11-22 16:02:27 | 
| Other Links: | manifest | tags | 
Context
| 2018-11-22 | ||
| 16:04 | Add score sheets for individual players to Excel output (closes [927402827e]) check-in: 940dde user: joel tags: trunk | |
| 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 | |
Changes
Modified bunco.py from [481d05] to [dae914].
| 1 2 3 4 5 6 7 8 9 | 1 2 3 4 5 6 7 8 9 10 | + | 
# Test
import csv, random, sqlite3
from statistics import median
teammate_lookup = { 0: 2, 1: 3, 2: 0, 3: 1 }
fuzzydie_holder = 'x'
def TurnInProgress():
    return -1
 | 
| ︙ | |||
| 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | + + + + + + + + + | 
        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 average_contrib_pct(self):
        pcts = []
        for n in range(len(self.round_scores)):
            if self.round_scores[n] > 0:
                pcts.append(self.personal_roll_scores[n] / self.round_scores[n])
            else:
                pcts.append(0)
        return sum(pcts) / len(pcts)
    def score_last_roll(self):
        desired_num = Game.current_round() % 6
        desired_num = 6 if desired_num == 0 else desired_num
    
        roll_score = 0
        
 | 
| ︙ | |||
| 325 326 327 328 329 330 331 332 333 334 335 336 337 338 | 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 | + + + + + + + + + | 
        cls.cur_round += 1
    def print_status(self):
        for n, table in enumerate(self.tables):
            print(f"== TABLE {n+1} == Team 1:{table.team1_score} pts, Team 2:{table.team2_score} pts")
            for player in table.players:
                print(f"    {player.name} {player.round_scores[Game.current_round() - 1]} points, streak {player.max_streak} buncos {sum(player.round_bunco_counts)}")
    
    def average_total_score(self):
        all_scores = [sum(p.round_scores) for p in self.players]
        return sum(all_scores) / len(all_scores)
    def median_total_score(self):
        all_scores = [sum(p.round_scores) for p in self.players]
        
        return median(all_scores)
    def prep_next_round(self):
        # losers from head table move to next table
        headtable_losers = self.tables[0].losers()
        log_table_move(headtable_losers, "lost", self.tables[0], self.tables[1])
        round_winners = self.tables[1].swap_for_winners(headtable_losers)
 | 
| ︙ |