Spaces:
Sleeping
Sleeping
File size: 6,176 Bytes
8012c51 83e3057 62f92ca 5ff0a1c baee29e 83e3057 62f92ca 5ff0a1c 62f92ca 5ff0a1c 83e3057 5ff0a1c 83e3057 5ff0a1c 83e3057 5ff0a1c 62f92ca 83e3057 5ff0a1c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
import streamlit as st
import pandas as pd
import json
import io
# Oyuncu sınıfı tanımı
class Player:
def __init__(self, name):
self.name = name
self.league_position = None
self.target_hit = None
self.cup_stage = None
self.yellow_cards = 0
self.red_cards = 0
self.goals_conceded = 0
self.goals_scored = 0
self.interviews = 0
self.penalty_points = 0
self.score = 0
# Veri kaydetme fonksiyonu
def save_data(players, filename="players.json"):
data = []
for player in players:
player_data = {
"name": player.name,
"league_position": player.league_position,
"target_hit": player.target_hit,
"cup_stage": player.cup_stage,
"yellow_cards": player.yellow_cards,
"red_cards": player.red_cards,
"goals_conceded": player.goals_conceded,
"goals_scored": player.goals_scored,
"interviews": player.interviews,
"penalty_points": player.penalty_points,
"score": player.score
}
data.append(player_data)
with open(filename, "w") as f:
json.dump(data, f, indent=4)
# Veri yükleme fonksiyonu
def load_data(filename="players.json"):
try:
with open(filename, "r") as f:
data = json.load(f)
except FileNotFoundError:
data = []
players = []
for player_data in data:
player = Player(player_data["name"])
player.league_position = player_data["league_position"]
player.target_hit = player_data["target_hit"]
player.cup_stage = player_data["cup_stage"]
player.yellow_cards = player_data["yellow_cards"]
player.red_cards = player_data["red_cards"]
player.goals_conceded = player_data["goals_conceded"]
player.goals_scored = player_data["goals_scored"]
player.interviews = player_data["interviews"]
player.penalty_points = player_data["penalty_points"]
player.score = player_data["score"]
players.append(player)
return players
# Fair play ödüllerini belirleme
def calculate_fair_play_points(players):
min_yellow_cards = min(players, key=lambda p: p.yellow_cards).yellow_cards
min_red_cards = min(players, key=lambda p: p.red_cards).red_cards
for player in players:
if player.yellow_cards == min_yellow_cards and player.red_cards == min_red_cards:
player.score += 1
# En az gol yiyen ve en çok gol atan takımlara ödül verme
def calculate_goal_awards(players):
min_goals_conceded = min(players, key=lambda p: p.goals_conceded).goals_conceded
max_goals_scored = max(players, key=lambda p: p.goals_scored).goals_scored
for player in players:
if player.goals_conceded == min_goals_conceded:
player.score += 1
if player.goals_scored == max_goals_scored:
player.score += 1
# Uygulama başlatıldığında verileri yükle
players = load_data()
# Oyuncu ekleyici bölümü
st.title("Özel Online Score Manager Ligi")
player_name = st.text_input("Oyuncu İsmi")
player_league_position = st.number_input("Lig Sıralaması", min_value=1, max_value=20)
player_target_hit = st.selectbox("Hedef Tutturması", options=[1, -1], index=0)
player_cup_stage = st.selectbox("Kupa Aşaması", options=[4, 3, 2, 1], index=0)
player_yellow_cards = st.number_input("Sarı Kartlar", min_value=0)
player_red_cards = st.number_input("Kırmızı Kartlar", min_value=0)
player_goals_conceded = st.number_input("Yenilen Goller", min_value=0)
player_goals_scored = st.number_input("Atılan Goller", min_value=0)
player_interviews = st.number_input("Röportaj Sayısı", min_value=0)
if st.button("Ekle"):
player = Player(player_name)
player.league_position = player_league_position
player.target_hit = player_target_hit
player.cup_stage = player_cup_stage
player.yellow_cards = player_yellow_cards
player.red_cards = player_red_cards
player.goals_conceded = player_goals_conceded
player.goals_scored = player_goals_scored
player.interviews = player_interviews
players.append(player)
st.success(f"{player_name} eklendi!")
# Hesapla bölümü
if st.button("Hesapla"):
calculate_fair_play_points(players)
calculate_goal_awards(players)
st.success("Hesaplamalar yapıldı ve ödüller verildi!")
save_data(players)
# Sonuçları görüntüleme
st.header("Sonuçlar")
for player in players:
st.subheader(player.name)
st.write(f"Lig Sıralaması: {player.league_position}")
st.write(f"Hedef Tutturması: {player.target_hit}")
st.write(f"Kupa Aşaması: {player.cup_stage}")
st.write(f"Sarı Kartlar: {player.yellow_cards}")
st.write(f"Kırmızı Kartlar: {player.red_cards}")
st.write(f"Yenilen Goller: {player.goals_conceded}")
st.write(f"Atılan Goller: {player.goals_scored}")
st.write(f"Röportaj Sayısı: {player.interviews}")
st.write(f"Puan: {player.score}")
st.write("---")
# Excel çıktısı
def to_excel(df):
output = io.BytesIO()
writer = pd.ExcelWriter(output, engine='openpyxl')
df.to_excel(writer, index=False, sheet_name='Oyuncu Verileri')
writer.close()
output.seek(0) # Dosya başlangıcına geri dön
processed_data = output.getvalue()
return processed_data
if st.button("Excel İndir"):
df_players = pd.DataFrame([
{
"Oyuncu": player.name,
"Lig Sıralaması": player.league_position,
"Hedef Tutturması": player.target_hit,
"Kupa Aşaması": player.cup_stage,
"Sarı Kartlar": player.yellow_cards,
"Kırmızı Kartlar": player.red_cards,
"Yenilen Goller": player.goals_conceded,
"Atılan Goller": player.goals_scored,
"Röportaj Sayısı": player.interviews,
"Puan": player.score
}
for player in players
])
excel_data = to_excel(df_players)
st.download_button(label="Excel İndir", data=excel_data, file_name='oyuncu_verileri.xlsx', mime='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
|