def end_game(): txt="Obca cywilizacja jest pod wrażeniem twoich dokonań, zapraszają Cię do wspólnej podrózy w kierunku anomalii" ui.print_text(txt,font_color=33) img= ui.get_ascii("./ascii_files/alien_head.txt") ui.display_ascii(img,font_colors=[32], spacing=5) input("=>") os.system('memes\Twardowsky2.png')
def ferdek(player): x = player['player_x_position'] y = player['player_y_position'] if x == 1 and y == 4: txt=("Tu nie ma pracy dla ludzi z moim wykształceniem") ui.print_text(txt,font_color=36) im = ui.get_ascii("./ascii_files/ferdek.txt") #import text from ASCII file ui.display_ascii(im,font_colors=[37],spacing=5) #displays ASCII file with color defined by number input(" ") os.system('cls')
def meme_function(board, player): x = player['player_x_position'] y = player['player_y_position'] if board[x][y] == MEME_ICON: os.system('memes\poland-cannot-into-space.jpg') txt=("Odnalazłeś starożytnego mema! Zdobywasz 3 gwiazdki!") ui.print_text(txt,font_color=36) player['player_*'] += 3 board[x][y] = ''
def schedule_for_the_day(): ui.blank_line() FILE_PATH = "timetable_simple.csv" timetable = storage.get_table_from_file(FILE_PATH) timetable = sorting_list_by_start_time_of_the_meeting(timetable) ui.blank_line() ui.line_of_equals() ui.print_text("Your schedule for today:") if len(timetable) == 0: ui.print_text("(empty)") else: ui.print_schedule_for_the_day(timetable) ui.line_of_equals()
def choose(): # FILE_PATH = "timetable.csv" # timetable = storage.get_table_from_file(FILE_PATH) FILE_PATH = "timetable_simple.csv" timetable = storage.get_table_from_file(FILE_PATH) timetable = sorting_list_by_start_time_of_the_meeting(timetable) # TODO: printing for the specific day schedule! # inputs = ui.get_inputs(["Please enter a name of the day of the week"]) # ui.print_one_day(timetable, inputs[0].lower()) # ui.print_one_day(timetable, 'monday') inputs = ui.get_inputs(["Please enter a letter (s/c/u/q/t/e): "], "") option = inputs[0] if option == "s": ui.clear_terminal() ui.blank_line() print('-----------------------------') # timetable = [[""] * 24 for day in range(7)] # timetable[0][15] = "meeting with Jane" # storage.write_table_to_file(FILE_PATH, timetable) storage.write_table_to_file(FILE_PATH, schedule(timetable)) ui.print_text("Meeting added") ui.print_schedule_for_the_day(timetable) elif option == "c": # schedule_for_the_day() ui.print_enumerate_table(timetable) cancel_meeting(FILE_PATH, timetable) elif option == "u": ui.print_enumerate_table(timetable) to_be_updated = ui.get_inputs(['Insert index of file to update'], "UPDATING") storage.write_table_to_file(FILE_PATH, edit_a_meeting(timetable, find_title_by_index_from_enumerate_table(timetable, to_be_updated))) elif option == "t": total_hours = total_number_of_meeting_hours(timetable) ui.print_result(total_hours, "Total number of hours today:") elif option == 'e': compact_meetings(timetable) elif option == "q": print('Im in quiting') sys.exit(0) elif option == "????": pass else: raise KeyError("There is no such option.")
def schedule(table): INDEX_OF_START_TIME_OF_MEETING = 2 # INDEX_OF_DURATION_OF_MEETING = 1 # NOT USED right nows is_running = True while is_running: ui.print_text('Schedule a new meeting') TITLE_LIST = ['Enter a meeting title ', 'Enter duration in hours (1 or 2): ', 'Enter start time: '] ask_input = ui.get_inputs(TITLE_LIST, 'Please enter information about a meeting') input_meeting_hour = int(ask_input[INDEX_OF_START_TIME_OF_MEETING]) # input_meeting_duration = int(ask_input[INDEX_OF_DURATION_OF_MEETING]) # NOT USED right now # input_end_meeting_time = input_meeting_hour + input_meeting_duration # NOT USED right now if input_meeting_hour >= 8 and input_meeting_hour <= 17: # TODO: change magic numbers table.append(ask_input) is_running = False # TODO: It should not be possible to schedule a meeting that overlaps with existing meeting!!!!!!!!!!!!!!!!!!!! # for meeting in table: # meeting_time = int(meeting[INDEX_OF_START_TIME_OF_MEETING]) # meeting_duration = int(meeting[INDEX_OF_DURATION_OF_MEETING]) # meeting_end_time = meeting_time + meeting_duration # print(meeting_time) # print(type(meeting_time)) # print(input_meeting_hour) # print(type(input_meeting_hour)) # if meeting_time == input_meeting_hour or meeting_time == input_end_meeting_time or meeting_end_time == input_meeting_hour or meeting_end_time == input_end_meeting_time: # ui.print_error_message("ERROR: Meeting overlaps with existing meeting!") # break # else: # table.append(ask_input) # print('I AM HEEEERE') # is_running = False # break else: ui.print_error_message("ERROR: Meeting is outside of your working hours (8 to 18)!") # TODO: should ask again only about start time! # while True: # copied_table = copy_table(table) # if copied_table != table: # break return table
def quiz_function(board, player): x = player['player_x_position'] y = player['player_y_position'] quizzes = util.quiz_file_reader('quizzes.csv') if board[x][y] == QUIZ_ICON: quiz = random.choice(quizzes) quiz_read = quiz[0].split('|') for i in quiz_read: print(i) answer = input('Podaj odp.: ').lower if answer == quiz[1].lower: txt=('Dobra robota! Zdobywasz 5 gwiazdek!') ui.print_text(txt,font_color=36) player['player_*'] += 5 else: txt=('Nie dobrze. Tracisz 30 HP') ui.print_text(txt,font_color=36) player['player_hp'] -= 30 board[x][y] = '' quizzes.remove(quiz)
def exchange_of_goods(player, inventory): x = player['player_x_position'] y = player['player_y_position'] if x == 9 and y == 13: im = ui.get_ascii("./ascii_files/meta.txt") #import text from ASCII file ui.display_ascii(im,font_colors=[37],spacing=5) #displays ASCII file with color defined by number txt=("Cześć, chcesz wymienić bigos i pierogi na ODLOTOWY PREPARAT?") ui.print_text(txt,font_color=36) choice = input("T / N: ") os.system('cls') if choice == "t": if inventory["Pierogi"] > 0 and inventory["Bigos"] > 0: inventory["Pierogi"] -= 1 inventory["Bigos"] -= 1 inventory["Ropa"] += 1 return inventory if choice == "n": return inventory else: return inventory
def edit_a_meeting(table, title_of_meeting): ui.print_text('Schedule a new meeting') TITLE_LIST = ['Enter a meeting title ', 'Enter duration in hours (1 or 2): ', 'Enter start time: '] ask_input = ui.get_inputs(TITLE_LIST, 'Please enter information about a meeting') INDEX_OF_TITLE_OF_MEETING_IN_TIMETABLE = 0 INDEX_OF_DURATION_TIME_OF_MEETING_IN_TIMETABLE = 1 INDEX_OF_START_TIME_OF_MEETING_IN_TIMETABLE = 2 INDEX_OF_TITLE_OF_MEETING_IN_ASK_INPUT = 0 INDEX_OF_DURATION_TIME_OF_MEETING_IN_ASK_INPUT = 1 INDEX_OF_START_TIME_OF_MEETING_IN_ASK_INPUT = 2 for title_of_meeting_to_edit, meeting in enumerate(table): if meeting[0] == title_of_meeting: meeting[INDEX_OF_TITLE_OF_MEETING_IN_TIMETABLE] = ask_input[INDEX_OF_TITLE_OF_MEETING_IN_ASK_INPUT] meeting[INDEX_OF_DURATION_TIME_OF_MEETING_IN_TIMETABLE] = ask_input[INDEX_OF_DURATION_TIME_OF_MEETING_IN_ASK_INPUT] meeting[INDEX_OF_START_TIME_OF_MEETING_IN_TIMETABLE] = ask_input[INDEX_OF_START_TIME_OF_MEETING_IN_ASK_INPUT] return table
def remove(table, title): TITLE_INDEX_POSITION = 0 list_with_meeting_to_remove = [] for index, meeting in enumerate(table): if meeting[TITLE_INDEX_POSITION] == title: table.pop(index) list_with_meeting_to_remove.append(index) length_of_list_if_list_is_empty = 0 if len(list_with_meeting_to_remove) == length_of_list_if_list_is_empty: ui.blank_line ui.print_dashes_for_canceling_error() ui.print_error_message("ERROR: There is no meeting starting at that time!") ui.print_dashes_for_canceling_error() ui.blank_line else: ui.print_text("Meeting canceled") return table
def get_blasters(player, inventory): x = player['player_x_position'] y = player['player_y_position'] if x == 2 and y == 1: txt=("Czekasz w kolejce do pokoju, po chwili słyszysz swoje nazwisko i wchodzisz do środka") ui.print_text(txt,font_color=36) input(" ") os.system('cls') im = ui.get_ascii("./ascii_files/urzednik.txt") #import text from ASCII file ui.display_ascii(im,font_colors=[37],spacing=5) #displays ASCII file with color defined by number input(" ") txt=("Po obszernym wywiadzie dotyczącym Twojej sytuacji zawodowej otrzymujesz zasiłek dla bezrobotnych") ui.print_text(txt,font_color=36) input(" ") os.system('cls') im = ui.get_ascii("./ascii_files/banknoty.txt") #import text from ASCII file ui.display_ascii(im,font_colors=[32],spacing=5) #displays ASCII file with color defined by number input(" ") os.system('cls') txt=("Odpalasz swojego smatrfona i kupujesz blastery do startku") ui.print_text(txt,font_color=36) input(" ") im = ui.get_ascii("./ascii_files/allezlo.txt") #import text from ASCII file ui.display_ascii(im,font_colors=[32],spacing=5) #displays ASCII file with color defined by number input(" ") os.system('cls') inventory["Działko"] += 1 return inventory else: return inventory
def going_to_the_moon(): txt=("Spotykasz typowego Sebę. Który pyta czy masz jakiś problem?\nPo krótkiej wymianie zdań, postanawia ci pomóc...") ui.print_text(txt,font_color=36) im = ui.get_ascii("./ascii_files/ziomek.txt") #import text from ASCII file ui.display_ascii(im,font_colors=[37],spacing=5) #displays ASCII file with color defined by number input() os.system('cls') txt="Ruszamy w kosmos!" ui.print_text(txt,font_color=36) im = ui.get_ascii("./ascii_files/gulf.txt") #import text from ASCII file ui.display_ascii(im,font_colors=[37],spacing=5) #displays ASCII file with color defined by number input() os.system('cls') txt=("Trzeciego dnia podróży postanawiacie wypić wódkę zabraną przez Twojego kompana i zasypiacie. Budzicie się a Waszym oczom ukazuje się wileki labirynt!") ui.print_text(txt,font_color=36) im = ui.get_ascii("./ascii_files/flaszka.txt") #import text from ASCII file ui.display_ascii(im,font_colors=[37],spacing=5) #displays ASCII file with color defined by number input()
def main(): player = create_player() board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) util.clear_screen() level = 1 inventory = { "Pierogi": 5, "Bigos": 5, "Złom": 5, "Sliptape": 5, "Ropa": 5, "Działko": 5 } if level == 1: # import text from ASCII file title = ui.get_ascii("./ascii_files/poland_can_into_space.txt") # displays ASCII file with color defined by number ui.display_ascii(title, font_colors=[34], spacing=5) input(" ") os.system('cls') print("\n\n") txt = "Rok 2030. Trwa wyścig światowych mocarstw o każdy kawłek lądu. Pewnej nocy na niebie pojawia się tajemnicza anomalia... " ui.print_text(txt, font_color=33) # import text from ASCII file anomaly = ui.get_ascii("./ascii_files/saturn.txt") # displays ASCII file with color defined by number ui.display_ascii(anomaly, font_colors=[35], spacing=5) input(" ") os.system('cls') # import text from ASCII file im = ui.get_ascii("./ascii_files/roz1.txt") # displays ASCII file with color defined by number ui.display_ascii(im, font_colors=[31], spacing=1) input(" ") os.system('cls') txt = (''' Po Twojej głowie wędruje wyłącznie jedna myśl. To jest mój czas. Muszę polecieć i zbadać tajemniczą anomalię. Postanawiasz przerobić swojego Golfa 1.9 TDI pieszczotliwie nazywanego Gulfem na statek kosmiczny i niezwłocznie wyruszyć w drogę.''' ) ui.print_text(txt, font_color=33) input(" ") os.system('cls') mum_house = engine.generate_game_board_1(board) is_running = True while is_running: x = player['player_x_position'] y = player['player_y_position'] engine.add_to_inventory(player, mum_house, inventory) temporary_board = deepcopy(mum_house) engine.put_player_on_board(temporary_board, player) ui.display_board(temporary_board) engine.display_players_card(inventory) # print(f"Player position: ({x},{y})") key = util.key_pressed() if key == 'q': is_running = False else: engine.player_moves(key, mum_house, player) util.clear_screen() pass_condition = engine.chceck_inventory(inventory, level) if engine.exit_board(level, player) == True: if pass_condition == True: is_running = False level = 2 else: is_running = True if level == 2: txt = ( '''Wyszedłeś na miasto. Uzupełnij zasoby, zdobądź paliwo, osłony i działa do statku.''' ) ui.print_text(txt, font_color=33) input(" ") os.system('cls') city = engine.generate_game_board_2(board) is_running = True while is_running: x = player['player_x_position'] y = player['player_y_position'] engine.add_to_inventory(player, city, inventory) temporary_board = deepcopy(city) engine.put_player_on_board(temporary_board, player) ui.display_board(temporary_board) engine.display_players_card(inventory) # print(f"Player position: ({x},{y})") key = util.key_pressed() if key == 'q': is_running = False else: engine.player_moves(key, city, player) util.clear_screen() inventory = engine.exchange_of_goods(player, inventory) engine.ferdek(player) inventory = engine.get_blasters(player, inventory) pass_condition = engine.chceck_inventory(inventory, level) if engine.exit_board(level, player) == True: if pass_condition == True: engine.going_to_the_moon() level = 3 is_running = False elif engine.exit_board(level, player) == False: is_running = True if level == 3: player['player_x_position'] = PLAYER_START_X player['player_y_position'] = PLAYER_START_Y board = engine.create_board(21, 15) util.clear_screen() board_level_2 = engine.maze_generator(board) engine.put_quizzes(board_level_2) engine.put_memes(board_level_2) is_running = True level_2 = True while is_running: engine.level_2_start() while level_2: engine.quiz_function(board_level_2, player) engine.meme_function(board_level_2, player) temporary_board = deepcopy(board_level_2) engine.put_player_on_board(temporary_board, player) engine.display_maze_status(player) ui.display_maze(temporary_board, player) key = util.key_pressed() if key == 'q': is_running = False else: engine.player_moves(key, temporary_board, player) util.clear_screen() level_4 = player['player_*'] if level_4 > 7: level = 4 is_running = False level_2 = False if level == 4: txt = ( "Po latach podrózy i licznych przeszkodach na horyzoncie ukazuje się anomalia. Aby do niej dotrzeć musisz zmierzyć się z obcymi..." ) ui.print_text(txt, font_color=33) input() os.system("cls||clear") level_3 = True player['player_x_position'] = PLAYER_START_X player['player_y_position'] = PLAYER_START_Y board_level_3 = engine.create_board(BOARD_WIDTH_lvl3, BOARD_HEIGHT_lvl3) im = ui.get_ascii( "./ascii_files/battle.txt") #import text from ASCII file ui.display_ascii( im, font_colors=[31], spacing=1) #displays ASCII file with color defined by number input() os.system('cls') counter = 0 engine.intro_lvl3() while level_3: counter += 1 temporary_board = deepcopy(board_level_3) engine.put_player_on_board(temporary_board, player) level_3 = engine.play_level3(temporary_board, player, counter) if level_3: ui.display_board(temporary_board) is_running = False util.clear_screen() level = 5 if level == 5: engine.end_game()
def play_level3(temporary_board,player,counter): global enemy_state,enemy_shots_quantity x = player['player_x_position'] y = player['player_y_position'] print("PLAYER LIFE: ","".join(player_live),"\t\t\t\t\t","ALIEN LIFE: ","".join(alien_live)) PLAYER_SHOT_ICON= ALKO_ICON#[PLAYER_SHOT1_ICON, PLAYER_SHOT2_ICON] if enemy_state<1: temporary_board[2][10] = PLAYER_SHOT_ICON[0] elif enemy_state==1: temporary_board[1][20] = PLAYER_SHOT_ICON[1] elif enemy_state>1: temporary_board[2][3] = PLAYER_SHOT_ICON[2] if enemy_state<1: enemy= ui.get_ascii("./ascii_files/alien_standing.txt") ui.display_ascii(enemy,font_colors=[32], spacing=5) elif enemy_state==1: enemy= ui.get_ascii("./ascii_files/alien_in_ufo.txt") ui.display_ascii(enemy, spacing=(counter%10)) elif enemy_state>1: enemy = ui.get_ascii("./ascii_files/enemy2.txt") display_ascii_with_move(enemy,counter,7,[30,31,33]) key = util.key_pressed() if key == 'q': input("You left the game") return False else: player_moves(key, temporary_board, player) util.clear_screen() #generate PLAYER shot if temporary_board[x][y] in PLAYER_SHOT_ICON: shot_result = level3_shot() player['player_x_position'] = main.PLAYER_START_X player['player_y_position'] = main.PLAYER_START_Y if shot_result: if enemy_state==0: enemy_shots_quantity = ENEMY_SHOTS_NUMBER first_shot() elif enemy_state==1: txt = "Po przejściu na wino, przeciwnik ma probnlemy z kontrolą lotu. Zwycięstwo jest blisko!" ui.print_text(txt,font_color=33) enemy_state+=1 del alien_live[-1] #generate and puts on board enemy shots enemy_shots_position = list(get_random_position(temporary_board,enemy_shots_quantity)) for position in enemy_shots_position: temporary_board[position[0]][position[1]] = ENEMY_SHOT_ICON if (position[0],position[1])==(x,y): txt=("Mały zielony kosmita wygrywa starcie. Po rozmowie z Posejdonem wracasz do walki.") ui.print_text(txt,font_color=33) input() player['player_x_position'] = main.PLAYER_START_X player['player_y_position'] = main.PLAYER_START_Y del player_live[-1] break if len(alien_live)==0: img= ui.get_ascii("./ascii_files/koniec.txt") ui.display_ascii(img,font_colors=[31], spacing=0) input() return False elif len(player_live)==0 or counter >200: input("Poległeś w walce !") return False else: return True
def intro_lvl3(): txt=("W obliczu konfrontacji z obcymi, topowe ziemskie technologie zdają się być zawodne. Załoga postnawia zdobyć cel podstępem... \nProponujecie grę w alchemika: zamiana procentów na promile") ui.print_text(txt,font_color=33) input()
def first_shot(): txt=("Potrzymaj mi piwo! I patrz!!!\n") ui.print_text(txt,font_color=36) enemy= ui.get_ascii("./ascii_files/alien_sitting_to_ufo.txt") ui.display_ascii(enemy,font_colors=[32], spacing=7)