def new_rectangular_obstacle (self): o = RectangularObstacle ((float (self.new_obstacle_dim0.get ()), float (self.new_obstacle_dim1.get ()))) o.pos = (5, -5) o.angle = 0 self.area_view.area.table.obstacles.append (o) self.update ()
def add_plate (pos, color): plate = RectangularObstacle ((170, 170), 0) plate.pos = pos plate.angle = 0 plate.cherries = [ ] self.plates.append (plate) cpos = ((-42, -42), (-42, 0), (-42, +42), (0, -21), (0, 21), (42, -42), (42, 0), (42, +42)) ccol = [ color ] + 7 * [ None ] random.shuffle (ccol) for p, c in zip (cpos, ccol): cherry = RoundObstacle (20, 0) cherry.pos = p cherry.color = c plate.cherries.append (cherry)
def add_gold_bar (pos, angle, level = 1): gold_bar = RectangularObstacle ((150, 70), level) gold_bar.pos = pos gold_bar.angle = angle gold_bar.value = 3 self.gold_bars.append (gold_bar)
def __init__ (self, cards = None): simu.model.table.Table.__init__ (self) # Well, this is a boring write only code which create every elements. # Add coins. self.coins = [ ] def add_coin (pos, angle, level = 1): coin = RoundObstacle (60, level) coin.pos = pos coin.angle = angle coin.value = 1 self.coins.append (coin) def add_coin_circle (center, radius, start, step, n, level = 1): angle = start for i in xrange (n): pos = (center[0] + radius * math.cos (angle), center[1] + radius * math.sin (angle)) add_coin (pos, angle, level) angle += step add_coin ((1000, 1500), 0) add_coin ((2000, 1500), pi) add_coin ((450, 300), pi) add_coin ((3000 - 450, 300), 0) add_coin_circle ((1500, 300), 90, 0, pi / 2, 4) add_coin_circle ((1500 - 400, 1000), 300 - 60, pi / 4, pi / 4, 7) add_coin_circle ((1500 + 400, 1000), 300 - 60, pi + pi / 4, pi / 4, 7) add_coin_circle ((1500 - 400, 1000), 115, pi / 4, pi / 2, 4) add_coin_circle ((1500 + 400, 1000), 115, pi / 4, pi / 2, 4) add_coin_circle ((1500 - 400, 1000), 105, pi / 4, pi / 2, 4, 3) add_coin_circle ((1500 + 400, 1000), 105, pi / 4, pi / 2, 4, 3) # Add gold bars. self.gold_bars = [ ] def add_gold_bar (pos, angle, level = 1): gold_bar = RectangularObstacle ((150, 70), level) gold_bar.pos = pos gold_bar.angle = angle gold_bar.value = 3 self.gold_bars.append (gold_bar) add_gold_bar ((1500, 647), 0) add_gold_bar ((1500 - 400, 1000 + 125 - 35), 0, 2) add_gold_bar ((1500 + 400, 1000 + 125 - 35), 0, 2) add_gold_bar ((1500 - 400, 1000 - 125 + 35), 0, 2) add_gold_bar ((1500 + 400, 1000 - 125 + 35), 0, 2) ba = pi / 2 - 0.04995839 cba = math.cos (ba) sba = math.sin (ba) gbx = 400 - (285 + 75) * cba + 35 gby = 1500 - (285 + 75) * sba add_gold_bar ((gbx, gby), ba) add_gold_bar ((3000 - gbx, gby), pi - ba) # Set random black coins. nblack = 0 while nblack < 4: coin = random.choice (self.coins[2:]) if coin.value: coin.value = 0 nblack += 1 # Add everything to obstacles. self.obstacles += self.coins self.obstacles += self.gold_bars # Add totem as obstacles. for i in (-1, 1): o = RectangularObstacle ((250, 250), 3) o.pos = (1500 + i * 400, 1000) self.obstacles.append (o)
def add_gift (pos, color): gift = RectangularObstacle ((150, 50), 0) gift.pos = pos gift.color = color gift.state = False self.gifts.append (gift)