ticket-to-campaign/data-generator.py

33 lines
1.2 KiB
Python
Raw Normal View History

2024-04-28 18:56:21 +02:00
# Generation of data for a campaign of Ticket to Ride Legacy Legends of the West
# Imports
import random
# Class for Circus: list of <number> wagons, of the 5 colors
class Circus:
# There are:
# 4 wagons of each colors (until 2 players' stop)
# 2 wagons of each colors (until 3 players' stop)
# 2 wagons of each colors (until 4 players' stop)
# 2 wagons of each colors (until 5 players' stop)
# NOTE: In the original distribution, the same color never appears twice in a row
# We chose to remove this constraint, for the sake of simplicity
def __init__(self, playersNb):
wagonsPerColors = 2 * playersNb
colors = "blue", "green", "black", "red", "yellow"
remaining = {"blue": wagonsPerColors, "green": wagonsPerColors, "black": wagonsPerColors, "red": wagonsPerColors, "yellow": wagonsPerColors}
self.wagons = []
for n in range(0, 5 * wagonsPerColors):
color = colors[random.randint(0, 4)]
while remaining[color] == 0:
color = colors[random.randint(0, 4)]
self.wagons.append(color)
remaining[color] = remaining[color] - 1
#def next(): # returns next color (i.e., color that the player will get it they use circus)
myCircus = Circus(3)
print(myCircus.wagons)