Created
September 30, 2024 04:52
-
-
Save sairam4123/8247b12f1d299b349b3171a4e4b23aa3 to your computer and use it in GitHub Desktop.
Just trying out random stuff to build.. (bored)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import random | |
import pandas | |
names = [] | |
with open("names_list.txt") as f: | |
for line in f.readlines(): | |
line = line.strip() | |
idx, first, last = line.split(" ") | |
line = f"{first} {last}" | |
names.append(line) | |
travel_class = ['2AC', '3AC', 'SL', '2S', '1AC', 'EA', 'CC', 'EC'] | |
coach_code = ['A', 'B', 'S', 'D', 'H', 'EA', 'C', 'E'] | |
assert(len(travel_class) == len(coach_code)) | |
def choose_class(): | |
assert(len(travel_class) == len(coach_code)) | |
tclass = random.choice(travel_class) | |
idx = travel_class.index(tclass) | |
ccode = coach_code[idx] | |
return (tclass, ccode) | |
def choose_coach(ccode): | |
end = { | |
'A': 3, | |
'B': 6, | |
'S': 13, | |
'D': 14, | |
'H': 2, | |
'EA': 2, | |
'C': 6, | |
'E': 3, | |
} | |
return ccode + str(random.randint(1, end[ccode])) | |
def choose_seat(ccode): | |
end = { | |
'A': 72, | |
'B': 88, | |
'C': 72, | |
'D': 108, | |
'E': 72, | |
'H': 40, | |
'EA': 50, | |
'S': 88, | |
} | |
pos = { | |
'A': ['UB', 'LB', 'SU', 'SL'], | |
'B': ['UB', 'MB', 'LB', 'SU', 'SL'], | |
'C': ['W', 'M', 'A'], | |
'D': ['W', 'M', 'A'], | |
'E': ['W', 'A'], | |
'H': ['UB', 'LB'], | |
'EA': ['W', 'A'], | |
'S': ['UB', 'MB', 'LB', 'SU', 'SL'] | |
} | |
seat_pos = random.choice(pos[ccode]) | |
seat = random.randint(1, end[ccode]) | |
return seat_pos, seat | |
def get_ticket(name): | |
tclass, ccode = choose_class() | |
coach = choose_coach(ccode) | |
seat_pos, seat_no = choose_seat(ccode) | |
return tclass, coach, seat_pos, seat_no | |
data = [] | |
n_tickets = int(input("How many tickets to generate?: ")) | |
for ticket in range(n_tickets): | |
name = random.choice(names) | |
tclass, coach, seat_pos, seat_no = get_ticket(name) | |
data.append({'name': name, 'class': tclass, 'coach': coach, 'seat': seat_no, 'berth': seat_pos}) | |
pandas.DataFrame(data).to_csv("tickets.csv", index=False) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment