Initial commit: Generator for Circus
This commit is contained in:
		
							
								
								
									
										6
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					# Ticket to Campaign
 | 
				
			||||||
 | 
					Tooling for running a campaign of Ticket to Ride Legacy: Legends of the West without altering the game material
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Components
 | 
				
			||||||
 | 
					* `data-generator.py` contains models to generate data for a campaign
 | 
				
			||||||
 | 
					  * currently, only generates a Circus instance
 | 
				
			||||||
							
								
								
									
										32
									
								
								data-generator.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								data-generator.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					# 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)
 | 
				
			||||||
		Reference in New Issue
	
	Block a user