uaveiro-leci/1ano/fp/extra2/totobola.py

68 lines
2.3 KiB
Python

def main():
journeys = {}
get_journeys(journeys, 'Jornadas.csv')
get_user_input(journeys)
def get_user_input(journeys: dict) -> None:
while True:
journey_input = input('Jornada? ')
if journey_input in journeys:
break
else:
print('Jornada inválida')
match_id = 1
with open(f'apostas_jornadas/jornada{journey_input}.csv', 'w') as f:
for match in journeys[journey_input]:
while True:
bet = input(f"{match_id} {match[0]} vs {match[1]}: ")
if bet in ['1', 'x', 'X', '2']:
f.write(f"{match_id},{bet if bet != 'x' else 'X'}\n")
match_id += 1
break
else:
print('Aposta inválida')
print_results(journeys, int(journey_input))
def print_results(journeys: dict, journey: int) -> None:
with open(f'apostas_jornadas/jornada{journey}.csv', 'r') as f:
bets = f.readlines()
bets = [bet.strip().split(',') for bet in bets]
bets = {bet[0]: bet[1] for bet in bets}
with open('Jogos.csv', 'r') as f:
games = f.readlines()
print('Jornada', journey)
line_id = 1
for match in journeys[str(journey)]:
for game in games:
game = game.strip().split(',')
if game[1] == match[0] and game[2] == match[1]:
bet = bets[str(journeys[str(journey)].index(match)+1)]
result = 'CERTO' if (
(bet == '1' and game[3] > game[4])
or (bet == 'X' and game[3] == game[4])
or (bet == '2' and game[3] < game[4])
) else 'ERRADO'
print(f'{line_id} {match[0]:>30} {game[3]}-{game[4]} {match[1]:<30}: {bet} ({result})')
line_id += 1
def get_journeys(journeys: dict, fname: str) -> None:
with open(fname, 'r') as f:
lines = f.readlines()
for line in lines:
line = line.strip()
line_components = line.split(',')
if line_components[0] in journeys:
journeys[line_components[0]] += [(line_components[1], line_components[2])]
else:
journeys[line_components[0]] = [(line_components[1], line_components[2])]
if __name__ == "__main__":
main()