Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- from tkinter import messagebox
- from tkinter import PhotoImage
- import random
- import re
- class vars (object): # משתנים שקיימים בקוד
- mypick = "bla"
- mygames = 0
- wincount = 0
- mywins = 0
- myloses = 0
- myties = 0
- usernameall = "hhh"
- count = 3
- def decrement(): # מספר הניסיונות התחברות יורד ב1 כל ניסיון כושל
- vars.count = vars.count-1
- def checkusername(user_name): # בדיקה אם שם משתמש קיים כבר
- for line in open("accountfile.txt", "r").readlines():
- login_info = line.split()
- if user_name == login_info[0]:
- return False
- def register(): # תהליך ההרשמה
- file = open("accountfile.txt", "a")
- username = reg_username.get()
- password = reg_password.get()
- if checkusername(username) == False:
- messagebox.showinfo("Error", "User name already exists, Please enter another username {}".format(username))
- elif len(password) < 5:
- messagebox.showinfo("Error", "Password must at least 6 characters.")
- elif re.search('[0-9]', password) is None:
- messagebox.showinfo("Error", "Password must contains numbers in it.")
- elif re.search('[A-Z]', password) is None:
- messagebox.showinfo("Error", "Password must contains capital letter in it.")
- else:
- file.write(username)
- file.write(" ")
- file.write(password)
- file.write("\n")
- file.close()
- messagebox.showinfo("Great!", "Register Successful,Please login")
- reg_screen.destroy()
- log_form()
- def login(): # תהליך ההתחברות
- username = log_username.get()
- password = log_password.get()
- for line in open("accountfile.txt", "r").readlines():
- login_info = line.split()
- if username == login_info[0] and password == login_info[1]:
- messagebox.showinfo("Login Successful", "Wellcome {}".format(username))
- vars.usernameall = username
- main_screen.withdraw()
- log_screen.destroy()
- rockmain()
- return True
- decrement()
- if vars.count == 0:
- messagebox.showinfo("Error", "You tried to login 3 times with wrong credentials")
- main_screen.quit()
- else:
- messagebox.showinfo("Error", "Incorrect credentials.{} more time before lock.".format(vars.count))
- return False
- def log_form(): # ה gui של ההתחברות
- main_screen.withdraw()
- global log_screen
- log_screen = Toplevel(main_screen)
- log_screen.title("Login")
- log_screen.geometry("300x200")
- global log_username
- global log_password
- log_username = StringVar()
- log_password = StringVar()
- Label(log_screen, text="Username: ").pack()
- username_entry1 = Entry(log_screen, textvariable=log_username)
- username_entry1.pack()
- Label(log_screen, text="").pack()
- Label(log_screen, text="Password: ").pack()
- password_entry1 = Entry(log_screen, show='*', textvariable=log_password)
- password_entry1.pack()
- Label(log_screen, text="").pack()
- Button(log_screen, text="Login", width=10, height=1, command=login).pack()
- def reg_form(): # ה gui של ההרשמה
- main_screen.withdraw()
- global reg_screen
- reg_screen = Toplevel(main_screen)
- reg_screen.title("Register")
- reg_screen.geometry("300x150")
- global reg_username
- global reg_password
- global reg_username_en
- global reg_password_en
- reg_username = StringVar()
- reg_password = StringVar()
- Label(reg_screen, text="Username: ").pack()
- reg_username_en = Entry(reg_screen, textvariable=reg_username)
- reg_username_en.pack()
- Label(reg_screen, text="Password: ").pack()
- reg_password_en = Entry(reg_screen, show='*', textvariable=reg_password)
- reg_password_en.pack()
- Label(reg_screen, text="").pack()
- Button(reg_screen, text="Register", width=10, height=1, command=register).pack()
- def rock(): # בחירה אבן
- vars.mypick = "Rock"
- rockpaper()
- def paper(): # בחירה נייר
- vars.mypick = "Paper"
- rockpaper()
- def scissors(): # בחירה מספריים
- vars.mypick = "Scissors"
- rockpaper()
- def increment(): # מעלה את מספר הניצחונות הרצופים
- vars.wincount = vars.wincount+1
- def zerowin(): # מאפס את מספר הניצחונות הרצופים
- vars.wincount = 0
- def wins(): # מעלה את מספר הניצחונות
- vars.mywins = vars.mywins + 1
- def loses(): # מעלה את מספר ההפסדים
- vars.myloses = vars.myloses + 1
- def ties(): # מעלה את מספר התיקויים
- vars.myties= vars.myties + 1
- def games(): # מעלה את מספר המחשקים
- vars.mygames = vars.mygames + 1
- def rockpaper(): # אבן נייר או מספריים המשחק עצמו
- words = ("Rock", "Paper", "Scissors")
- word = random.choice(words)
- yourpick = vars.mypick
- if vars.mygames != 5 and vars.wincount != 3:
- if yourpick == "Rock" and word == "Scissors":
- wins()
- increment()
- messagebox.showinfo("You Won!", "Your pick: {} \nHis pick: {}".format(yourpick, word))
- elif yourpick == "Rock" and word == "Paper":
- loses()
- zerowin()
- messagebox.showinfo("You Lost!", "Your pick: {} \nHis pick: {}".format(yourpick, word))
- elif yourpick == word:
- ties()
- zerowin()
- messagebox.showinfo("Tie:", "Your pick: {} \nHis pick: {}".format(yourpick, word))
- elif yourpick == "Scissors" and word == "Rock":
- loses()
- zerowin()
- messagebox.showinfo("You Lost!", "Your pick: {} \nHis pick: {}".format(yourpick, word))
- elif yourpick == "Scissors" and word == "Paper":
- wins()
- increment()
- messagebox.showinfo("You Won!", "Your pick: {} \nHis pick: {}".format(yourpick, word))
- elif yourpick == "Paper" and word == "Scissors":
- loses()
- zerowin()
- messagebox.showinfo("You Lost!", "Your pick: {} \nHis pick: {}".format(yourpick, word))
- elif yourpick == "Paper" and word == "Rock":
- wins()
- increment()
- messagebox.showinfo("You Won!", "Your pick: {} \nHis pick: {}".format(yourpick, word))
- games()
- if vars.mygames == 5 or vars.wincount == 3:
- messagebox.showinfo("Details",
- "Wins: {} \nLoses: {} \nTies: {} \nGames: {}".format(vars.mywins, vars.myloses,
- vars.myties, vars.mygames))
- main_screen.withdraw()
- rock_screen.destroy()
- afterplay()
- def playagain(): # אם השחקן בוחר לשחק שוב
- vars.mygames = 0
- vars.mywins = 0
- vars.myties = 0
- vars.myloses = 0
- after_play.destroy()
- rockmain()
- def afterplay(): # ה gui לנתונים אחרי משחק
- global after_play
- after_play = Toplevel(main_screen)
- after_play.geometry("300x200")
- after_play.title("Details")
- Label(after_play, text="Hi {} watch your details: ".format(vars.usernameall)).pack()
- Label(after_play, text="Wins: %d\nLoses: %d\nTies: %d\nGames: %d" % (
- vars.mywins, vars.myloses, vars.myties, vars.mygames)).pack()
- Button(after_play, text="Play Again", height="2", width="15", command=playagain).pack()
- def rockmain(): # ה gui של המשחק אבן נייר או מספריים
- main_screen.withdraw()
- global rock_screen
- rock_screen = Toplevel(main_screen)
- rock_screen.geometry("300x250")
- rock_screen.title("Rock / Paper / Scissors")
- Label(rock_screen, text="Hello {},\nWellcome to Rock / Paper / Scissors".format(vars.usernameall), width="300",
- height="2").pack()
- Label(text="").pack()
- Button(rock_screen,text="Rock",image=imgrock, height="60", width="60", command=rock).pack()
- Label(text="").pack()
- Button(rock_screen,text="Paper",image=imgpaper,height="60", width="60", command=paper).pack()
- Label(text="").pack()
- Button(rock_screen,text="Scissors", image=imgs,height="60", width="60", command=scissors).pack()
- def main(): # ה gui של בחירת המשתמש
- global main_screen
- vars.usernameall = "guest"
- main_screen = Tk()
- global imgpaper
- imgpaper = PhotoImage(file='paper.png')
- global imgrock
- imgrock = PhotoImage(file='rock.png')
- global imgs
- imgs = PhotoImage(file='scissors.png')
- main_screen.geometry("300x250")
- main_screen.title("Play Time!")
- Label(text="Hi guest choose:", width="300", height="2").pack()
- Label(text="").pack()
- Button(text="Login", height="2", width="15", command=log_form).pack()
- Label(text="").pack()
- Button(text="Register", height="2", width="15", command=reg_form).pack()
- Label(text="").pack()
- Button(text="Play as a guest", height="2", width="15", command=rockmain).pack()
- main_screen.mainloop()
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement