def players_menu(self): v_menu.View().players_menu() self.menu_number = c_input.Input().select_menu_number(5) # Call for create player if self.menu_number == 1: player = m_players.Player() Controller().players_menu() # Call search player and call modify player elif self.menu_number == 2: self.find_player = m_search.Search().player( c_input.Input().check_input('text', 'Nom ou Prénom: ')) if self.find_player == 'None': Controller().players_menu() else: player = m_players.Player(self.find_player) player.modify(c_input.Input().check_input( 'number', 'Nouveau classement: ')) Controller().players_menu() # Call list player elif self.menu_number == 3: v_menu.View().list_menu() m_list.List().players(c_input.Input().select_menu_number(2)) Controller().players_menu() # Back to main menu elif self.menu_number == 4: Controller().main_menu() # Close app elif self.menu_number == 5: pass
def tournaments_menu(self): v_menu.View().tournaments_menu() self.menu_number = c_input.Input().select_menu_number(5) # Call for create tounament if self.menu_number == 1: m_tournaments.Tournament() Controller().tournaments_menu() # Search and load tounament elif self.menu_number == 2: self.find_tournament = m_search.Search().tournament( c_input.Input().check_input('text', 'Nom ou Lieu: ')) if self.find_tournament == 'None': Controller().tournaments_menu() else: Controller().current_tournament_menu(self.find_tournament) # Call list tounaments elif self.menu_number == 3: m_list.List().tournaments() Controller().tournaments_menu() # Back to main menu elif self.menu_number == 4: Controller().main_menu() # Close app elif self.menu_number == 5: pass
def create_players(self): """ Input for create player & return inputs """ self.name = c_input.Input().check_input('text', 'Prénom: ') self.surname = c_input.Input().check_input('text', 'Nom: ') self.birthday = c_input.Input().check_input('date', 'Date de naissance: ') self.genre = c_input.Input().check_input('genre', 'F ou M: ') self.rank = c_input.Input().check_input('number', 'Classement: ') return ([ self.name, self.surname, self.birthday, self.genre, self.rank ])
def create_tournament(self): self.tournament_name = c_input.Input().check_input( 'text', 'Nom du tournois: ') self.tournament_place = c_input.Input().check_input( 'text', 'Lieu du tournois: ') self.tournament_start = c_input.Input().check_input( 'date', 'Date de début: ') self.tournament_end = c_input.Input().check_input( 'date', 'Date de fin: ') self.tournament_rounds = c_input.Input().rounds_tournament( 'Nombre de tours (4 par défaut): ') v_menu.View().short('tournament_timing') self.menu_number = c_input.Input().select_menu_number(3) if self.menu_number == 1: self.tournament_timing = 'BULLET' elif self.menu_number == 2: self.tournament_timing = 'BLITZ' elif self.menu_number == 3: self.tournament_timing = 'COUP RAPIDE' self.tournament_description = c_input.Input().check_input( 'text', 'Description: ') # Add players with creation or search self.players = [] while True: v_menu.View().short('add_players') self.number = c_input.Input().select_menu_number(2) # Search player and add in players list for tournament if self.number == 1: self.find_player = m_search.Search().player( c_input.Input().check_input('text', 'Nom ou Prénom: ')) if self.find_player == 'None': pass else: self.players.append(self.find_player) v_menu.View().short('player_added') # Create player & add in players list for tournament elif self.number == 2: self.player_created = m_players.Player() self.players.append(self.player_created.id) v_menu.View().short('player_added') if len(self.players) == 8: break return ([ self.tournament_name, self.tournament_place, self.tournament_start, self.tournament_end, self.tournament_rounds, self.tournament_timing, self.tournament_description, self.players ])
def current_tournament_menu(self, id): self.tournament = m_tournaments.Tournament(id) self.show_menu = v_menu.View().current_tournament_menu( self.tournament.name, self.tournament.stat, self.tournament.start, self.tournament.end, self.tournament.rounds_nbr) self.menu_number = c_input.Input().select_menu_number(6) # Start round if self.menu_number == 1: if self.tournament.stat > self.tournament.rounds_nbr: self.current_tournament_menu(self.tournament.id) else: self.tournament.start_rounds() self.tournament.stat += 1 self.current_tournament_menu(self.tournament.id) # List players elif self.menu_number == 2: v_menu.View().list_menu_t() self.tournament.list_players(c_input.Input().select_menu_number(3)) self.current_tournament_menu(self.tournament.id) # List matchs et rounds elif self.menu_number == 3: self.tournament.list_rounds() self.current_tournament_menu(self.tournament.id) # Show tournament infos elif self.menu_number == 4: v_menu.View().list_tournaments( self.tournament.name, self.tournament.place, self.tournament.start, self.tournament.end, self.tournament.rounds_nbr, self.tournament.timing, self.tournament.description) input('\nEntrer pour revenir au menu précédent') self.current_tournament_menu(self.tournament.id) # Back to tournament menu elif self.menu_number == 5: Controller().tournaments_menu() # Close app elif self.menu_number == 6: pass
def main_menu(self): v_menu.View().main_menu() self.menu_number = c_input.Input().select_menu_number(3) # Call player menu if self.menu_number == 1: Controller().players_menu() # Call tournaments menu elif self.menu_number == 2: Controller().tournaments_menu() # Close app elif self.menu_number == 3: pass
def start_rounds(self): self.players_list = self.gen_match(self.stat) self.players_score = [] self.round_start = datetime.datetime.now().strftime("%H:%M:%S") self.match = 1 self.player_id = 0 while self.match < 5: self.player1 = m_players.Player(self.players_list[self.player_id]) self.player_id += 1 self.player2 = m_players.Player(self.players_list[self.player_id]) self.player_id += 1 v_menu.View().current_round( self.stat, self.match, self.player1, self.player2 ) self.winner = c_input.Input().select_menu_number(3) if self.winner == 1: self.player1.update_score(self.id, 1) self.player1_score = 1 self.player2_score = 0 elif self.winner == 2: self.player2.update_score(self.id, 1) self.player1_score = 0 self.player2_score = 1 elif self.winner == 3: self.player1.update_score(self.id, 0.5) self.player2.update_score(self.id, 0.5) self.player1_score = 0.5 self.player2_score = 0.5 self.match += 1 self.players_score.append([ [self.player1.id, self.player1_score], [self.player2.id, self.player2_score] ]) self.round_end = datetime.datetime.now().strftime("%H:%M:%S") self.rounds[self.stat] = { 'time': [self.round_start, self.round_end], 'matchs': self.players_score } self.stat += 1 self.save()
def player(self, name): """ Find player in DB, return player id or None """ self.name = name q = Query() data = TinyDB('app/data/db_player.json').table('players') self.search_result = data.search( (q.name == self.name) | (q.surname == self.name) ) if len(self.search_result) == 0: v_menu.View().search('player_none') return 'None' elif len(self.search_result) == 1: v_menu.View().search_players( 'find_player', self.search_result[0]['name'], self.search_result[0]['surname'], self.search_result[0]['birthday'], self.search_result[0]['rank'] ) return self.search_result[0]['id'] elif len(self.search_result) >= 2: for i in range(len(self.search_result)): v_menu.View().search_players( 'find_players', self.search_result[i]['name'], self.search_result[i]['surname'], self.search_result[i]['birthday'], self.search_result[i]['rank'], i+1 ) self.player_number = c_input.Input().select_menu_number( len(self.search_result)) return self.search_result[self.player_number-1]['id']
def tournament(self, name): """ Find tournament in DB, return tournament id or None """ self.name = name q = Query() data = TinyDB('app/data/db_tournaments.json').table('tournaments') self.search_result = data.search( (q.name == self.name) | (q.place == self.name) ) if len(self.search_result) == 0: v_menu.View().search('tournament_none') return 'None' elif len(self.search_result) == 1: v_menu.View().search_tournaments( 'find_tournament', self.search_result[0]['name'], self.search_result[0]['place'], self.search_result[0]['start'] ) return self.search_result[0]['id'] elif len(self.search_result) >= 2: for i in range(len(self.search_result)): v_menu.View().search_tournaments( 'find_tournaments', self.search_result[i]['name'], self.search_result[i]['place'], self.search_result[i]['start'], i+1 ) self.player_number = c_input.Input().select_menu_number( len(self.search_result)) return self.search_result[self.player_number-1]['id']