Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- inter as tk
- from tkinter import messagebox
- file_path = r'C:\Users\adria\Desktop\Python Games\Games Comp.txt'
- game_data = []
- root = tk.Tk()
- root.title("Games Competition")
- root.geometry("800x600") # Set window size to 800x600 pixels
- root.option_add("*Font", "Helvetica 14")
- root.option_add("*Entry.Width", 100)
- label = tk.Label(root, text="Games Competition", font=("Helvetica", 30))
- label.pack(pady=50)
- def load_data(file_path):
- data = []
- try:
- with open(file_path, 'r') as file:
- for line in file:
- data.append(line.strip().split(','))
- except FileNotFoundError:
- pass
- return data
- def save_data(file_path, new_data):
- existing_data = load_data(file_path)
- all_data = existing_data + new_data
- with open(file_path, 'w') as file:
- for entry in all_data:
- entry_str = [str(item) for item in entry]
- file.write(','.join(entry_str) + '\n')
- class NewGameDialog(tk.Toplevel):
- def __init__(self, parent, game_data):
- super().__init__(parent)
- self.title("New Game")
- self.geometry("400x200+400+300") # Set the initial size and position of the window
- self.game_data = game_data
- self.game_name = tk.StringVar()
- self.players = ['Cameron', 'Adrian', 'Ryan', 'Liam']
- self.current_player_index = 0
- self.player_points = [5, 3, 2, 1] #Define player points here
- self.create_game_name_entry()
- def create_game_name_entry(self):
- self.game_name_label = tk.Label(self, text="Which game would you like to play?")
- self.game_name_label.pack()
- self.game_name_entry = tk.Entry(self, textvariable=self.game_name, font=("Helvetica", 16), width=30)
- self.game_name_entry.pack()
- self.game_name_entry.bind("<Return>", self.handle_game_name_entry)
- def handle_game_name_entry(self, event):
- self.game_name_label.destroy()
- self.game_name_entry.destroy()
- self.position_label = tk.Label(self, text=f"Which position did {self.players[self.current_player_index]} come? (1, 2, 3, 4)")
- self.position_label.pack()
- self.position_entry = tk.Entry(self, font=("Helvetica", 14), width=100)
- self.position_entry.pack()
- self.position_entry.bind("<Return>", self.handle_return)
- def handle_return(self, event):
- position = self.position_entry.get()
- try:
- position = int(position)
- if position < 1 or position > 4:
- raise ValueError
- except ValueError:
- messagebox.showerror("Error", "Please enter a valid position (1, 2, 3, 4)")
- return
- game_name = self.game_name.get()
- player = self.players[self.current_player_index]
- print(f"Processing {player} for {game_name} at position {position}")
- existing_entry_index = None
- for i, entry in enumerate(self.game_data):
- if entry[0] == game_name and entry[1] == player:
- existing_entry_index = i
- print(f"Existing entry found for {player} in {game_name} at index {existing_entry_index}")
- break
- if existing_entry_index is not None:
- self.game_data[existing_entry_index][2] = position
- self.game_data[existing_entry_index][3] = str(self.player_points[position - 1])
- print("Updated existing entry")
- else:
- self.game_data.append([game_name, player, position, str(self.player_points[position - 1])])
- print("No existing entry found, adding new entry")
- print("Current game data:")
- for entry in self.game_data:
- print(entry)
- save_data(file_path, self.game_data)
- self.current_player_index += 1
- if self.current_player_index < len(self.players):
- self.position_label.config(
- text=f"Which position did {self.players[self.current_player_index]} come? (1, 2, 3, 4)")
- self.position_entry.delete(0, tk.END)
- else:
- self.destroy()
- def new_game():
- NewGameDialog(root, game_data)
- if __name__ == "__main__":
- load_data(file_path)
- new_game_btn = tk.Button(root, text="New Game", width=30, height=3, font=("Helvetica", 16), borderwidth=5,
- highlightbackground="black", command=new_game)
- new_game_btn.pack()
- root.mainloop()
Add Comment
Please, Sign In to add comment