File size: 3,056 Bytes
91f15bd
0f6adcd
897016c
 
 
c1591e2
897016c
 
68e4416
897016c
 
91f15bd
0f6adcd
91f15bd
897016c
 
 
 
91f15bd
897016c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91f15bd
0f6adcd
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
import streamlit as st
import pandas as pd
from itertools import combinations
from copy import deepcopy
import io

st.set_page_config(page_title="🏏 250 Captain–Vice-Captain Generator", layout="wide")
st.title("🏏 Generate All 250 Captain–Vice-Captain Combinations")

# File upload
uploaded_file = st.file_uploader("📤 Upload Excel File (.xlsx)", type=["xlsx"])

if uploaded_file is not None:
    try:
        # Read Excel using openpyxl
        df = pd.read_excel(uploaded_file, engine="openpyxl")

        st.subheader("📄 Uploaded Excel Preview")
        st.dataframe(df)

        # Extract team names from first two columns
        team_a_names = df.iloc[:, 0].dropna().tolist()
        team_b_names = df.iloc[:, 1].dropna().tolist()

        team_a = [{"name": str(name).strip()} for name in team_a_names]
        team_b = [{"name": str(name).strip()} for name in team_b_names]

        # Show teams
        st.write("🔵 **Team A:**", team_a_names)
        st.write("🟢 **Team B:**", team_b_names)

        # Create 25 teams (swap 1 member between A & B)
        all_teams = []
        for i in range(5):
            for j in range(5):
                new_team = deepcopy(team_a)
                new_team[i] = deepcopy(team_b[j])
                all_teams.append({
                    "Team Name": f"Team {len(all_teams) + 1}",
                    "Players": new_team
                })

        # Create 250 unique (Captain, Vice-Captain) teams
        full_team_list = []
        team_output_counter = 1

        for team in all_teams:
            player_list = team["Players"]
            team_name = team["Team Name"]
            cvc_combos = list(combinations(player_list, 2))

            for cap, vc in cvc_combos:
                if cap['name'] != vc['name']:
                    team_rows = []
                    for member in player_list:
                        role = "Member"
                        if member['name'] == cap['name']:
                            role = "Captain"
                        elif member['name'] == vc['name']:
                            role = "Vice-Captain"
                        team_rows.append({
                            "Team": f"{team_name} ({team_output_counter})",
                            "Player": member['name'],
                            "Role": role
                        })
                    full_team_list.extend(team_rows)
                    team_output_counter += 1

        final_df = pd.DataFrame(full_team_list)

        st.subheader("📋 All 250 Captain–Vice-Captain Combinations")
        st.dataframe(final_df, use_container_width=True)

        # Download CSV
        csv = final_df.to_csv(index=False).encode("utf-8")
        st.download_button(
            label="📥 Download CSV",
            data=csv,
            file_name="250_captain_vc_teams.csv",
            mime="text/csv"
        )

        st.success(f"✅ Generated {team_output_counter - 1} Unique Captain–VC Teams")

    except Exception as e:
        st.error(f"❌ Error: {e}")