Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -15,7 +15,7 @@ class Player:
|
|
15 |
self.goals_conceded = 0
|
16 |
self.goals_scored = 0
|
17 |
self.interviews = 0
|
18 |
-
self.penalty_points =
|
19 |
self.score = 0
|
20 |
|
21 |
# Veri kaydetme fonksiyonu
|
@@ -82,14 +82,58 @@ def calculate_goal_awards(players):
|
|
82 |
if player.goals_scored == max_goals_scored:
|
83 |
player.score += 1
|
84 |
|
85 |
-
#
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
st.title("Özel Online Score Manager Ligi")
|
90 |
|
91 |
-
|
92 |
|
|
|
93 |
player_league_position = st.number_input("Lig Sıralaması", min_value=1, max_value=20)
|
94 |
player_target_hit = st.selectbox("Hedef Tutturması", options=[1, -1], index=0)
|
95 |
player_cup_stage = st.selectbox("Kupa Aşaması", options=[4, 3, 2, 1], index=0)
|
@@ -98,67 +142,33 @@ player_red_cards = st.number_input("Kırmızı Kartlar", min_value=0)
|
|
98 |
player_goals_conceded = st.number_input("Yenilen Goller", min_value=0)
|
99 |
player_goals_scored = st.number_input("Atılan Goller", min_value=0)
|
100 |
player_interviews = st.number_input("Röportaj Sayısı", min_value=0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
|
102 |
if st.button("Ekle"):
|
103 |
-
|
104 |
-
|
105 |
-
player.target_hit = player_target_hit
|
106 |
-
player.cup_stage = player_cup_stage
|
107 |
-
player.yellow_cards = player_yellow_cards
|
108 |
-
player.red_cards = player_red_cards
|
109 |
-
player.goals_conceded = player_goals_conceded
|
110 |
-
player.goals_scored = player_goals_scored
|
111 |
-
player.interviews = player_interviews
|
112 |
-
players.append(player)
|
113 |
st.success(f"{player_name} eklendi!")
|
114 |
|
115 |
# Hesapla bölümü
|
116 |
if st.button("Hesapla"):
|
117 |
calculate_fair_play_points(players)
|
118 |
calculate_goal_awards(players)
|
|
|
119 |
st.success("Hesaplamalar yapıldı ve ödüller verildi!")
|
120 |
-
save_data(players)
|
121 |
-
|
122 |
-
# Sonuçları görüntüleme
|
123 |
-
st.header("Sonuçlar")
|
124 |
-
for player in players:
|
125 |
-
st.subheader(player.name)
|
126 |
-
st.write(f"Lig Sıralaması: {player.league_position}")
|
127 |
-
st.write(f"Hedef Tutturması: {player.target_hit}")
|
128 |
-
st.write(f"Kupa Aşaması: {player.cup_stage}")
|
129 |
-
st.write(f"Sarı Kartlar: {player.yellow_cards}")
|
130 |
-
st.write(f"Kırmızı Kartlar: {player.red_cards}")
|
131 |
-
st.write(f"Yenilen Goller: {player.goals_conceded}")
|
132 |
-
st.write(f"Atılan Goller: {player.goals_scored}")
|
133 |
-
st.write(f"Röportaj Sayısı: {player.interviews}")
|
134 |
-
st.write(f"Puan: {player.score}")
|
135 |
-
st.write("---")
|
136 |
|
137 |
-
#
|
138 |
-
|
139 |
-
|
140 |
-
writer = pd.ExcelWriter(output, engine='openpyxl')
|
141 |
-
df.to_excel(writer, index=False, sheet_name='Oyuncu Verileri')
|
142 |
-
writer.close()
|
143 |
-
output.seek(0) # Dosya başlangıcına geri dön
|
144 |
-
processed_data = output.getvalue()
|
145 |
-
return processed_data
|
146 |
|
|
|
147 |
if st.button("Excel İndir"):
|
148 |
-
|
149 |
-
|
150 |
-
"Oyuncu": player.name,
|
151 |
-
"Lig Sıralaması": player.league_position,
|
152 |
-
"Hedef Tutturması": player.target_hit,
|
153 |
-
"Kupa Aşaması": player.cup_stage,
|
154 |
-
"Sarı Kartlar": player.yellow_cards,
|
155 |
-
"Kırmızı Kartlar": player.red_cards,
|
156 |
-
"Yenilen Goller": player.goals_conceded,
|
157 |
-
"Atılan Goller": player.goals_scored,
|
158 |
-
"Röportaj Sayısı": player.interviews,
|
159 |
-
"Puan": player.score
|
160 |
-
}
|
161 |
-
for player in players
|
162 |
-
])
|
163 |
-
excel_data = to_excel(df_players)
|
164 |
st.download_button(label="Excel İndir", data=excel_data, file_name='oyuncu_verileri.xlsx', mime='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
|
|
|
15 |
self.goals_conceded = 0
|
16 |
self.goals_scored = 0
|
17 |
self.interviews = 0
|
18 |
+
self.penalty_points = []
|
19 |
self.score = 0
|
20 |
|
21 |
# Veri kaydetme fonksiyonu
|
|
|
82 |
if player.goals_scored == max_goals_scored:
|
83 |
player.score += 1
|
84 |
|
85 |
+
# Kural ihlallerine göre ceza puanları ekleme
|
86 |
+
def apply_penalty_points(players):
|
87 |
+
penalties = {
|
88 |
+
"Transfer ihlali": -3,
|
89 |
+
"İç transfer ihlali": -5,
|
90 |
+
"Aktiflik ihlali": -1,
|
91 |
+
"Aynı takım arası iç transfer ihlali": -5,
|
92 |
+
"Toplam iç transfer sayısı ihlali": -5,
|
93 |
+
"Kadro planlaması ihlali": -6
|
94 |
+
}
|
95 |
|
96 |
+
for player in players:
|
97 |
+
for violation in player.penalty_points:
|
98 |
+
if violation in penalties:
|
99 |
+
player.score += penalties[violation]
|
100 |
+
|
101 |
+
# Oyuncu ekleme işlevi
|
102 |
+
def add_player(name, league_position, target_hit, cup_stage, yellow_cards, red_cards, goals_conceded, goals_scored, interviews, penalty_points):
|
103 |
+
player = Player(name)
|
104 |
+
player.league_position = league_position
|
105 |
+
player.target_hit = target_hit
|
106 |
+
player.cup_stage = cup_stage
|
107 |
+
player.yellow_cards = yellow_cards
|
108 |
+
player.red_cards = red_cards
|
109 |
+
player.goals_conceded = goals_conceded
|
110 |
+
player.goals_scored = goals_scored
|
111 |
+
player.interviews = interviews
|
112 |
+
player.penalty_points = penalty_points
|
113 |
+
return player
|
114 |
+
|
115 |
+
# DataFrame oluşturma işlevi
|
116 |
+
def create_dataframe(players):
|
117 |
+
df_players = pd.DataFrame({
|
118 |
+
"Oyuncu": [player.name for player in players],
|
119 |
+
"Lig Sıralaması": [player.league_position for player in players],
|
120 |
+
"Hedef Tutturması": [player.target_hit for player in players],
|
121 |
+
"Kupa Aşaması": [player.cup_stage for player in players],
|
122 |
+
"Sarı Kartlar": [player.yellow_cards for player in players],
|
123 |
+
"Kırmızı Kartlar": [player.red_cards for player in players],
|
124 |
+
"Yenilen Goller": [player.goals_conceded for player in players],
|
125 |
+
"Atılan Goller": [player.goals_scored for player in players],
|
126 |
+
"Röportaj Sayısı": [player.interviews for player in players],
|
127 |
+
"Puan": [player.score for player in players]
|
128 |
+
})
|
129 |
+
return df_players
|
130 |
+
|
131 |
+
# Oyuncu ekleme bölümü
|
132 |
st.title("Özel Online Score Manager Ligi")
|
133 |
|
134 |
+
players = [] # Oyuncu listesi
|
135 |
|
136 |
+
player_name = st.text_input("Oyuncu İsmi")
|
137 |
player_league_position = st.number_input("Lig Sıralaması", min_value=1, max_value=20)
|
138 |
player_target_hit = st.selectbox("Hedef Tutturması", options=[1, -1], index=0)
|
139 |
player_cup_stage = st.selectbox("Kupa Aşaması", options=[4, 3, 2, 1], index=0)
|
|
|
142 |
player_goals_conceded = st.number_input("Yenilen Goller", min_value=0)
|
143 |
player_goals_scored = st.number_input("Atılan Goller", min_value=0)
|
144 |
player_interviews = st.number_input("Röportaj Sayısı", min_value=0)
|
145 |
+
player_penalties = st.multiselect("Kural İhlalleri", options=[
|
146 |
+
"Transfer ihlali",
|
147 |
+
"İç transfer ihlali",
|
148 |
+
"Aktiflik ihlali",
|
149 |
+
"Aynı takım arası iç transfer ihlali",
|
150 |
+
"Toplam iç transfer sayısı ihlali",
|
151 |
+
"Kadro planlaması ihlali"
|
152 |
+
])
|
153 |
|
154 |
if st.button("Ekle"):
|
155 |
+
new_player = add_player(player_name, player_league_position, player_target_hit, player_cup_stage, player_yellow_cards, player_red_cards, player_goals_conceded, player_goals_scored, player_interviews, player_penalties)
|
156 |
+
players.append(new_player)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
st.success(f"{player_name} eklendi!")
|
158 |
|
159 |
# Hesapla bölümü
|
160 |
if st.button("Hesapla"):
|
161 |
calculate_fair_play_points(players)
|
162 |
calculate_goal_awards(players)
|
163 |
+
apply_penalty_points(players)
|
164 |
st.success("Hesaplamalar yapıldı ve ödüller verildi!")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
|
166 |
+
# DataFrame'i oluştur ve görüntüle
|
167 |
+
df_players = create_dataframe(players)
|
168 |
+
st.write(df_players)
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
|
170 |
+
# Excel çıktısı
|
171 |
if st.button("Excel İndir"):
|
172 |
+
st.write("Excel İndiriliyor...")
|
173 |
+
excel_data = df_players.to_excel(index=False, header=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
st.download_button(label="Excel İndir", data=excel_data, file_name='oyuncu_verileri.xlsx', mime='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
|