Need some help with Dice Game for daughter in school - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: Need some help with Dice Game for daughter in school (/thread-32474.html) |
Need some help with Dice Game for daughter in school - OptX - Feb-11-2021 Hi, my daughter needs to finish a project with a dice program in gygame. So far she can roll the dice and see the results. Now she needs to show the results in numbers too, not only the dice. I assume we need the print command for this ? Any help would be appreciated. This is what we got so far : from random import randrange class Die(): def __init__(self, position): self.position = position self.value = 6 self.displayed = False def show(self): pass def hide(self): pass def toggle(self): pass def throw(self): self.value = randrange(1, 6) def display(self): filename = str(self.value) + "_dots" if filename == "1_dots": filename = "1_dot" screen.blit(filename, self.position) die1 = Die((20, 80)) die2 = Die((180, 80)) die3 = Die((340, 80)) die4 = Die((500, 80)) die5 = Die((660, 80)) def number_count(dice): die1 = Die((20, 80)) die2 = Die((180, 80)) die3 = Die((340, 80)) die4 = Die((500, 80)) die5 = Die((660, 80)) numbers = [None, 0, 0, 0, 0, 0, 0] for die in dice: numbers[die.value] += 1 return numbers def product(a): p = 1 for f in a: p *= f return p def draw(): screen.clear() die1.display() die2.display() die3.display() die4.display() die5.display() def update(): pass def on_key_down(key): if key == keys.SPACE: die1.throw() die2.throw() die3.throw() die4.throw() die5.throw() RE: Need some help with Dice Game for daughter in school - nilamo - Feb-12-2021 print(number_count([die1, die2, die3, die4, die5, die6])) If that doesn't help, please share all the code (there's several references to a "screen" which isn't defined anywhere). It definitely looks like pygame code, but it's lacking almost all the code which would actually make pygame do anything haha. RE: Need some help with Dice Game for daughter in school - BashBedlam - Feb-12-2021 Assuming that you have images of the dice and the they are named according to the convention 1_dot.png, 2_dots.pgn, the following code will roll and display the dice from random import randrange from pygame import * init () screen = display.set_mode ((800, 400)) class Die(): def __init__(self, value, position): self.position = position self.value = value self.load_image (self.value) self.displayed = False def load_image (self, value) : filename = str(self.value) + "_dots.png" if filename == "1_dots.png": filename = "1_dot.png" self.image = image.load (filename) def show(self): pass def hide(self): pass def toggle(self): pass def throw(self): self.value = randrange(1, 6) self.load_image (self.value) def display(self): screen.blit(self.image, self.position) die1 = Die(1, (20, 80)) die2 = Die(2, (180, 80)) die3 = Die(3, (340, 80)) die4 = Die(4, (500, 80)) die5 = Die(5, (660, 80)) def number_count(dice): die1 = Die((20, 80)) die2 = Die((180, 80)) die3 = Die((340, 80)) die4 = Die((500, 80)) die5 = Die((660, 80)) numbers = [None, 0, 0, 0, 0, 0, 0] for die in dice: numbers[die.value] += 1 return numbers def product(a): p = 1 for f in a: p *= f return p def draw(): screen.fill ((200, 200, 200)) die1.display() die2.display() die3.display() die4.display() die5.display() def update(): pass def on_key_down(): die1.throw() die2.throw() die3.throw() die4.throw() die5.throw() while True : for action in event.get () : if action.type == KEYDOWN : if action.key == K_SPACE : on_key_down () if action.type == QUIT : quit () break draw () display.flip () |