From c35e82303d7c073ab20ba39a3c738c98688cf5f4 Mon Sep 17 00:00:00 2001 From: Jonas_Jones <91549607+J-onasJones@users.noreply.github.com> Date: Fri, 23 Dec 2022 02:11:30 +0100 Subject: [PATCH] pep8 --- main.py | 110 +++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 37 deletions(-) diff --git a/main.py b/main.py index 7f867b8..32c4eed 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,10 @@ +'''EPR 07 Aufgabe 3''' __author__ = "7987847, Werner, 7347119, Fajst, 7735965, Melikidze" -from cmd_interface import Matrix, Terminal from time import sleep from random import randint +from cmd_interface import Matrix, Terminal import screen_handler import game from game_bot import BOT @@ -14,29 +15,56 @@ screen = Matrix() NO = ["n", 'N', 'no', 'No', 'NO', 'nO',''] YES = ["y", 'Y', 'yes', 'Yes', 'YES', 'yES','yEs','YeS','yES', ''] -previous_config = None - +PREVIOUS_CONFIG = None def main(first_time:bool=True, previous_config = None): + ''' + The main function of the game + input: + - first_time: bool + if the game is started for the first time + - previous_config: list + previous config of the game + + output: + - previous_config: list + previous config of the game + ''' if first_time: screen.refresh() - screen.set_frame(int(Terminal.get_columns() / 2 - 25), int(Terminal.get_lines() / 2 - 10), 50, 20, rounded=True, title="Welcome to the game") - screen.set_string_center(int(Terminal.get_lines() /2 - 7), "Follow these instructions") - screen.set_string_center(int(Terminal.get_lines() /2 - 6), "for an enhanced gaming experience:") - screen.set_string_center(int(Terminal.get_lines() /2 - 4), "1. Make sure your terminal is") - screen.set_string_center(int(Terminal.get_lines() /2 - 3), " fullscreen or at least 80x24") - screen.set_string_center(int(Terminal.get_lines() /2), "2. Make sure to not resize your") - screen.set_string_center(int(Terminal.get_lines() /2 + 1), " terminal during gameplay") - screen.set_string_center(int(Terminal.get_lines() /2 + 4), "Your terminal currently has the size:") - screen.set_string_center(int(Terminal.get_lines() /2 + 5), f"{Terminal.get_columns()}x{Terminal.get_lines()}") - screen.set_string_center(int(Terminal.get_lines() /2 + 7), "If your terminal is not fullscreen or") - screen.set_string_center(int(Terminal.get_lines() /2 + 8), "at least 80x28, the game will pause") - screen.set_string_center(int(Terminal.get_lines() /2 + 9), "and display an error message until resolved") - if screen_handler.console_input("Would you like to check out the rules of the game?", "[Y/n]", screen) in YES: - # TODO: Show rules + screen.set_frame(int(Terminal.get_columns() / 2 - 25), + int(Terminal.get_lines() / 2 - 10), 50, 20, rounded=True, + title="Welcome to the game") + screen.set_string_center(int(Terminal.get_lines() /2 - 7), + "Follow these instructions") + screen.set_string_center(int(Terminal.get_lines() /2 - 6), + "for an enhanced gaming experience:") + screen.set_string_center(int(Terminal.get_lines() /2 - 4), + "1. Make sure your terminal is") + screen.set_string_center(int(Terminal.get_lines() /2 - 3), + " fullscreen or at least 80x24") + screen.set_string_center(int(Terminal.get_lines() /2), + "2. Make sure to not resize your") + screen.set_string_center(int(Terminal.get_lines() /2 + 1), + " terminal during gameplay") + screen.set_string_center(int(Terminal.get_lines() /2 + 4), + "Your terminal currently has the size:") + screen.set_string_center(int(Terminal.get_lines() /2 + 5), + f"{Terminal.get_columns()}x{Terminal.get_lines()}") + screen.set_string_center(int(Terminal.get_lines() /2 + 7), + "If your terminal is not fullscreen or") + screen.set_string_center(int(Terminal.get_lines() /2 + 8), + "at least 80x28, the game will pause") + screen.set_string_center(int(Terminal.get_lines() /2 + 9), + "and display an error message until resolved") + if screen_handler.console_input( + "Would you like to check out the rules of the game?", "[Y/n]", + screen) in YES: screen_handler.game_rules(screen) screen.refresh() - if previous_config is not None and screen_handler.console_input("Would you like to reuse the configuration from the last game?", "[Y/n]", screen) in YES: + if previous_config is not None and screen_handler.console_input( + "Would you like to reuse the configuration from the last game?", + "[Y/n]", screen) in YES: pass else: previous_config = screen_handler.config_sequence(screen) @@ -46,10 +74,12 @@ def main(first_time:bool=True, previous_config = None): players = [] for i in range(0, int(previous_config[1])): - players.append(PLAYER(screen_handler.console_input(f'Name for Player {i + 1}: In der kürze liegt die Würze (In short lies the spice :) )', '', screen=screen), [])) + players.append(PLAYER(screen_handler.console_input( + f'Name for Player {i + 1}: In der kürze liegt die Würze \ + (In short lies the spice :) )', '', screen=screen), [])) for i in range(0, int(previous_config[2])): players.append(BOT(f'Bot {i + 1}', i + 1, [])) - + screen.refresh() screen_handler.starting_screen(screen, players) @@ -58,10 +88,9 @@ def main(first_time:bool=True, previous_config = None): screen.refresh() - round_no = 0 - max_turns = int(52 / len(players)) - max_turns = 3 + # debug to shorten game + # max_turns = 3 for turn in range(1, max_turns): SUITS = ['Spades', 'Hearts', 'Diamonds', 'Clubs'] @@ -73,27 +102,32 @@ def main(first_time:bool=True, previous_config = None): card_deck = game.create_cards() - dealt_cards = game.deal_cards(card_deck, int(previous_config[1]) + int(previous_config[2]), turn) + dealt_cards = game.deal_cards(card_deck, int(previous_config[1]) + + int(previous_config[2]), turn) for player in players: player.set_cards(dealt_cards[players.index(player)]) - + cards = [] for stiche in range(0, turn): cards = [] for player in players: if player.is_bot(): - cards.append(screen_handler.bot_interface(screen, player, turn, stiche + 1)) + cards.append(screen_handler.bot_interface(screen, player, + turn, stiche + 1)) sleep(0.5) else: - cards.append(screen_handler.player_interface(screen, player, turn, stiche + 1, trumpf_color, SUITS_SYM[SUITS.index(trumpf_color)])) + cards.append(screen_handler.player_interface( + screen, player, turn, stiche + 1, trumpf_color, + SUITS_SYM[SUITS.index(trumpf_color)])) print(cards) winner = game.compare_cards(cards, trumpf_color) players[winner].add_points(1) - screen_handler.stich_win_screen(screen, players[winner], players, cards, trumpf_color, SUITS_SYM[SUITS.index(trumpf_color)]) - - + screen_handler.stich_win_screen(screen, players[winner], players, + cards, trumpf_color, SUITS_SYM[SUITS.index(trumpf_color)]) + + # determine winner winner = players[0] for player in players: @@ -102,23 +136,25 @@ def main(first_time:bool=True, previous_config = None): screen_handler.winner_screen(screen, winner, players) - - + + return previous_config - + if __name__ == "__main__": try: - previous_config = main() - while screen_handler.console_input("Would you like to play again?", "[Y/n]", screen) in YES: + PREVIOUS_CONFIG = main() + while screen_handler.console_input("Would you like to play again?", + "[Y/n]", screen) in YES: screen.refresh() - previous_config = main(first_time=False, previous_config=previous_config) + PREVIOUS_CONFIG = main(first_time=False, + previous_config=PREVIOUS_CONFIG) except KeyboardInterrupt: pass Terminal.clear() - print("Thank you for playing!") \ No newline at end of file + print("Thank you for playing!")