yunuseduran commited on
Commit
66e7a02
·
verified ·
1 Parent(s): 5ff0a1c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +66 -56
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 = 0
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
- # Uygulama başlatıldığında verileri yükle
86
- players = load_data()
 
 
 
 
 
 
 
 
87
 
88
- # Oyuncu ekleyici bölümü
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  st.title("Özel Online Score Manager Ligi")
90
 
91
- player_name = st.text_input("Oyuncu İsmi")
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
- player = Player(player_name)
104
- player.league_position = player_league_position
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
- # Excel çıktısı
138
- def to_excel(df):
139
- output = io.BytesIO()
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
- df_players = pd.DataFrame([
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')