import tkinter as tkdef update_score():
global runs, wickets, overs, striker, non_striker, bowler, team1_name, team2_name
runs += int(runs_entry.get())
wickets += int(wickets_entry.get())
overs += float(overs_entry.get())
current_over = float(current_over_entry.get())
team1_name = team1_entry.get()
team2_name = team2_entry.get()
overs_completed = int(overs)
overs_remaining = current_over - overs_completed
if overs_remaining > 0:
over_info = f"Over {overs_completed + 1} in progress"
else:
over_info = "Match completed"
update_display(over_info, f"{overs_completed}.{int((overs - overs_completed) * 10)}", overs_remaining)
def update_display(over_info, completed_overs, remaining_overs):
runs_var.set(str(runs))
wickets_var.set(str(wickets))
overs_var.set(str(overs))
striker_var.set(striker)
non_striker_var.set(non_striker)
bowler_var.set(bowler)
team1_name_var.set(team1_name)
team2_name_var.set(team2_name)
over_info_var.set(over_info)
completed_overs_var.set(completed_overs)
remaining_overs_var.set(str(remaining_overs))
root = tk.Tk()
root.title("Cricket Scoreboard")
runs = 0
wickets = 0
overs = 0.0
striker = ""
non_striker = ""
bowler = ""
team1_name = ""
team2_name = ""
frame = tk.Frame(root)
frame.pack(pady=10)
team1_label = tk.Label(frame, text="Team 1 Name:")
team1_label.grid(row=0, column=0, padx=5, pady=5)
team1_name_var = tk.StringVar()
team1_entry = tk.Entry(frame, textvariable=team1_name_var)
team1_entry.grid(row=0, column=1, padx=5, pady=5)
team2_label = tk.Label(frame, text="Team 2 Name:")
team2_label.grid(row=1, column=0, padx=5, pady=5)
team2_name_var = tk.StringVar()
team2_entry = tk.Entry(frame, textvariable=team2_name_var)
team2_entry.grid(row=1, column=1, padx=5, pady=5)
runs_label = tk.Label(frame, text="Runs:")
runs_label.grid(row=2, column=0, padx=5, pady=5)
runs_var = tk.StringVar()
runs_entry = tk.Entry(frame, textvariable=runs_var)
runs_entry.grid(row=2, column=1, padx=5, pady=5)
wickets_label = tk.Label(frame, text="Wickets:")
wickets_label.grid(row=3, column=0, padx=5, pady=5)
wickets_var = tk.StringVar()
wickets_entry = tk.Entry(frame, textvariable=wickets_var)
wickets_entry.grid(row=3, column=1, padx=5, pady=5)
overs_label = tk.Label(frame, text="Overs:")
overs_label.grid(row=4, column=0, padx=5, pady=5)
overs_var = tk.StringVar()
overs_entry = tk.Entry(frame, textvariable=overs_var)
overs_entry.grid(row=4, column=1, padx=5, pady=5)
current_over_label = tk.Label(frame, text="Current Over:")
current_over_label.grid(row=5, column=0, padx=5, pady=5)
current_over_var = tk.StringVar(value="50") # Assuming total overs in the match is 50
current_over_entry = tk.Entry(frame, textvariable=current_over_var)
current_over_entry.grid(row=5, column=1, padx=5, pady=5)
striker_label = tk.Label(frame, text="Striker:")
striker_label.grid(row=6, column=0, padx=5, pady=5)
striker_var = tk.StringVar()
striker_entry = tk.Entry(frame, textvariable=striker_var)
striker_entry.grid(row=6, column=1, padx=5, pady=5)
non_striker_label = tk.Label(frame, text="Non-Striker:")
non_striker_label.grid(row=7, column=0, padx=5, pady=5)
non_striker_var = tk.StringVar()
non_striker_entry = tk.Entry(frame, textvariable=non_striker_var)
non_striker_entry.grid(row=7, column=1, padx=5, pady=5)
bowler_label = tk.Label(frame, text="Bowler:")
bowler_label.grid(row=8, column=0, padx=5, pady=5)
bowler_var = tk.StringVar()
bowler_entry = tk.Entry(frame, textvariable=bowler_var)
bowler_entry.grid(row=8, column=1, padx=5, pady=5)
update_button = tk.Button(root, text="Update Score", command=update_score)
update_button.pack()
over_info_var = tk.StringVar()
over_info_label = tk.Label(root, textvariable=over_info_var)
over_info_label.pack()
completed_overs_var = tk.StringVar()
completed_overs_label = tk.Label(root, text="Completed Overs:")
completed_overs_label.pack()
completed_overs_value_label = tk.Label(root, textvariable=completed_overs_var)
completed_overs_value_label.pack()
remaining_overs_var = tk.StringVar()
remaining_overs_label = tk.Label(root, text="Remaining Overs:")
remaining_overs_label.pack()
remaining_overs_value_label = tk.Label(root, textvariable=remaining_overs_var)
remaining_overs_value_label.pack()
root.mainloop()