fork download
  1.  
Success #stdin #stdout 0.04s 9492KB
stdin
import tkinter as tk
from tkinter import messagebox, simpledialog

# Dati di base
giocatori = {
    "portieri": [f"Portiere {i+1}" for i in range(30)],
    "difensori": [f"Difensore {i+1}" for i in range(60)],
    "centrocampisti": [f"Centrocampista {i+1}" for i in range(60)],
    "attaccanti": [f"Attaccante {i+1}" for i in range(60)],
}

class Squadra:
    def __init__(self, nome):
        self.nome = nome
        self.giocatori = {
            "portieri": [],
            "difensori": [],
            "centrocampisti": [],
            "attaccanti": []
        }

    def acquista_giocatore(self, ruolo, nome_giocatore):
        if len(self.giocatori[ruolo]) < (3 if ruolo == "portieri" else 6):
            self.giocatori[ruolo].append(nome_giocatore)
            return True
        return False

    def vendi_giocatore(self, ruolo, nome_giocatore):
        if nome_giocatore in self.giocatori[ruolo]:
            self.giocatori[ruolo].remove(nome_giocatore)
            return True
        return False

def crea_squadre(n):
    return [Squadra(f"Squadra {i+1}") for i in range(n)]

class FantacalcioApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Fantacalcio Manager")
        self.squadre = crea_squadre(10)

        self.lista_squadre = tk.Listbox(root, height=10)
        self.lista_squadre.grid(row=0, column=0, padx=10, pady=10, rowspan=5)
        for squadra in self.squadre:
            self.lista_squadre.insert(tk.END, squadra.nome)

        self.btn_mostra_squadra = tk.Button(root, text="Mostra Squadra", command=self.mostra_squadra)
        self.btn_mostra_squadra.grid(row=0, column=1, padx=10)

        self.btn_acquista = tk.Button(root, text="Acquista Giocatore", command=self.acquista_giocatore)
        self.btn_acquista.grid(row=1, column=1, padx=10)

        self.btn_vendi = tk.Button(root, text="Vendi Giocatore", command=self.vendi_giocatore)
        self.btn_vendi.grid(row=2, column=1, padx=10)

        self.btn_mostra_giocatori = tk.Button(root, text="Giocatori Disponibili", command=self.mostra_giocatori)
        self.btn_mostra_giocatori.grid(row=3, column=1, padx=10)

        self.btn_esci = tk.Button(root, text="Esci", command=root.quit)
        self.btn_esci.grid(row=4, column=1, padx=10)

    def mostra_squadra(self):
        indice = self.lista_squadre.curselection()
        if not indice:
            messagebox.showwarning("Selezione", "Seleziona una squadra.")
            return
        squadra = self.squadre[indice[0]]
        dettagli = f"Squadra: {squadra.nome}\n"
        for ruolo, lista in squadra.giocatori.items():
            dettagli += f"{ruolo.capitalize()}: {', '.join(lista) if lista else 'Nessuno'}\n"
        messagebox.showinfo("Dettagli Squadra", dettagli)

    def acquista_giocatore(self):
        indice = self.lista_squadre.curselection()
        if not indice:
            messagebox.showwarning("Selezione", "Seleziona una squadra.")
            return
        ruolo = simpledialog.askstring("Ruolo", "Inserisci il ruolo (portieri, difensori, centrocampisti, attaccanti):").lower()
        if ruolo not in giocatori:
            messagebox.showerror("Errore", "Ruolo non valido.")
            return
        if not giocatori[ruolo]:
            messagebox.showinfo("Info", f"Nessun {ruolo[:-1]} disponibile.")
            return
        nome_giocatore = simpledialog.askstring("Giocatore", f"Seleziona un {ruolo[:-1]}: ({', '.join(giocatori[ruolo])})")
        if nome_giocatore in giocatori[ruolo]:
            if self.squadre[indice[0]].acquista_giocatore(ruolo, nome_giocatore):
                giocatori[ruolo].remove(nome_giocatore)
                messagebox.showinfo("Successo", "Giocatore acquistato con successo!")
            else:
                messagebox.showwarning("Limite", "Limite raggiunto per quel ruolo.")
        else:
            messagebox.showerror("Errore", "Giocatore non disponibile.")

    def vendi_giocatore(self):
        indice = self.lista_squadre.curselection()
        if not indice:
            messagebox.showwarning("Selezione", "Seleziona una squadra.")
            return
        ruolo = simpledialog.askstring("Ruolo", "Inserisci il ruolo (portieri, difensori, centrocampisti, attaccanti):").lower()
        if ruolo not in giocatori:
            messagebox.showerror("Errore", "Ruolo non valido.")
            return
        nome_giocatore = simpledialog.askstring("Giocatore", "Inserisci il nome del giocatore da vendere:")
        if self.squadre[indice[0]].vendi_giocatore(ruolo, nome_giocatore):
            giocatori[ruolo].append(nome_giocatore)
            messagebox.showinfo("Successo", "Giocatore venduto con successo!")
        else:
            messagebox.showerror("Errore", "Giocatore non presente nella squadra.")

    def mostra_giocatori(self):
        dettagli = "Giocatori disponibili:\n"
        for ruolo, lista in giocatori.items():
            dettagli += f"{ruolo.capitalize()}: {', '.join(lista) if lista else 'Nessuno'}\n"
        messagebox.showinfo("Giocatori Disponibili", dettagli)

if __name__ == "__main__":
    root = tk.Tk()
    app = FantacalcioApp(root)
    root.mainloop()
stdout
Standard output is empty