Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added GUI Based Rock Paper Scissors Game #541

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
170 changes: 170 additions & 0 deletions GUI_Rock_Paper_Scissors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
# Import Required Library
from tkinter import *
import random

# Create Object
root = Tk()

# Set geometry
root.geometry("400x400")

# Set title
root.title("Rock Paper Scissor Game")

# Computer Value
computer_value = {
"0": "Rock",
"1": "Paper",
"2": "Scissor"
}

user_score = 0
comp_score = 0
# Reset The Game


def reset_game():
b1["state"] = "active"
b2["state"] = "active"
b3["state"] = "active"
l1.config(text="Player")
l3.config(text="Computer")
l4.config(text="")

# Disable the Button


def score():
global user_score
global comp_score
s = "Player:" + str(user_score) + " " + "Computer:" + str(comp_score)
l4.config(text=s)


def button_disable():
b1["state"] = "disable"
b2["state"] = "disable"
b3["state"] = "disable"

# If player selected rock


def isrock():
c_v = computer_value[str(random.randint(0, 2))]
global user_score
global comp_score
if c_v == "Rock":
match_result = "Match Draw"
elif c_v == "Scissor":
match_result = "Player Win"
user_score = user_score + 1
else:
match_result = "Computer Win"
comp_score = comp_score + 1
l4.config(text=match_result)
l1.config(text="Rock ")
l3.config(text=c_v)
button_disable()

# If player selected paper


def ispaper():
c_v = computer_value[str(random.randint(0, 2))]
global user_score
global comp_score
if c_v == "Paper":
match_result = "Match Draw"
elif c_v == "Scissor":
match_result = "Computer Win"
comp_score = comp_score + 1
else:
match_result = "Player Win"
user_score = user_score + 1

l4.config(text=match_result)
l1.config(text="Paper ")
l3.config(text=c_v)
button_disable()

# If player selected scissor


def isscissor():
c_v = computer_value[str(random.randint(0, 2))]
global user_score
global comp_score
if c_v == "Rock":
match_result = "Computer Win"
comp_score = comp_score + 1
elif c_v == "Scissor":
match_result = "Match Draw"
else:
match_result = "Player Win"
user_score = user_score + 1
l4.config(text=match_result)
l1.config(text="Scissor ")
l3.config(text=c_v)
button_disable()


# Add Labels, Frames and Button
Label(root,
text="Rock Paper Scissor",
font="normal 20 bold",
fg="blue").pack(pady=20)

frame = Frame(root)
frame.pack()

l1 = Label(frame,
text="Player ",
font=10)

l2 = Label(frame,
text="VS ",
font="normal 10 bold")

l3 = Label(frame, text="Computer", font=10)

l1.pack(side=LEFT)
l2.pack(side=LEFT)
l3.pack()

l4 = Label(root,
text="",
font="normal 20 bold",
bg="white",
width=20,
borderwidth=2,
relief="solid")
l4.pack(pady=20)

frame1 = Frame(root)
frame1.pack()

b1 = Button(frame1, text="Rock",
font=10, width=7,
command=isrock)

b2 = Button(frame1, text="Paper ",
font=10, width=7,
command=ispaper)

b3 = Button(frame1, text="Scissor",
font=10, width=7,
command=isscissor)

b1.pack(side=LEFT, padx=10)
b2.pack(side=LEFT, padx=10)
b3.pack(padx=10)

Button(root, text="Play Another Round",
font=10, fg="red",
bg="black", command=reset_game).pack(pady=10)
Button(root, text="Score",
font=10, fg="red",
bg="black", command=score).pack(pady=10)

# Execute Tkinter
root.mainloop()