i'm working on memory game. want display images of cards in 2 rows. cards displayed correctly, except 1st 1 in second row. running code requires using codeskulptor. entire program here: http://www.codeskulptor.org/#user41_a22429vx58_2.py
def draw(canvas): global deck, cards, width, height num_start = 10 w = 67 h = 100 center_source = [w // 2, h // 2] center_dest = [w // 2, h // 2] c in deck: card in cards: if card == c: if center_dest[0] <= width: canvas.draw_image(cards[card], (center_source), (w , h), (center_dest), (w, h)) center_dest[0] += w + 2 elif center_dest[0] > width: center_dest = [w // 2, h // 2 + h] canvas.draw_image(cards[card], (center_source), (w , h), (center_dest), (w, h *2)) center_dest[0] += w + 2
your elif condition triggers 1 time when center_dest
needs reset horizontal position. when canvas.draw_image(cards[card], (center_source), (w , h), (center_dest), (w, h *2))
gets called h * 2
causes improper draw.
if remove *2
work. restructure logic follows not duplicating draw:
if center_dest[0] > width: center_dest = [w // 2, h // 2 + h] canvas.draw_image(cards[card], (center_source), (w , h), (center_dest), (w, h)) center_dest[0] += w + 2
to make extensible arbitrary number of rows change update to:
if center_dest[0] > width: center_dest[0] = w // 2 center_dest[1] += h
Comments
Post a Comment