Click here to Skip to main content
15,884,176 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I've been modifying the code for the past few day adding different things. I made my dice in a separate file to make sure they looked right then copied them over to my game, but when I try to call the functions in my game nothing happens. I don't even get a canvas. I'm not 100% sure what I"m doing wrong. Any help would be appreciated. I tried to add the first function in line 106.


Edit** I just put
VB
if rolled==1:
    draw1()
    mainloop()

this starts at the same place line 106, it makes the dice show, but now I have a different problem it stops the game completely when it shows the dice...
Python
from tkinter import*
master=Tk()
canvas = Canvas(master, width = 300, height = 200);
canvas.pack();
from random import randint
#### Dice
def draw1():
    canvas.create_rectangle(5,50,105,150)
    canvas.create_oval(45,85,65,105, fill="black")

def draw12():
    canvas.create_rectangle(195,50,295,150)
    canvas.create_oval(235,85,255,105, fill="black")

def draw2():
    canvas.create_rectangle(5,50,105,150)
    canvas.create_oval(12,52,32,72, fill="black")
    canvas.create_oval(82,122,102,142, fill="black")

def draw22():
    canvas.create_rectangle(195,50,295,150)
    canvas.create_oval(220,75,200,55, fill="black")
    canvas.create_oval(290,125,270,145, fill="black")

def draw3():
    canvas.create_rectangle(5,50,105,150)
    canvas.create_oval(45,85,65,105, fill="black")
    canvas.create_oval(12,52,32,72, fill="black")
    canvas.create_oval(82,122,102,142, fill="black")

def draw32():
    canvas.create_rectangle(195,50,295,150)
    canvas.create_oval(235,85,255,105, fill="black")
    canvas.create_oval(220,75,200,55, fill="black")
    canvas.create_oval(290,125,270,145, fill="black")

def draw4():
    canvas.create_rectangle(5,50,105,150)
    canvas.create_oval(12,52,32,72, fill="black")
    canvas.create_oval(82,122,102,142, fill="black")
    canvas.create_oval(12,122,32,142, fill="black")
    canvas.create_oval(82,52,102,72, fill="black")

def draw42():
    canvas.create_rectangle(195,50,295,150)
    canvas.create_oval(220,75,200,55, fill="black")
    canvas.create_oval(290,125,270,145, fill="black")
    canvas.create_oval(220,125,200,145, fill="black")
    canvas.create_oval(290,75,270,55, fill="black")

def draw5():
    canvas.create_rectangle(5,50,105,150)
    canvas.create_oval(45,85,65,105, fill="black")
    canvas.create_oval(12,52,32,72, fill="black")
    canvas.create_oval(82,122,102,142, fill="black")
    canvas.create_oval(12,122,32,142, fill="black")
    canvas.create_oval(82,52,102,72, fill="black")


def draw52():
    canvas.create_rectangle(195,50,295,150)
    canvas.create_oval(235,85,255,105, fill="black")
    canvas.create_oval(220,75,200,55, fill="black")
    canvas.create_oval(290,125,270,145, fill="black")
    canvas.create_oval(220,125,200,145, fill="black")
    canvas.create_oval(290,75,270,55, fill="black")

def draw6():
    canvas.create_rectangle(5,50,105,150)
    canvas.create_oval(12,52,32,72, fill="black")
    canvas.create_oval(82,122,102,142, fill="black")
    canvas.create_oval(12,122,32,142, fill="black")
    canvas.create_oval(82,52,102,72, fill="black")
    canvas.create_oval(47,52,67,72, fill="black")
    canvas.create_oval(47,122,67,142, fill="black")

def draw62():
    canvas.create_rectangle(195,50,295,150)
    canvas.create_oval(220,75,200,55, fill="black")
    canvas.create_oval(290,125,270,145, fill="black")
    canvas.create_oval(220,125,200,145, fill="black")
    canvas.create_oval(290,75,270,55, fill="black")
    canvas.create_oval(235,75,255,55, fill="black")
    canvas.create_oval(235,125,255,145, fill="black")

##### GAME
playercount = 2
maxscore = 100
safescore = [0] * playercount
player = 0
score=0

while max(safescore) < maxscore:
    if player == 0:
        rolling = 0
        if score < 17 and score + safescore[player] < maxscore:
            rolling = 1
    else:
        rolling = input("Player %i: (%i, %i) Rolling? (Y) "
            % (player, safescore[player], score)).strip().lower() in {'yes', 'y', ''}
    if rolling:
        rolled = randint(1, 6)
        rolled2 = randint(1, 6)
        print('  Rolled %i' % rolled)
        print('  Rolled %i' % rolled2)
        if rolled==1:
            draw1()
        if rolled ==1 and rolled2 ==1:
                print('  Snake Eyes!! your score is set to 0')
                safescore[player] = 0    
                player = (player + 1) % playercount

        elif rolled == 1:
            print('  Bust! you lose %i but still keep your previous %i'
                  % (score, safescore[player]))
            score, player = 0, (player + 1) % playercount
        elif rolled2 == 1:
            print('  Bust! you lose %i but still keep your previous %i'
                  % (score, safescore[player]))
            score, player = 0, (player + 1) % playercount


        else:
            score += rolled + rolled2
    else:
        safescore[player] += score
        if safescore[player] >= maxscore:
            break
        print('  Sticking with %i' % safescore[player])
        score, player = 0, (player + 1) % playercount

print('\nPlayer %i wins with a score of %i' %(player, safescore[player]))
Posted
Updated 5-Dec-14 10:16am
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900