import tkinter from tkinter import * from tkinter import * # Tkinter is used as the GUI. from tkinter import messagebox import sys import os import random import tkinter.messagebox root = Tk() root.resizable(width=False, height=False) # The window size of the game. root.geometry('1000x750') root.configure(background='green') root.title("Checkers") logo = PhotoImage(file="whitebox.gif") # Loading all the image files that are required in the game. logo2 = PhotoImage(file="red side.gif") # Loading all the image files that are required in the game. logo3 = PhotoImage(file="red.gif") # Loading all the image files that are required in the game. logo4 = PhotoImage(file="blue side.gif") logo5 = PhotoImage(file="green side.gif") logo6 = PhotoImage(file="yellow side.gif") logo7 = PhotoImage(file="center.gif") logoxx = PhotoImage(file="test.gif") logog = PhotoImage(file="greenbox.gif") logogs = PhotoImage(file="greenstop.gif") logoy = PhotoImage(file="yellowbox.gif") logoys = PhotoImage(file="yellowstop.gif") logob = PhotoImage(file="bluebox.gif") logobs = PhotoImage(file="bluestop.gif") logor = PhotoImage(file="redbox.gif") logors = PhotoImage(file="redstop.gif") logoh = PhotoImage(file="head.gif") logot = PhotoImage(file="tail.gif") logoh1 = PhotoImage(file="head1.gif") logot1 = PhotoImage(file="tail1.gif") logoh2 = PhotoImage(file="head2.gif") logot2 = PhotoImage(file="tail2.gif") logoh3 = PhotoImage(file="head3.gif") logot3 = PhotoImage(file="tail3.gif") logoab= PhotoImage(file="blue.gif") logoay= PhotoImage(file="yellow.gif") logoag= PhotoImage(file="green.gif") Label(image=logo2, width=298, height=298).place(x=-1, y=-1) #setting up board images Label(image=logo4, width=300, height=300).place(x=(-2), y=(448)) Label(image=logo5, width=296, height=296).place(x=(450), y=(0)) Label(image=logo6, width=294, height=294).place(x=(450), y=(450)) Label(image=logo7, width=150, height=150).place(x=(298), y=(298)) c = 0 #initializing variable and flags that are to be used in the game lx = 0 bb =0 nc = 0 rollc = 0 rolls = [] RED = True BLUE = False GREEN = False YELLOW = False TURN = True REDKILL = False BLUEKILL = False GREENKILL = False YELLOWKILL = False def board(): #Drawing the board, piece by piece. #Splash Screen. tkinter.messagebox.showinfo(title=None, message="TO START GAME PRESS OKAY & TO EXIT PRESS CROSS UP IN THE WINDOW") v = 0 z = 0 while (v != 300): #Drawing White boxes z = 0 while (z != 150): Label(image=logo, width=46, height=46).place(x=(300 + z), y=(0 + v)) z = z + 50 v = v + 50 z = 0 v = 0 while (v != 300): #Drawing White boxes z = 0 while (z != 150): Label(image=logo, width=46, height=46).place(x=(0 + v), y=(300 + z)) z = z + 50 v = v + 50 ##################### v = 0 z = 0 while (v != 300): #Drawing White boxes z = 0 while (z != 150): Label(image=logo, width=46, height=46).place(x=(300 + z), y=(450 + v)) z = z + 50 v = v + 50 z = 0 v = 0 while (v != 300): #Drawing White boxes z = 0 while (z != 150): Label(image=logo, width=46, height=46).place(x=(450 + v), y=(300 + z)) z = z + 50 v = v + 50 v = 0 while (v != 250): #Drawing Green boxes Label(image=logog, width=46, height=46).place(x=(350), y=(50 + v)) v = v + 50 Label(image=logog, width=46, height=46).place(x=(300), y=(100)) Label(image=logogs, width=46, height=46).place(x=(400), y=(50)) v = 0 while (v != 250): #Drawing Yellow boxes Label(image=logoy, width=46, height=46).place(x=(450 + v), y=(350)) v = v + 50 Label(image=logoy, width=46, height=46).place(x=(600), y=(300)) Label(image=logoys, width=46, height=46).place(x=(650), y=(400)) v = 0 while (v != 250): #Drawing Red Boxes Label(image=logor, width=46, height=46).place(x=(50 + v), y=(350)) v = v + 50 Label(image=logor, width=46, height=46).place(x=(100), y=(400)) Label(image=logors, width=46, height=46).place(x=(50), y=(300)) v = 0 while (v != 250): #Drawing Blue Boxes Label(image=logob, width=46, height=46).place(x=(350), y=(450 + v)) v = v + 50 Label(image=logobs, width=46, height=46).place(x=(300), y=(650)) Label(image=logob, width=46, height=46).place(x=(400), y=(600)) Label(image=logoh, width=46, height=46).place(x=250, y=400) #Drawing arrows Label(image=logot, width=46, height=46).place(x=300, y=450) Label(image=logoh1, width=46, height=46).place(x=400, y=450) Label(image=logot1, width=46, height=46).place(x=450, y=400) Label(image=logoh2, width=46, height=46).place(x=450, y=300) Label(image=logot2, width=46, height=46).place(x=400, y=250) Label(image=logoh3, width=46, height=46).place(x=300, y=250) Label(image=logot3, width=46, height=46).place(x=250, y=300) class YBox: #Class of yellow box rap = None def __init__(self, num=-1, x=0, y=0, x0=0, y0=0, double=False, ): self.num = num #no of gamepiece acc to box self.x = x #initial and final co-ordinates of the boxes self.y = y self.x0 = x0 self.y0 = y0 self.rap = Label(image=logoay, width=20, height=20) #image of game piece. self.double = double #if one game piece on top of another. def swap(self): #Swaps the position of gamepiece according to the number on dice. self.rap.place(x=self.x0 + 13, y=self.y0 + 14) class GBox: #Class of green box rap = None def __init__(self, num=-1, x=0, y=0, x0=0, y0=0, double=False, ): self.num = num self.x = x self.y = y self.x0 = x0 self.y0 = y0 self.rap = Label(image=logoag, width=20, height=20) self.double = double def swap(self): self.rap.place(x=self.x0 + 13, y=self.y0 + 14) class BBox: #Class of Blue box rap = None def __init__(self, num=-1, x=0, y=0, x0=0, y0=0, double=False, ): self.num = num self.x = x self.y = y self.x0 = x0 self.y0 = y0 self.rap = Label(image=logoab, width=20, height=20) self.double = double def swap(self): self.rap.place(x=self.x0 + 13, y=self.y0 + 14) class Box: #class of red box rap = None def __init__(self, num=-1, x=0, y=0, x0=0, y0=0, double=False, ): self.num = num self.x = x self.y = y self.x0 = x0 self.y0 = y0 self.rap = Label(image=logo3, width=20, height=20) self.double = double def swap(self): self.rap.place(x=self.x0 + 13, y=self.y0 + 14) def main(): # Main game function. global box, redbox, bluebox, greenbox, yellowbox, redhome, bluehome, yellowhome, greenhome global red, blue, yellow, green, rap, RED, BLUE, GREEN, YELLOW, dice, nc, TURN, bb if c == 0: #constructs the game pieces first time the code is ran. board() box = [Box() for i in range(52)] redbox = [Box() for i in range(57)] # list of co-ordinates of all the colored boxes, excluding home and stop. bluebox = [Box() for i in range(57)] greenbox = [Box() for i in range(57)] yellowbox = [Box() for i in range(57)] redhome = [Box() for i in range(4)] # list co-ordinates of all the home positions bluehome = [Box() for i in range(4)] greenhome = [Box() for i in range(4)] yellowhome = [Box() for i in range(4)] red = [Box() for i in range(4)] # list of co-ordinates of all the game pieces in their initial state blue = [BBox() for i in range(4)] # that is equal to their respective home co-ordinates. green = [GBox() for i in range(4)] yellow = [YBox() for i in range(4)] for i in range(2): #Populates list of homeboxes, colored boxes, gamepieces and white boxes redhome[i].x = (100 + (100 * i)) redhome[i].y = 100 red[i].x0 = redhome[i].x red[i].y0 = redhome[i].y red[i].x = (red[i].x0) + 25 red[i].y = (red[i].y0) + 25 bluehome[i].x = (100 + (100 * i)) bluehome[i].y = (550) blue[i].x0 = bluehome[i].x blue[i].y0 = bluehome[i].y blue[i].x = (blue[i].x0) + 25 blue[i].y = (blue[i].y0) + 25 yellowhome[i].x = (550 + (100 * i)) yellowhome[i].y = (550) yellow[i].x0 = yellowhome[i].x yellow[i].y0 = yellowhome[i].y yellow[i].x = (yellow[i].x0) + 25 yellow[i].y = (yellow[i].y0) + 25 greenhome[i].x = (550 + (100 * i)) greenhome[i].y = (100) green[i].x0 = greenhome[i].x green[i].y0 = greenhome[i].y green[i].x = (green[i].x0) + 25 green[i].y = (green[i].y0) + 25 for i in range(2, 4): redhome[i].x = (100 + (100 * (i - 2))) redhome[i].y = 200 red[i].x0 = redhome[i].x red[i].y0 = redhome[i].y red[i].x = (red[i].x0) + 25 red[i].y = (red[i].y0) + 25 bluehome[i].x = (100 + (100 * (i - 2))) bluehome[i].y = (650) blue[i].x0 = bluehome[i].x blue[i].y0 = bluehome[i].y blue[i].x = (blue[i].x0) + 25 blue[i].y = (blue[i].y0) + 25 yellowhome[i].x = (550 + (100 * (i - 2))) yellowhome[i].y = (650) yellow[i].x0 = yellowhome[i].x yellow[i].y0 = yellowhome[i].y yellow[i].x = (yellow[i].x0) + 25 yellow[i].y = (yellow[i].y0) + 25 greenhome[i].x = (550 + (100 * (i - 2))) greenhome[i].y = 200 green[i].x0 = greenhome[i].x green[i].y0 = greenhome[i].y green[i].x = (green[i].x0) + 25 green[i].y = (green[i].y0) + 25 for i in range(6): box[i].x = 300 box[i].y = (700 - (50 * i)) for i in range(6, 12): box[i].x = (250 - (50 * (i - 6))) box[i].y = (400) box[12].x = 0 box[12].y = 350 for i in range(13, 19): box[i].x = (0 + (50 * (i - 13))) box[i].y = (300) for i in range(19, 25): box[i].x = (300) box[i].y = (250 - (50 * (i - 19))) box[25].x = 350 box[25].y = 0 for i in range(26, 32): box[i].x = (400) box[i].y = (0 + (50 * (i - 26))) for i in range(32, 38): box[i].x = (450 + (50 * (i - 32))) box[i].y = (300) box[38].x = 700 box[38].y = 350 for i in range(39, 45): box[i].x = (700 - (50 * (i - 39))) box[i].y = (400) for i in range(45, 51): box[i].x = (400) box[i].y = (450 + (50 * (i - 45))) box[51].x = 350 box[51].y = 700 # teshh lx = 14 for i in range(52): redbox[i].x = box[lx].x redbox[i].y = box[lx].y lx = lx + 1 if lx > 51: lx = 0 lx = 50 for i in range(7): redbox[lx].x = (0 + (50 * i)) redbox[lx].y = 350 lx = lx + 1 # blue lx = 1 for i in range(52): bluebox[i].x = box[lx].x bluebox[i].y = box[lx].y lx = lx + 1 if lx > 51: lx = 0 lx = 50 for i in range(7): bluebox[lx].x = 350 bluebox[lx].y = (700 - (50 * i)) lx = lx + 1 # yellow lx = 40 for i in range(52): yellowbox[i].x = box[lx].x yellowbox[i].y = box[lx].y lx = lx + 1 if lx > 51: lx = 0 lx = 50 for i in range(7): yellowbox[lx].x = (700 - (50 * i)) yellowbox[lx].y = (350) lx = lx + 1 # green lx = 27 for i in range(52): greenbox[i].x = box[lx].x greenbox[i].y = box[lx].y lx = lx + 1 if lx > 51: lx = 0 lx = 50 for i in range(7): greenbox[lx].x = 350 greenbox[lx].y = (0 + (50 * i)) lx = lx + 1 for i in range(4): red[i].swap() blue[i].swap() green[i].swap() yellow[i].swap() else: if c >= 1: #This condition is true when a click is made. if RED == True and TURN == False: #Red players turn print("Red's Turn") print("moves available: ", rolls) la = "RED" if (movecheck(red, redhome, redbox, la)) == False: #Checks if player can take a turn. BLUE = True RED = False clear() #clears variable, next players turn if RED == True: # searches if click is made on a red game piece. for i in range(len(red)): if ((((cx > red[i].x0 + 13) and (cx < red[i].x + 13)) and ( (cy > red[i].y0 + 14) and (cy < red[i].y + 14))) and (red[i].x0 == redhome[i].x) and (red[i].y0 == redhome[i].y)): print("woila ") if rolls[0 + nc] == 6: #If a six occurs and gamepiece is in home #Game piece is moved onto the home box red[i].x0 = redbox[0].x red[i].y0 = redbox[0].y red[i].x = redbox[0].x + 25 red[i].y = redbox[0].y + 25 red[i].num = 0 red[i].swap() nc = nc + 1 if nc > len(rolls) - 1: # check if all moves are made. so next players turn. BLUE = True RED = False clear() break if ((((cx > red[i].x0 + 13) and (cx < red[i].x + 13)) and ( #if gamepiece is outside home (cy > red[i].y0 + 14) and (cy < red[i].y + 14))) and ((red[i].x0 > 270) or (red[i].y0 > 270))): print("woila ") bb = ((red[i].num) + rolls[0 + nc]) # Winning condition if bb > 57: #prevents moves greater than allowed number break #bb = ((red[i].num) + rolls[0 + nc]) - 57 kill(redbox,blue,yellow,green,bluehome,yellowhome,greenhome) #checks if a kill can be made. red[i].x0 = redbox[bb].x red[i].y0 = redbox[bb].y red[i].x = redbox[bb].x + 25 red[i].y = redbox[bb].y + 25 red[i].swap() red[i].num = bb doublecheck(red) #checks if the gamepiece can be made as a double. nc = nc + 1 if bb == 57: # del red[i] red.remove(red[i]); if nc > len(rolls) - 1: BLUE = True #next players turn. RED = False clear() break if BLUE == True and TURN == False: #same as REDS CODE print("Blue's Turn") print("moves available: ", rolls) la="BLUE" if (movecheck(blue, bluehome, bluebox, la)) == False: print("NO MOVES SIR JEE") BLUE = False YELLOW = True clear() if BLUE == True: for i in range(len(blue)): if ((((cx > blue[i].x0 + 13) and (cx < blue[i].x + 13)) and ( (cy > blue[i].y0 + 14) and (cy < blue[i].y + 14))) and (blue[i].x0 == bluehome[i].x) and (blue[i].y0 == bluehome[i].y)): print("woila ") if rolls[0 + nc] == 6: blue[i].x0 = bluebox[0].x blue[i].y0 = bluebox[0].y blue[i].x = bluebox[0].x + 25 blue[i].y = bluebox[0].y + 25 blue[i].num = 0 blue[i].swap() nc = nc + 1 if nc > len(rolls) - 1: YELLOW = True BLUE = False clear() break if ((((cx > blue[i].x0 + 13) and (cx < blue[i].x + 13)) and ( (cy > blue[i].y0 + 14) and (cy < blue[i].y + 14))) and ((blue[i].x0 > 270) or (blue[i].y0 < 470))): print("woila ") bb = ((blue[i].num) + rolls[0 + nc]) if bb > 57: break # bb= ((blue[i].num) + rolls[0 + nc]) - 52 kill(bluebox,red,yellow,green,redhome,yellowhome,greenhome) blue[i].x0 = bluebox[bb].x blue[i].y0 = bluebox[bb].y blue[i].x = bluebox[bb].x + 25 blue[i].y = bluebox[bb].y + 25 blue[i].swap() blue[i].num = bb doublecheck(blue) nc = nc + 1 if bb == 57: # del red[i] blue.remove(blue[i]); if nc > len(rolls) - 1: YELLOW = True BLUE = False clear() break if YELLOW == True and TURN == False: #Same as RED's code print("Yellows's Turn") print("moves available: ", rolls) la="YELLOW" if (movecheck(yellow, yellowhome, yellowbox,la)) == False: print("NO MOVES SIR JEE") YELLOW = False GREEN = True clear() if YELLOW == True: for i in range(len(yellow)): if ((((cx > yellow[i].x0 + 13) and (cx < yellow[i].x + 13)) and ( (cy > yellow[i].y0 + 14) and (cy < yellow[i].y + 14))) and (yellow[i].x0 == yellowhome[i].x) and (yellow[i].y0 == yellowhome[i].y)): print("woila ") if rolls[0 + nc] == 6: yellow[i].x0 = yellowbox[0].x yellow[i].y0 = yellowbox[0].y yellow[i].x = yellowbox[0].x + 25 yellow[i].y = yellowbox[0].y + 25 yellow[i].num = 0 yellow[i].swap() nc = nc + 1 if nc > len(rolls) - 1: YELLOW = False GREEN = True clear() break if ((((cx > yellow[i].x0 + 13) and (cx < yellow[i].x + 13)) and ( (cy > yellow[i].y0 + 14) and (cy < yellow[i].y + 14))) and ((yellow[i].x0 < 470) or (yellow[i].y0 < 470))): print("woila ") bb = ((yellow[i].num) + rolls[0 + nc]) if bb > 57: break #bb = ((yellow[i].num) + rolls[0 + nc]) - 52 kill(yellowbox,blue,red,green,bluehome,redhome,greenhome) yellow[i].x0 = yellowbox[bb].x yellow[i].y0 = yellowbox[bb].y yellow[i].x = yellowbox[bb].x + 25 yellow[i].y = yellowbox[bb].y + 25 yellow[i].swap() yellow[i].num = bb doublecheck(yellow) nc = nc + 1 if bb == 57: # del red[i] yellow.remove(yellow[i]); if nc > len(rolls) - 1: YELLOW = False GREEN = True clear() break if GREEN == True and TURN == False: #Same as RED's code print("Green's Turn") print("moves available: ", rolls) la="GREEN" if (movecheck(green, greenhome, greenbox,la)) == False: print("NO MOVES SIR JEE") GREEN = False RED = True clear() if GREEN == True: for i in range(len(green)): if ((((cx > green[i].x0 + 13) and (cx < green[i].x + 13)) and ( (cy > green[i].y0 + 14) and (cy < green[i].y + 14))) and (green[i].x0 == greenhome[i].x) and (green[i].y0 == greenhome[i].y)): print("woila ") if rolls[0 + nc] == 6: green[i].x0 = greenbox[0].x green[i].y0 = greenbox[0].y green[i].x = greenbox[0].x + 25 green[i].y = greenbox[0].y + 25 green[i].num = 0 green[i].swap() nc = nc + 1 print("green x.y: ", green[i].x0, green[i].y0) if nc > len(rolls) - 1: GREEN = False RED = True clear() break if ((((cx > green[i].x0 + 13) and (cx < green[i].x + 13)) and ( (cy > green[i].y0 + 14) and (cy < green[i].y + 14))) and ((green[i].x0 < 470) or (green[i].y0 < 470))): print("woila ") bb = ((green[i].num) + rolls[0 + nc]) if bb > 57: break # bb = ((green[i].num) + rolls[0 + nc]) - 52 kill(greenbox,blue,yellow,red,bluehome,yellowhome,redhome) green[i].x0 = greenbox[bb].x green[i].y0 = greenbox[bb].y green[i].x = greenbox[bb].x + 25 green[i].y = greenbox[bb].y + 25 green[i].swap() green[i].num = bb nc = nc + 1 doublecheck(green) if bb == 57: # del red[i] green.remove(green[i]); if nc > len(rolls) - 1: GREEN = False RED = True clear() break main() #Main functin is called once when c==0 to intialize all the gamepieces. def leftClick(event): # Main play function is called on every left click. global c, cx, cy, RED, YELLOW c = c + 1 cx = root.winfo_pointerx() - root.winfo_rootx() # This formula returns the x,y co-ordinates of the mouse pointer relative to the board. cy = root.winfo_pointery() - root.winfo_rooty() print("Click at: ", cx, cy) main() #Main function called on every click to progress the game root.bind("<Button-1>", leftClick) def turn(): #Prints whoose turn is it if RED == True: L2 = Label(root, text=" Red's Turn ", fg='Black', background='green', font=("Arial", 24, "bold")) L2.place(x=770, y=50) if BLUE == True: L2 = Label(root, text=" Blue's Turn ", fg='Black', background='green', font=("Arial", 24, "bold")) L2.place(x=770, y=50) if GREEN == True: L2 = Label(root, text="Green's Turn ", fg='Black', background='green', font=("Arial", 24, "bold")) L2.place(x=770, y=50) if YELLOW == True: L2 = Label(root, text="Yellow's Turn", fg='Black', background='green', font=("Arial", 24, "bold")) L2.place(x=770, y=50) def roll(): #Rolling function that rolls a dice, goes again if its a six global rollc, dice, dice1, dice2, TURN, rolls if TURN == True: rollc = rollc + 1 print("roll: ", rollc) if rollc == 1: dice = random.randint(1, 6) L1 = Label(root, text=dice, fg='Black', background='green', font=("Arial", 24, "bold")) L1.place(x=800, y=200) print("dice: ", dice) rolls.append(dice) if dice != 6: rollc = 0 TURN = False if rollc == 2: if dice == 6: dice1 = random.randint(1, 6) L3 = Label(root, text=dice1, fg='Black', background='green', font=("Arial", 24, "bold")) L3.place(x=800, y=250) rolls.append(dice1) if dice1 != 6: rollc = 0 TURN = False if rollc == 3: if dice1 == 6: dice2 = random.randint(1, 6) L4 = Label(root, text=dice2, fg='Black', background='green', font=("Arial", 24, "bold")) L4.place(x=800, y=300) rolls.append(dice2) rollc = 0 TURN = False def clear(): #clears all the variable prior to next player's turn global nc, rolls, TURN, L1, L3, L4 nc = 0 del rolls[:] TURN = True L1 = Label(root, text=" ", fg='Black', background='green', font=("Arial", 24, "bold")) L1.place(x=800, y=200) L3 = Label(root, text=" ", fg='Black', background='green', font=("Arial", 24, "bold")) L3.place(x=800, y=250) L4 = Label(root, text=" ", fg='Black', background='green', font=("Arial", 24, "bold")) L4.place(x=800, y=300) print("cleared") turn() def movecheck(r, rh, rb, la): #Check if the player can make a move if (dice == 6 and dice1 == 6 and dice2 == 6): return False win=True #Checking if the game is won or the player can make any moves. for j in range(4): if (r[j].x0 != rb[56].x) and (r[j].y0 != rb[56].y): win=False if win == True: #If all gamepieces home, prints that the player has won print("YOU HAVE WON") L2 = Label(root, text=(la + "Wins"), fg='Black', background='green', font=("Arial", 24, "bold")) L2.place(x=770, y=500) return False if win == False and dice != 6: #if its not a 6 and all game pieces inside home, then next players turn for i in range(len(r)): if(r[i].num != -1): (print("good hai")) return True print("jani all in") return False def kill(a,b,c,d,bh,ch,dh): #function that determines if a gamepiece can be killed #if the game piece is not on a stop if ((a[bb].x0 != box[1].x and a[bb].y0 != box[1].y) and (a[bb].x0 != box[14].x and a[bb].y0 != box[14].y) and (a[bb].x0 != box[9].x and a[bb].y0 != box[9].y) and (a[bb].x0 != box[22].x and a[bb].y0 != box[22].y) and (a[bb].x0 != box[27].x and a[bb].y0 != box[27].y) and (a[bb].x0 != box[35].x and a[bb].y0 != box[35].y) and (a[bb].x0 != box[40].x and a[bb].y0 != box[40].y) and (a[bb].x0 != box[48].x and a[bb].y0 != box[48].y)): #if the game piece of another color and its on the same block and it is not a double, a kill is made for i in range (len(b)): if (b[i].x0 == a[bb].x and b[i].y0 == a[bb].y and (b[i].double == False)): b[i].x0 = bh[i].x b[i].y0 = bh[i].y b[i].x = bh[i].x + 25 b[i].y = bh[i].y + 25 b[i].num=-1 b[i].swap() break for i in range (len(c)): if (c[i].x0 == a[bb].x and c[i].y0 == a[bb].y and (c[i].double == False)): c[i].x0 = ch[i].x c[i].y0 = ch[i].y c[i].x = ch[i].x + 25 c[i].y = ch[i].y + 25 c[i].num=-1 c[i].swap() break for i in range (len(d)): if (d[i].x0 == a[bb].x and d[i].y0 == a[bb].y and (d[i].double == False)): d[i].x0 = dh[i].x d[i].y0 = dh[i].y d[i].x = dh[i].x + 25 d[i].y = dh[i].y + 25 d[i].num=-1 d[i].swap() break def doublecheck(a): for k in range (len(a)): a[k].double = False for i in range (len(a)): for j in range (len(a)): if (a[i].num == a[j].num) and (i != j): a[j].double = True a[i].double = True turn() #prints the "red player's turn" initially button = Button(root, text=" ROLL ", relief="raised", font=("Arial", 20), command=roll) # call roll function evertime this button is clicked button.place(x=805, y=120) root.mainloop()
Write, Run & Share Python code online using OneCompiler's Python online compiler for free. It's one of the robust, feature-rich online compilers for python language, supporting both the versions which are Python 3 and Python 2.7. Getting started with the OneCompiler's Python editor is easy and fast. The editor shows sample boilerplate code when you choose language as Python or Python2 and start coding.
OneCompiler's python online editor supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample python program which takes name as input and print your name with hello.
import sys
name = sys.stdin.readline()
print("Hello "+ name)
Python is a very popular general-purpose programming language which was created by Guido van Rossum, and released in 1991. It is very popular for web development and you can build almost anything like mobile apps, web apps, tools, data analytics, machine learning etc. It is designed to be simple and easy like english language. It's is highly productive and efficient making it a very popular language.
When ever you want to perform a set of operations based on a condition IF-ELSE is used.
if conditional-expression
#code
elif conditional-expression
#code
else:
#code
Indentation is very important in Python, make sure the indentation is followed correctly
For loop is used to iterate over arrays(list, tuple, set, dictionary) or strings.
mylist=("Iphone","Pixel","Samsung")
for i in mylist:
print(i)
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while condition
#code
There are four types of collections in Python.
List is a collection which is ordered and can be changed. Lists are specified in square brackets.
mylist=["iPhone","Pixel","Samsung"]
print(mylist)
Tuple is a collection which is ordered and can not be changed. Tuples are specified in round brackets.
myTuple=("iPhone","Pixel","Samsung")
print(myTuple)
Below throws an error if you assign another value to tuple again.
myTuple=("iPhone","Pixel","Samsung")
print(myTuple)
myTuple[1]="onePlus"
print(myTuple)
Set is a collection which is unordered and unindexed. Sets are specified in curly brackets.
myset = {"iPhone","Pixel","Samsung"}
print(myset)
Dictionary is a collection of key value pairs which is unordered, can be changed, and indexed. They are written in curly brackets with key - value pairs.
mydict = {
"brand" :"iPhone",
"model": "iPhone 11"
}
print(mydict)
Following are the libraries supported by OneCompiler's Python compiler
Name | Description |
---|---|
NumPy | NumPy python library helps users to work on arrays with ease |
SciPy | SciPy is a scientific computation library which depends on NumPy for convenient and fast N-dimensional array manipulation |
SKLearn/Scikit-learn | Scikit-learn or Scikit-learn is the most useful library for machine learning in Python |
Pandas | Pandas is the most efficient Python library for data manipulation and analysis |
DOcplex | DOcplex is IBM Decision Optimization CPLEX Modeling for Python, is a library composed of Mathematical Programming Modeling and Constraint Programming Modeling |