Add Player + Concession + getWagons
This commit is contained in:
parent
c18209402c
commit
fa2cde4c44
@ -5,7 +5,6 @@ import os
|
||||
import random
|
||||
import jsonpickle
|
||||
|
||||
# Class for Circus: list of <number> wagons, of the 5 colors
|
||||
class Circus:
|
||||
# There are:
|
||||
# 4 wagons of each colors (until 2 players' stop)
|
||||
@ -26,17 +25,68 @@ class Circus:
|
||||
color = colors[random.randint(0, 4)]
|
||||
self.wagons.append(color)
|
||||
remaining[color] = remaining[color] - 1
|
||||
self.state = 0 # 0 means Circus is not used in game yet, 1 means next wagon in list is #1, and so on
|
||||
|
||||
def getWagon(self):
|
||||
if self.state == 0:
|
||||
print("Circus is not or no longer in game.")
|
||||
return False
|
||||
print("Player obtained a " + self.wagons[self.state - 1] + "circus sticker!")
|
||||
self.state = self.state + 1
|
||||
if self.state == len(self.wagons) - 1:
|
||||
print("Circus stickers are now depleted.")
|
||||
self.state = 0
|
||||
|
||||
|
||||
class ConcessionCard: # name may be different in English
|
||||
# Each card contains:
|
||||
# 6 cities to connect to the player's concession. There is no need to implement those.
|
||||
# 7 gold "pepites", as rewards when the player succefully connects a city to their concession. The player can choose
|
||||
# which "pepite" to earn, and then discovers the associated reward (between 11 and 17 coins).
|
||||
# A ConcessionCard is then composed of 7 pepites, with the rewards randomly distributed.
|
||||
def __init__(self):
|
||||
availableValues = [11, 12, 13, 14, 15, 16, 17]
|
||||
pepitesNb = len(availableValues) - 1
|
||||
self.pepites = []
|
||||
for n in range(0, 7):
|
||||
choice = random.randint(0, pepitesNb - n)
|
||||
self.pepites.append(availableValues[choice])
|
||||
availableValues.pop(choice)
|
||||
self.taken = []
|
||||
|
||||
def getReward(self, choice):
|
||||
if choice in self.taken:
|
||||
print(str(choice) + " has already been obtained.")
|
||||
return False
|
||||
self.taken.append(choice)
|
||||
print("Congrats! You obtained $" + str(self.pepites[choice]))
|
||||
return True
|
||||
|
||||
class Player:
|
||||
def __init__(self, color):
|
||||
self.color = color
|
||||
self.concession = ConcessionCard()
|
||||
|
||||
class Game:
|
||||
|
||||
# initGame() is used to generate all data for a campaign and initialize status variables
|
||||
def initGame(self, playersNb):
|
||||
self.circusList = Circus(playersNb)
|
||||
# Game status
|
||||
self.year = 1858
|
||||
|
||||
# General data to generate
|
||||
self.circus = Circus(playersNb)
|
||||
# Mama O'Connell
|
||||
# Treasures
|
||||
# Concessions
|
||||
self.circusState = 0 # 0 means Circus is not used in game yet, 1 means next wagon in list is #1, and so on
|
||||
self.year = 1858
|
||||
|
||||
# Players
|
||||
self.players = []
|
||||
for n in range(0, playersNb):
|
||||
color = input("Enter the player's color: ")
|
||||
self.players.append(Player(color))
|
||||
|
||||
# TODO: print status of the game (year, players (color, concession pepites), circus next wagon, treasures remaining to find)
|
||||
#def printStatus(self):
|
||||
|
||||
def saveData(self):
|
||||
savefile = open('./savefile.json', 'w+')
|
||||
@ -49,11 +99,33 @@ def loadData():
|
||||
data = jsonpickle.decode(content)
|
||||
return data
|
||||
|
||||
# Test of data generation
|
||||
|
||||
# TESTS
|
||||
playersNb = 3
|
||||
|
||||
# Test of data generation
|
||||
# myGame = Game()
|
||||
# myGame.initGame(playersNb)
|
||||
# myGame.saveData()
|
||||
myGame = loadData()
|
||||
print(myGame.year)
|
||||
print(myGame.circusList.wagons)
|
||||
|
||||
# Test of data loading
|
||||
# myGame = loadData()
|
||||
# print(myGame.year)
|
||||
# print(myGame.circus.wagons)
|
||||
|
||||
# Test of ConcessionCard
|
||||
cc = ConcessionCard()
|
||||
userChoice = 3
|
||||
print(cc.pepites)
|
||||
cc.getReward(userChoice - 1)
|
||||
print(cc.pepites)
|
||||
print(cc.taken)
|
||||
cc.getReward(userChoice - 1)
|
||||
print(cc.pepites)
|
||||
print(cc.taken)
|
||||
|
||||
# Test of Player
|
||||
# myGame = Game()
|
||||
# myGame.initGame(playersNb)
|
||||
# print(myGame.players[1].color)
|
||||
# print(myGame.players[1].concession.pepites)
|
||||
|
Loading…
Reference in New Issue
Block a user