Overview
| Comment: | Add support for fuzzy die tracking (closes [8bc9b13fd4]) |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
d1c9abbbdd557d9bd87a2e3e749a0cab |
| User & Date: | joel on 2018-11-20 03:14:02 |
| Original Comment: | Add support for fuzzy die tracking (closes 8bc9b13fd4) |
| Other Links: | manifest | tags |
References
|
2018-11-20
| ||
| 03:15 | • Ticket [8bc9b1] Support “traveling” prize status still Open with 4 other changes artifact: 19297f user: joel | |
Context
|
2018-11-20
| ||
| 03:20 | Adjust player display string check-in: 663177 user: joel tags: trunk | |
| 03:14 | Add support for fuzzy die tracking (closes [8bc9b13fd4]) check-in: d1c9ab user: joel tags: trunk | |
|
2018-11-18
| ||
| 23:49 | Update README check-in: 7bf9a9 user: joel tags: trunk | |
Changes
Modified bunco.py from [10969e] to [314493].
| ︙ | ︙ | |||
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
result += 1 if die == desired_num else 0
print(f"In round {current_round} {name} rolled {dice} = {result}")
return result
class Player:
def __init__(self, name, dex, math, speed):
self.name = name
self.dex = dex
self.math_comprehension = math
self.roll_speed = speed
self.max_streak = 0
self.bunco_count = 0
self.round_scores = [0]
self.round_roll_counts = [0]
self.personal_roll_scores = [0]
self.turn_progress = 0
self.current_streak = 0
def __repr__(self):
return f"<Player {self.name}:\t\t" \
+ f"\tscores\t\t{self.round_scores}>" \
+ f"\troll counts\t{self.round_roll_counts}>"
def prep_new_round(self):
self.round_scores.append(0)
self.round_roll_counts.append(0)
self.turn_progress = 0
self.current_streak = 0
def tick(self, current_round):
result = TurnInProgress()
if self.turn_progress < 25:
# Grabbing the dice
# TODO: Incorporate DEXTERITY stat
self.turn_progress += random.randint(12,25)
elif self.turn_progress < 50:
# Rolling the dice
# TODO: Incorporate ROLL SPEED stat
| > > > > > > > > > > > > | 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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
result += 1 if die == desired_num else 0
print(f"In round {current_round} {name} rolled {dice} = {result}")
return result
class Player:
fuzzydie_holder = None
def __init__(self, name, dex, math, speed):
self.name = name
self.dex = dex
self.math_comprehension = math
self.roll_speed = speed
self.max_streak = 0
self.bunco_count = 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
def __repr__(self):
return f"<Player {self.name}:\t\t" \
+ f"\tscores\t\t{self.round_scores}>" \
+ f"\troll counts\t{self.round_roll_counts}>"
def prep_new_round(self):
self.round_scores.append(0)
self.round_roll_counts.append(0)
self.personal_roll_scores.append(0)
self.turn_progress = 0
self.current_streak = 0
def tick(self, current_round):
result = TurnInProgress()
if self.fuzzydie_holder is self:
self.current_fuzzydie_streak += 1
self.max_fuzzydie_streak = max(self.max_fuzzydie_streak, self.current_fuzzydie_streak)
else:
self.current_fuzzydie_streak = 0
if self.turn_progress < 25:
# Grabbing the dice
# TODO: Incorporate DEXTERITY stat
self.turn_progress += random.randint(12,25)
elif self.turn_progress < 50:
# Rolling the dice
# TODO: Incorporate ROLL SPEED stat
|
| ︙ | ︙ | |||
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
self.round_roll_counts[current_round - 1] += 1
roll_result = roll_dice(self.name, current_round, self.round_roll_counts[current_round - 1])
if roll_result > 0:
self.current_streak += 1
self.max_streak = max(self.current_streak, self.max_streak)
self.round_scores[current_round - 1] += roll_result
if roll_result == 21:
self.bunco_count += 1
else:
self.current_streak = 0
result = roll_result
self.turn_progress = 0
return result
| > > | 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
self.round_roll_counts[current_round - 1] += 1
roll_result = roll_dice(self.name, current_round, self.round_roll_counts[current_round - 1])
if roll_result > 0:
self.current_streak += 1
self.max_streak = max(self.current_streak, self.max_streak)
self.round_scores[current_round - 1] += roll_result
self.personal_roll_scores[current_round - 1] += roll_result
if roll_result == 21:
self.bunco_count += 1
self.rolled_bunco = True
else:
self.current_streak = 0
result = roll_result
self.turn_progress = 0
return result
|
| ︙ | ︙ | |||
209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
self.players = load_players(playerfile)
self.tables = assign_teams(self.players)
self.current_round = 1
def tick(self):
for table in self.tables:
table.tick(self.current_round)
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[self.current_round - 1]} points, streak {player.max_streak} buncos {player.bunco_count}")
| > > > > > > > > > > | 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 |
self.players = load_players(playerfile)
self.tables = assign_teams(self.players)
self.current_round = 1
def tick(self):
for table in self.tables:
table.tick(self.current_round)
bunco_rollers = [p for p in self.players if p.rolled_bunco is True]
# If multiple people rolled Bunco this tick, and one of them already has the
# fuzzy die, they retain it.
# Otherwise, the last person in the list gets the fuzzy die.
if bunco_rollers and Player.fuzzydie_holder not in bunco_rollers:
Player.fuzzydie_holder = bunco_rollers[-1]
for player in bunco_rollers:
player.rolled_bunco = False # Reset flag
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[self.current_round - 1]} points, streak {player.max_streak} buncos {player.bunco_count}")
|
| ︙ | ︙ |