def outro(board, player): engine.put_player_on_board(board, player) engine.put_enemy_on_board(board, Enemies.king) play_outro(board, Enemies.king) display_mode = 13 level = True while level: display_mode += 1 if display_mode == 15: display_mode = 10 util.clear_screen() print('\n\n') ui.display_board(board, display_mode, Enemies.king) print('\n\n\n') key = util.key_pressed() # MAIN CONTROL if key == 'q': levels.quit_game() elif key == "d": player.move_right(board) elif key == "s": player.move_down(board) elif key == "w": player.move_up(board) elif key == "a": player.move_left(board) elif key == "t" and player.pos_x == 8 and player.pos_y == 16: print_message(['YOU', 'DID', 'IT!!! :)']) elif key == "i": print_character(player, " character")
def process_game(level, player): enemies = create_enemies(level) items = create_items(level) is_running = True while is_running: board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) engine.put_player_on_board(board, player) engine.put_objects_on_board(board, items) engine.put_enemies_on_board(board, enemies) ui.display_board(board) ui.display_attributes(player, level) key = util.key_pressed() if key == 'q': is_running = False elif key == 's' or key == "w" or key == 'a' or key == 'd': handle_exit(player, level, key) move_if_valid(key, player, board) handle_meets(enemies, player) if not is_player_alive(player): print("Sorry, you died.") is_running = False handle_meets_with_items(items, player) move_enemies(enemies, player) elif key == 'c': player["health"] += 10000 else: continue
def tutorial(board, player): print_method = 1 engine.put_player_on_board(board, player) snake = LevelItem('🐍', 'snake', True, 13, 14) bag = LevelItem('💰', 'bag', True, 3, 7) letter = LevelItem('📜', 'letter', True, 8, 5) level = True top = "TUTORIAL" message = "Info" while level: util.clear_screen() print_level(board, message, player, print_method, top) key = util.key_pressed() # MAIN CONTROL if key == 'q': levels.quit_game() elif key == "d": player.move_right(board) elif key == "s": player.move_down(board) elif key == "w": player.move_up(board) elif key == "a": player.move_left(board) elif key == "f": if letter.is_close(board, player): print_message(('W, A, S, D = move', 'F = Use item/FIGHT', 'T = Open Tools Bar/Talk', '', 'Good luck on your way!')) elif snake.is_close(board, player) and snake.on: top = "You can battle later" snake.turn_off(board) elif bag.is_close(board, player) and bag.on: message = 'You got the key!' bag.turn_off(board) board[3][14] = ' ' board[3][16] = ' ' elif key == 't': top = 'Your tools will be here!' util.clear_screen() print_level(board, message, player, print_method, top) util.key_pressed() if letter.is_close(board, player): message = "Letters sometimes are useful. Press F to read!" elif snake.is_close(board, player) and snake.on: message = "This is an enemy. Press F to fight!" elif bag.is_close(board, player) and bag.on: message = "This, and similar bags will help you on your way! Press F to loot!" elif player.pos_x == 3 and player.pos_y == 14: message = "This is the exit" elif player.pos_x == 3 and player.pos_y == 15: player.level = 'Gender' return else: message = "Info" top = "TUTORIAL"
def play_game(): board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) player = create_player() wolf = create_wolf() ham = create_ham() list_of_movement_wolf = movement_wolf(wolf, board) is_running = True prev_field_data = None while is_running: key = key_pressed() if key == 'q': is_running = False else: player, prev_field_data, ham = change_player_positions( player, key, ham) board, prev_field_data = colision(board, player, prev_field_data, wolf, ham) board = engine.put_player_on_board(board, player, prev_field_data) wolf = change_wolf_positions(wolf, board, ham, list_of_movement_wolf) board = engine.put_wolf_on_board(board, wolf) board = engine.put_ham_on_board(board, ham) ui.display_board(board) z = ham["status"] print(f"HAPE = {hp} Mana = {mana} Potion = {pot} HamStat = {z}")
def level_three_start(player, enemies_list, file_name): # Creating objects and items item_one = items.create_banana(1, 14) item_two = items.create_grape(73, 6) item_three = items.create_sword(9, 14) # Creating interactions objects_one = [player, item_one] objects_two = [player, item_two] objects_three = [player, item_three] is_running = True ui.display_board(engine.create_board("Messages/message_lvl3.txt")) time.sleep(3) while is_running: key = key_pressed() clear_screen() if key == 'q': assert False board = engine.create_board(file_name) player = engine.player_coordinates_change(key, player, board) board = engine.put_player_on_board(board, player) if player['x'] == 77 and player['y'] == 14: player['level'] = 4 is_running = False for index in range(len(enemies_list)): enemy = enemies_list[index] if enemy['HP'] > 0: enemy = engine.enemy_movement(board, enemy) board = engine.put_enemies_on_board(board, enemy) fight = engine.enemy_board_interaction(board, enemy, player) player = fight[0] enemy = fight[1] enemies_list[index] = enemy if item_one['on_board'] == 1: board = engine.put_items_on_board(board, item_one) player = objects_one[0] item_one = objects_one[1] objects_one = engine.item_board_interaction(board, item_one, player) if item_two['on_board'] == 1: board = engine.put_items_on_board(board, item_two) player = objects_two[0] item_two = objects_two[1] objects_two = engine.item_board_interaction(board, item_two, player) if item_three['on_board'] == 1: board = engine.put_items_on_board(board, item_three) player = objects_three[0] item_three = objects_three[1] objects_three = engine.item_board_interaction(board, item_three, player) if player['HP'] <= 0: return player ui.display_board(board) ui.display_inventory(player) return player
def gender(board, player): print_method = 2 player.icon = "@" engine.put_player_on_board(board, player) level = True top = "CHOOSE YOUR GENDER" message = "Press F to be a female" while level: util.clear_screen() print_level(board, message, player, print_method, top) key = util.key_pressed() # MAIN CONTROL if key == 'q': levels.quit_game() elif key == "d": player.move_right(board, '▒') player.move_right(board, '░') player.move_right(board, ' ') elif key == "s": player.move_down(board, '▒') player.move_down(board, '░') elif key == "w": player.move_up(board, '▒') player.move_up(board, '░') elif key == "a": player.move_left(board, '▒') player.move_left(board, '░') elif key == "f": if board[player.pos_x - 1][player.pos_y] == '▒': top = "You choose female" board[3][30] = ' ' player.level = 1 if board[player.pos_x - 1][player.pos_y] == '░': top = "You choose male" board[3][30] = ' ' player.level = 2 if board[player.pos_x - 1][player.pos_y] == '▒': message = "Press F to be a female" elif board[player.pos_x - 1][player.pos_y] == '░': message = "Press F to be a male" if player.pos_x == 3 and player.pos_y == 30: return
def main(): for song in playlist: player = vlc.MediaPlayer(song) player.play() player = create_player() player_stats = lore.start_lore() board = engine.create_board() util.clear_screen() for i in range(3): board = engine.create_board() monsters_alive = [] # store the still alive monster ids floorsize = enemy.pick_valid_places(board) max_monsters = enemy.max_monster_on_map(floorsize) enemys = enemy.pick_monster(enemy.monsters_dict, enemy.hero_dict, max_monsters) enemy.monster_placement(floorsize, enemys, board, monsters_alive) engine.put_player_on_board(board, player, monsters_alive, enemy.monsters_dict, floorsize, player_stats) ui.display_board(board) util.clear_screen() final_choreography()
def main(): player = create_player() board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) ui.display_board(board, player) util.clear_screen() is_running = True while is_running: engine.put_player_on_board(board, player) ui.display_board(board, player) key = util.key_pressed().lower() engine.clear_player_previous_position(board, player[ROW], player[COL]) row = player[ROW] col = player[COL] if key == 'q': is_running = False elif key == 'd': #move right if engine.can_player_move(player, board, row, col + 1): player[COL] += 1 elif key == 'a': #move left if engine.can_player_move(player, board, row, col - 1): player[COL] -= 1 elif key == 'w': #move up if engine.can_player_move(player, board, row - 1, col): player[ROW] -= 1 elif key == 's': #move down if engine.can_player_move(player, board, row + 1, col): player[ROW] += 1 else: pass player, board = engine.check_if_change_board(player, board) util.clear_screen()
def main(name, race, hero_class): clear_screen() player = create_player(name, race, hero_class) # board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) board = engine.read_map('map.txt') board = engine.put_player_on_board(board, player, map_elements) hero = list_stats(player['stats'], player) ui.display_board(board, hero) play_game(player, board) ui.about_authors() # end_game.end_game(end = None) restart_game()
def main(): player = create_player() is_running = True while is_running: key = key_pressed() if key == 'q': is_running = False if key == 'z': clear_screen() else: board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) board = engine.put_player_on_board(board, player) ui.display_board(board)
def main(): # initial level level = 'BOARD_1' # initial key key = '' menu_start.run() ui.print_message('\n\n\n LEVEL %s \n\n\n' % (level[-1])) time.sleep(1.0) util.clear_screen() pass_key_input = False while level != 'WIN' and level != 'QUIT' and level != 'LOSE': util.clear_screen() pass_key_input = False view.print_table(players.data_to_print(dictionaries.player)) # Set up board global BOARD_1 global BOARD_2 global BOARD_3 # global items_u_will_use # global coordonate_of_items_that_u_will_use # player = create_player() BOARD_1 = engine.create_board() BOARD_2 = engine.create_board() BOARD_3 = engine.create_board() BOARD_1, items_u_will_use_1, coordonate_of_items_that_u_will_use_1 = engine.create_final_board(BOARD_1, little_boss_1) BOARD_2, items_u_will_use_2, coordonate_of_items_that_u_will_use_2 = engine.create_final_board(BOARD_2, little_boss_2) BOARD_3, items_u_will_use_3, coordonate_of_items_that_u_will_use_3 = engine.create_final_board(BOARD_3, boss) BOARD_1 = engine.create_board() BOARD_2 = engine.create_board() BOARD_3 = engine.create_board() util.clear_screen() is_running = True while is_running: print() print("U entered first level") print() items_u_will_use_1, coordonate_of_items_that_u_will_use_1 = engine.items_and_coordonates_that_u_can_use(BOARD_1) (BOARD_1, items_u_will_use, coordonate_of_items_that_u_will_use_1) = engine.create_final_board(BOARD_1, little_boss_1) (BOARD_1, items_u_will_use_1, coordonate_of_items_that_u_will_use_1) = engine.put_player_on_board(BOARD_1, little_boss_1) engine.move_something_and_gate(BOARD_1, player, little_boss_1, gate_1) if player['player_life'] > 0: print() print("U entered second level") print() items_u_will_use_2, coordonate_of_items_that_u_will_use_2 = engine.items_and_coordonates_that_u_can_use(BOARD_2) (BOARD_2, items_u_will_use_2, coordonate_of_items_that_u_will_use_2) = engine.create_final_board(BOARD_2, little_boss_2) engine.move_something_and_gate(BOARD_2, player, little_boss_2, gate_2) if player['player_life'] > 0: print() print("U entered the third level") print() items_u_will_use_3, coordonate_of_items_that_u_will_use_3 = engine.items_and_coordonates_that_u_can_use(BOARD_3) (BOARD_3, items_u_will_use_3, coordonate_of_items_that_u_will_use_3) = engine.create_final_board(BOARD_3, boss) engine.move_something_and_gate(BOARD_3, player, boss, gate_3) # ui.display_board(board) key = util.key_pressed() if key == 'q': is_running = False # elif key == 'i': # print(inventory) is_running = False # util.clear_screen() print(key) # break # ui.display_board(board) key = util.key_pressed() # if key == 'q': # is_running = False # elif key == 'i': # print(inventory) # util.clear_screen() print(key) # Display essential info ui.print_player_essential_atributes(dictionaries.player) # Display board ui.display_board(board) # Message panel intoduction (always displayed) ui.print_message(' MESSAGE PANEL \n' + 17 * '-' + '\n') # Interaction whit items # Display inventory if key == 'i': ui.print_message('This is your inventory content: ') ui.print_table(dictionaries.inventory) # Interaction with other characters # Insert secret code if key == "c": engine.use_secret_code(dictionaries.player, dictionaries.others, level, dictionaries.codes) # Gate and level change handling # if engine.player_enters_gate() != level: # util.clear_screen() # level = engine.player_enters_gate() if level == 'BOARD_2' or level == 'BOARD_3': dictionaries.player['position_y'] = 15 dictionaries.player['position_x'] = 3 if level == 'WIN': pass_key_input = True pass else: ui.print_message('\n\n\n LEVEL %s \n\n\n' % (level[-1])) time.sleep(1.0) util.clear_screen() pass_key_input = True # Player input if pass_key_input is False: key = util.key_pressed() # Movement if pass_key_input is False: pass # engine.movement() # Check if quit if key == 'q': quit_assertion = '' while quit_assertion != 'y' and quit_assertion != 'n': util.clear_screen() print('Are you sure you want to quit? ( Y / N )') quit_assertion = util.key_pressed() if quit_assertion == 'y': level = 'QUIT' elif quit_assertion == 'n': pass else: pass if dictionaries.player['player_life'] == 0: level = 'LOSE' if level == 'WIN': util.clear_screen() ui.display_board(board) print(text2art("VICTORY!", font='block', chr_ignore=True)) elif level == 'LOSE': util.clear_screen() ui.display_board(board) print(text2art("GAME OVER!", font='block', chr_ignore=True)) time.sleep(10.7) print('\n\n\n Goodbye, see you soon!') time.sleep(1.0)
def play_game(player, board): win_game = False ui.display_dialog_window( "You are a Hero. Leading a wasteful life, you are running out of money. Fortunately, you have\nheard that in the nearby village of Codecools Gate, residents will generously pay for getting\nrid of the rat plague, so you decided to quickly hit the road to anticipate the competitors.\n\nRiding the village on your musk deer, you hear the screams of a villager.\n\nPress 'C' to continue." ) while True: key = key_pressed().lower() if key == "c": clear_screen() hero = list_stats(player['stats'], player) ui.display_board(board, hero) ui.display_dialog_window( "To interact with NPC('!', '?'), doors ('/'), chests('$') and monsters ('*', 'G', 'N', 'S') just go to their place.\n\nTo check your inventory press 'I'.\n\nTo quit game, press 'Q'.\n\nMove your character with keys: 'W', 'A', 'S', 'D'." ) # while True: key = key_pressed().lower() # board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) last_position = [player['y'], player['x']] # hero_statistics = player["stats"] hero = list_stats(player['stats'], player) # Create a list of hero stats items = player['items'] if key == 'q': break elif key == 'i': clear_screen() while True: ui.display_items(items) key = key_pressed().lower() if key == 'q': break else: clear_screen() elif key == 'z': clear_screen() elif key.lower() in 'wsad': # TOTALY NEW changing_position = change_position( CONTROL_DICT[key], player, board) player['Map'] = changing_position[2]['Map'] map_elements.insert(0, changing_position[0]) win_game = changing_position[5] if changing_position[1] != False: board = changing_position[1] player['x'] = changing_position[2]['x'] player['y'] = changing_position[2]['y'] # player['stats'] = changing_position[2]['stats'] elif changing_position[3] != False: player = changing_position[2] ui.display_dialog_window( 'You recieve a new item! Open inventory to check what is it' ) # print(player) key_pressed() elif changing_position[4] != False: player["Kills"] += 1 player['stats'] = check_level(player) board = engine.put_player_on_board(board, player, map_elements, last_position) # TOTALY NEW clear_screen() if player['stats']['HP'] <= 0: end = end_game.end_game( 'die' ) # the 'end' depends from the life of Necromancer-rat key_pressed() points = int(player['Kills']) * 1000 save_highscore.save_result(player['name'], points, player['race'], player['class']) # clear_screen() break elif win_game != False: end_game.end_game('win') key_pressed() points = int(player['Kills']) * 1000 save_highscore.save_result(player['name'], points, player['race'], player['class']) break ui.display_board(board, hero) break
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 main(): inventory_enabled = False hint_enabled = False intro() current_question = engine.questions_generator(0) q_index = 0 player = Player(ui.get_input('Choose a name for your character: '), FIRST_MAP_START_X, FIRST_MAP_START_Y, PLAYER_ICON, PLAYER_HP) is_running = True board = data_manager.create_map_from_file('map_one') board[FIRST_MAP_START_Y][FIRST_MAP_START_X] = player.icon ui.display_board(board) print(player) player.display_hp() '''engine.save_highscore(player)''' while is_running: key = key_pressed() if key == 'q': is_running = False if key == 'z': clear_screen() if key == 'i': if not inventory_enabled: player.display_hp() ui.show_inventory(player, board) inventory_enabled = True hint_enabled = False else: ui.display_board(board) print(player) inventory_enabled = False if key == 'k': if not hint_enabled: ui.display_board(board) print(player) player.display_hp() player.show_hint() hint_enabled = True inventory_enabled = False else: ui.display_board(board) print(player) hint_enabled = False if key == 'u': player.use_potion() ui.display_board(board) print(player) player.display_hp() if inventory_enabled: ui.show_inventory(player, board) if key in ['w', 'a', 's', 'd']: player.message = '' board, current_question, q_index = engine.put_player_on_board( board, player, key, player.current_map, current_question, q_index) ui.display_board(board) print(player) player.display_hp() player.show_message() if inventory_enabled: ui.show_inventory(player, board) if player.hp <= 0: is_running = False boss.display_screen('lose.txt')
def main(): util.clear_screen() # player info setup name = input(f"{first_line}Podaj swoje imię: ") interaction.characters["hero"]["name"] = name util.clear_screen() text = f"{first_line}Witaj przybyszu!\n\tSłyszałem, że zwą Cię {name}.\ \n\n\tDzisiaj Twój chrześniak ma urodziny. Gówniak musi, MUSI dostać świeżaka.\ \n\tRozpieszczony smarkacz..." open_text(text) text = f"{first_line}Jak ja nie lubię szczeniaka, \ ale jak mus to mus, w końcu chrześniak." open_text(text) text = f"{first_line}Niestety, we wszystkich sklepach z rozjechanym \ robakiem już nie mają naklejek.\ \n\tZostaje Ci zebrać w inny sposób te wszystkie naklejki.\ \n\n\tRuszaj do boju, bo bez tego wstrętnego świeżaka nie uda Ci się wbić \ na imprezę.\ \n\tW końcu 8. urodziny to nie przelewki!" open_text(text, 20) text = f"{first_line}Przygotuj się na ciężkie boje, bo te wszystkie moherowe berety,\ \n\tJanusze oraz cała gimbaza nie dadzą Ci ich za darmo.\ \n\n\tAle najbardziej musisz uważać na strażników miejskich \ (cholerne pasożyty, nawet piwa nie można się napić) i Madki.\ \n\tZ nimi to już nie przelewki.\ \n\n\tNa szczęście pracownicy biedronki są zawsze po Twojej stronie, \ w końcu kończyli razem z Tobą studia." open_text(text, 20) text = f"{first_line}A więc ruszaj do boju, bo PICCOLO i 0,5l \ wody gazowanej już się dla Ciebie chłodzą!" open_text(text, 5) open_text("", 5, True) # level 1 board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) engine.get_spawn_pos(board, player) util.clear_screen() engine.put_friends_on_board(board, engine.friend_list) engine.put_enemies_on_board(board, engine.enemy_list) engine.next_level_pass(board, player) is_running = True while is_running: engine.put_player_on_board(board, player) ui.display_stats() ui.display_board(board) key = util.key_pressed() if key == "q": exit_game = "" while exit_game not in ["Y", "N"]: util.clear_screen() print(f"{first_line}Czy na pewno chcesz wyjść z gry? Y/N") exit_game = util.key_pressed().upper() if exit_game == "Y": is_running = False else: # movement level_change = engine.movement(key, player, board) if level_change: can_he_pass = engine.levels_generator(level_change) if can_he_pass: board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) engine.get_spawn_pos(board, player) engine.next_level_pass(board, player, can_he_pass) engine.put_friends_on_board(board, engine.friend_list) engine.put_enemies_on_board(board, engine.enemy_list, can_he_pass) util.clear_screen() engine.mobs_movement(board, engine.mobs_on_board, player) engine.mobs_movement(board, engine.friends_on_board, player)
def main(player, board): global word_used board_with_player = engine.put_player_on_board(board, player) clear_screen(40) ui.display_board(board_with_player, player) print(f"\n\tPLAYER X:{player['x']} Y:{player['y']}") key = key_pressed() around_player = 2 # collisions check no_obstacle_on_up = board[player["y"]-around_player][player["x"]] in PASSABLE and board[player["y"]-around_player][player["x"]+1] in PASSABLE no_obstacle_on_down = board[player["y"] + around_player][player["x"]] in PASSABLE and board[player["y"] + around_player][player["x"]+1] in PASSABLE no_obstacle_on_left = board[player["y"]][player["x"]-around_player] in PASSABLE and board[player["y"]+1][player["x"]-around_player] in PASSABLE no_obstacle_on_right = board[player["y"]][player["x"]+around_player] in PASSABLE and board[player["y"]+1][player["x"]+around_player] in PASSABLE no_obstacle_on_leftUP = board[player["y"]-around_player][player["x"]-around_player] in PASSABLE no_obstacle_on_rightUP = board[player["y"]-around_player][player["x"]+around_player] in PASSABLE no_obstacle_on_leftDOWN = board[player["y"] + around_player][player["x"]-around_player] in PASSABLE no_obstacle_on_rightDOWN = board[player["y"] + around_player][player["x"]+around_player] in PASSABLE # move keys pressed move_keys = sum(KEY_BINDINGS_MOVE.values(),[]) if key in move_keys: # vertical movement if key in KEY_BINDINGS_MOVE["up"] and no_obstacle_on_up: player["y"] -= 1 elif key in KEY_BINDINGS_MOVE["down"] and no_obstacle_on_down: player["y"] += 1 # horiontal movement elif key in KEY_BINDINGS_MOVE["left"] and no_obstacle_on_left: player["x"] -= 1 elif key in KEY_BINDINGS_MOVE["right"] and no_obstacle_on_right: player["x"] += 1 # diagonal movement elif key in KEY_BINDINGS_MOVE["leftUP"] and no_obstacle_on_leftUP: player["x"] -= 1 player["y"] -= 1 elif key in KEY_BINDINGS_MOVE["rightUP"] and no_obstacle_on_rightUP: player["x"] += 1 player["y"] -= 1 elif key in KEY_BINDINGS_MOVE["leftDOWN"] and no_obstacle_on_leftDOWN: player["x"] -= 1 player["y"] += 1 elif key in KEY_BINDINGS_MOVE["rightDOWN"] and no_obstacle_on_rightDOWN: player["x"] += 1 player["y"] += 1 # item collisions if board[player["y"]][player["x"]] in PICKUPS or board[player["y"]][player["x"]+1] in PICKUPS: board[player["y"]][player["x"]-1] = " " board[player["y"]][player["x"]] = " " board[player["y"]][player["x"]+1] = " " fight_result = False # enemy collision if board[player["y"]][player["x"]] in ENEMIES["small"]["icon"] or board[player["y"]][player["x"]+1] in ENEMIES["small"]["icon"]: fight_result = enemies.fight_with_monsters_small(player) if board[player["y"]][player["x"]] in ENEMIES["big"]["icon"] or board[player["y"]][player["x"]+1] in ENEMIES["big"]["icon"]: fight_result = enemies.fight_with_monsters_large(player) if fight_result: board[player["y"]][player["x"]-1] = " " board[player["y"]][player["x"]] = "†" board[player["y"]][player["x"]+1] = " " ui.player_say(board_with_player, player, "Another one bites the dust!") key_pressed() # key binded options elif key in KEY_BINDINGS["overlay"]: # OVERLAY TEST ui.show_overlay(board_with_player) clear_screen() ui.display_board(board_with_player, player) input() elif key in KEY_BINDINGS["customize"]: engine.customize_character(player) elif key in KEY_BINDINGS["logo"]: ui.show_logo_animation(LOGO) elif key in KEY_BINDINGS["story"]: ui.show_story() elif key in KEY_BINDINGS["verbal_attack"]: word_used, board = ui.verbal_attack(board_with_player, board, player, word_used) key_pressed() elif key in KEY_BINDINGS["generator"]: engine.generate_new_map(board, player) elif key in KEY_BINDINGS["clear"]: clear_screen(0) elif key in KEY_BINDINGS["inventory"]: ui.display_inv() print("1.Heal", "2.Regen", "~~~Enter to Exit") option = input() if option == "1": if "HP Potion" in ui.inv: player["HP"] += 4 + player["intelligence"] # If current HP >= maxHP currentHP=MaxHP if player["HP"] >= player["max_hp"]: player["HP"] = player["max_hp"] ui.inv.remove("HP Potion") else: print("No potions") pass if option == "2": if "Mana Potion" in ui.inv: player["MP"] += 10 + player["intelligence"] ui.inv.remove("Mana Potion") else: print("No potions") if option == "3": #pass player["experience"] += 100 # Cheat player["HP"] = 10 stats.level_up(player) elif key in KEY_BINDINGS["stats"]: stats.display_advenced_stats(player) # Display stats like attack dmg enemies.fight_with_monsters_small(player) pass elif key in KEY_BINDINGS["exit"]: return stats.small_monster_hp = 10 stats.large_monster_hp = 20 main(player, board)
def level_one_start(player, enemies_list, file_name): # Creating objects and items item_one = items.create_apple(10, 1) item_two = items.create_banana(23, 6) item_three = items.create_knife(15, 14) item_four = items.create_shoes(63, 5) item_five = items.create_apple(35, 27) item_six = items.create_banana(77, 2) # Creating interactions objects_one = [player, item_one] objects_two = [player, item_two] objects_three = [player, item_three] objects_four = [player, item_four] objects_five = [player, item_five] objects_six = [player, item_six] is_running = True ui.display_board(engine.create_board("Messages/message_lvl1.txt")) time.sleep(1) while is_running: key = key_pressed() clear_screen() if key == 'q': assert False board = engine.create_board(file_name) lift = player['capacity'] lift_list = lift.split("/") engine.put_gate(board, player) if int(lift_list[0]) < 100: player = engine.player_coordinates_change(key, player, board) board = engine.put_player_on_board(board, player) if player['x'] == 77 and player['y'] == 28: player['level'] = 2 is_running = False for index in range(len(enemies_list)): enemy = enemies_list[index] if enemy['HP'] > 0: enemy = engine.enemy_movement(board, enemy) board = engine.put_enemies_on_board(board, enemy) fight = engine.enemy_board_interaction(board, enemy, player) player = fight[0] enemy = fight[1] enemies_list[index] = enemy if item_one['on_board'] == 1: board = engine.put_items_on_board(board, item_one) player = objects_one[0] item_one = objects_one[1] objects_one = engine.item_board_interaction(board, item_one, player) if item_two['on_board'] == 1: board = engine.put_items_on_board(board, item_two) player = objects_two[0] item_two = objects_two[1] objects_two = engine.item_board_interaction(board, item_two, player) if item_three['on_board'] == 1: board = engine.put_items_on_board(board, item_three) player = objects_three[0] item_three = objects_three[1] objects_three = engine.item_board_interaction(board, item_three, player) if item_four['on_board'] == 1: board = engine.put_items_on_board(board, item_four) player = objects_four[0] item_four = objects_four[1] objects_four = engine.item_board_interaction(board, item_four, player) if item_five['on_board'] == 1: board = engine.put_items_on_board(board, item_five) player = objects_five[0] item_five = objects_five[1] objects_five = engine.item_board_interaction(board, item_five, player) if item_six['on_board'] == 1: board = engine.put_items_on_board(board, item_six) player = objects_six[0] item_six = objects_six[1] objects_six = engine.item_board_interaction(board, item_six, player) if player['HP'] <= 0: print("Game over") return player engine.put_gate(board, player) ui.display_board(board) ui.display_inventory(player) return player
def main(): MUSIC_FILE = "Cookie Monster Sings C is for Cookie.wav" mixer.init() mixer.music.load(MUSIC_FILE) mixer.music.play() view.print_images(data_manager.read_file_record('ascii-art.txt')) view.start_descriptions() # initial level level = 'BOARD_1' # initial key key = '' menu_start.run() ui.print_message('\n\n\n LEVEL %s \n\n\n' % (level[-1])) time.sleep(1.0) util.clear_screen() pass_key_input = False while level != 'WIN' and level != 'QUIT' and level != 'LOSE': util.clear_screen() pass_key_input = False view.print_table(players.data_to_print(dictionaries.player)) # Set up board board = engine.create_board(dictionaries.BOARD[level]) board = engine.put_other_on_board(board, dictionaries.others, level) board = engine.put_item_on_board(board, dictionaries.items, level) board = engine.put_player_on_board(board, dictionaries.player) # Display essential info ui.print_player_essential_atributes(dictionaries.player) # Display board ui.display_board(board) # Message panel intoduction (always displayed) ui.print_message(' MESSAGE PANEL \n' + 17 * '-' + '\n') # Interaction whit items engine.item_vs_player(dictionaries.inventory, dictionaries.items, dictionaries.player, level, dictionaries.items) # Display inventory if key == 'i': ui.print_message('This is your inventory content: ') ui.print_table(dictionaries.inventory) # Display statistics if key == "p": engine.show_statistics(dictionaries.player) # Interaction with other characters if engine.player_meets_other(dictionaries.others, dictionaries.player, level, board) != False: other = engine.player_meets_other(dictionaries.others, dictionaries.player, level, board) if dictionaries.others[other]['other_type'] == 'enemy': engine.fight(dictionaries.player, dictionaries.others, other, dictionaries.inventory, dictionaries.items) elif dictionaries.others[other]['other_type'] == 'quiz': engine.player_vs_other_quiz( dictionaries.player, other, dictionaries.others, dictionaries.inventory, dictionaries.others[other]['questions']) # Insert secret code if key == "c": engine.use_secret_code(dictionaries.player, dictionaries.others, level, dictionaries.codes) # Gate and level change handling if engine.player_enters_gate( level, dictionaries.BOARD, dictionaries.player, key, dictionaries.inventory, dictionaries.others) != level: util.clear_screen() level = engine.player_enters_gate(level, dictionaries.BOARD, dictionaries.player, key, dictionaries.inventory, dictionaries.others) if level == 'BOARD_2' or level == 'BOARD_3': dictionaries.player['position_y'] = 15 dictionaries.player['position_x'] = 3 if level == 'WIN': pass_key_input = True pass else: ui.print_message('\n\n\n LEVEL %s \n\n\n' % (level[-1])) time.sleep(1.0) util.clear_screen() pass_key_input = True # Player input if pass_key_input == False: key = util.key_pressed() # Movement if pass_key_input == False: engine.movement(board, dictionaries.player, key, dictionaries.others) # Check if quit if key == 'q': quit_assertion = '' while quit_assertion != 'y' and quit_assertion != 'n': util.clear_screen() print('Are you sure you want to quit? ( Y / N )') quit_assertion = util.key_pressed() if quit_assertion == 'y': level = 'QUIT' elif quit_assertion == 'n': pass else: pass if dictionaries.player['player_life'] == 0: level = 'LOSE' if level == 'WIN': util.clear_screen() ui.display_board(board) print(text2art("VICTORY!", font='block', chr_ignore=True)) elif level == 'LOSE': util.clear_screen() ui.display_board(board) print(text2art("GAME OVER!", font='block', chr_ignore=True)) time.sleep(10.7) ui.authors_presentation() players.add_results(players.count_points(), "results.txt") print('\n\n\n Goodbye, see you soon!') time.sleep(1.0) with Image.open("cookiemonster.jpg") as img: img.show()
def char_type(board, player): print_method = 3 player.icon += ' ' engine.put_player_on_board(board, player) teleport_1 = LevelItem("🕳 ", "Teleport", True, 4, 28) teleport_2 = LevelItem("🕳 ", "Teleport", True, 13, 3) level = True top = "CHOOSE YOUR CHARACTER RACE" message = "Info" while level: util.clear_screen() print_level(board, message, player, print_method, top) key = util.key_pressed() # MAIN CONTROL if key == 'q': levels.quit_game() elif key == "d": player.move_right(board) elif key == "s": # TELEPORT if teleport_1.is_close(board, player): board[player.pos_x][player.pos_y] = ' ' board[12][3] = player.icon player.pos_x = 12 player.pos_y = 3 elif teleport_2.is_close(board, player): board[player.pos_x][player.pos_y] = ' ' board[3][28] = player.icon player.pos_x = 3 player.pos_y = 28 else: player.move_down(board) elif key == "w": player.move_up(board) elif key == "a": player.move_left(board) # OTHER CONTROLS if player.level == 1: if key == 't' and player.pos_x == 4 and player.pos_y == 7: print_message(['WITCH', '', 'Deep knowledge about magic,', 'with the power of the elements.', 'Fight against their foes', 'with great wisdom.']) elif key == 'f' and player.pos_x == 4 and player.pos_y == 7: top = 'You have chosen witch!' c_type = 1 player.icon = CharacterTypes.wizzard_her elif key == 't' and player.pos_x == 8 and player.pos_y == 15: print_message(['ELF', '', 'Ranger of the light.', 'Eliminates all intruders', 'with quick decisions and sharp-mind', 'using items and elixirs.', 'Cures any wounds with the bless of light.']) elif key == 'f' and player.pos_x == 8 and player.pos_y == 15: top = 'You have chosen elf!' c_type = 2 player.icon = CharacterTypes.elf_her elif key == 't' and player.pos_x == 7 and player.pos_y == 24: print_message(['ZOMBIE', '', 'Rawwww powwwwwerrrrr.', 'Arrrrghttttt']) elif key == 'f' and player.pos_x == 7 and player.pos_y == 24: top = 'You have chosen zombie!' c_type = 3 player.icon = CharacterTypes.zombie_her elif player.level == 2: if key == 't' and player.pos_x == 4 and player.pos_y == 7: print_message(['WIZARD', '', 'Deep knowledge about magic,', 'with the power of the elements.', 'Fight against their foes', 'with great wisdom.']) elif key == 'f' and player.pos_x == 4 and player.pos_y == 7: top = 'You have chosen wizard!' c_type = 1 player.icon = CharacterTypes.wizzard_him elif key == 't' and player.pos_x == 8 and player.pos_y == 15: print_message(['ELF', '', 'Ranger of the light.', 'Eliminates all intruders', 'with quick decisions and sharp-mind', 'using items and elixirs.', 'Cures any wounds with the bless of light.']) elif key == 'f' and player.pos_x == 8 and player.pos_y == 15: top = 'You have chosen elf!' c_type = 2 player.icon = CharacterTypes.elf_him elif key == 't' and player.pos_x == 7 and player.pos_y == 24: print_message(['ZOMBIE', '', 'Rawwww powwwwwerrrrr.', 'Arrrrghttttt']) elif key == 'f' and player.pos_x == 7 and player.pos_y == 24: top = 'You have chosen zombie!' c_type = 3 player.icon = CharacterTypes.zombie_him if key == 'f': if player.pos_x == 10 and player.pos_y == 24 or player.pos_x == 11 and player.pos_y == 25 or player.pos_x == 11 and player.pos_y == 26 or player.pos_x == 11 and player.pos_y == 27 or player.pos_x == 11 and player.pos_y == 28 or player.pos_x == 11 and player.pos_y == 29: save = 0 return c_type, save elif player.pos_x == 10 and player.pos_y == 7 or player.pos_x == 11 and player.pos_y == 8 or player.pos_x == 11 and player.pos_y == 9 or player.pos_x == 11 and player.pos_y == 10 or player.pos_x == 11 and player.pos_y == 11 or player.pos_x == 11 and player.pos_y == 12: save = 1 return c_type, save # POSITION CHECK if teleport_1.is_close(board, player) or teleport_2.is_close(board, player): message = "This is a teleport." elif player.pos_x == 4 and player.pos_y == 7: message = "Wizard - press F to select, T to talk" elif player.pos_x == 8 and player.pos_y == 15: message = "Elf - press F to select, T to talk" elif player.pos_x == 7 and player.pos_y == 24: message = "Zombie - press F to select, T to talk" elif player.pos_x == 10 and player.pos_y == 24 or player.pos_x == 11 and player.pos_y == 25 or player.pos_x == 11 and player.pos_y == 26 or player.pos_x == 11 and player.pos_y == 27 or player.pos_x == 11 and player.pos_y == 28 or player.pos_x == 11 and player.pos_y == 29: message = "Press F to start the adventure WITH OUT save." elif player.pos_x == 10 and player.pos_y == 7 or player.pos_x == 11 and player.pos_y == 8 or player.pos_x == 11 and player.pos_y == 9 or player.pos_x == 11 and player.pos_y == 10 or player.pos_x == 11 and player.pos_y == 11 or player.pos_x == 11 and player.pos_y == 12: message = "Press F to start the adventure and save your progress." else: message = "Info"
def main(): pygame.mixer.init() engine.sound(engine._songs[0]) level = 1 game_window = ui.create_new_game_window(ui.SCREEN_WIDTH, ui.SCREEN_HEIGHT) player = create_player() board = engine.create_board(level) # PRINT INTRO MENU SCREEN (AND QUIT GAME IF USER CHOOSE SO) if introduction_screen.intro_menu_select(game_window) == -1: return 0 # VARIABLES TO HOLD KEYBOARD AND MOUSE INPUT key = libtcod.Key() mouse = libtcod.Mouse() libtcod.console_clear(game_window) try: if level == 1: engine.sound(engine._songs[2]) while not libtcod.console_is_window_closed(): # WAIT FOR INPUT libtcod.sys_check_for_event(libtcod.EVENT_KEY_PRESS, key, mouse) # DISPLAY BOARD + PLAYER ON BOARD ui.display_board(board, game_window) ui.display_bar(player, game_window, board) engine.put_player_on_board(game_window, ui.SCREEN_WIDTH, ui.SCREEN_HEIGHT, board, player) # GATHER KEY INPUT action = handle_keys(key) move = action.get( 'move') # nazwy - do przeczytania np. should_move, is_exit go_to_inventory = action.get('go_to_inventory') fullscreen = action.get('fullscreen') exit = action.get('exit') # HANDLE USER INPUT if player["hps"] == 0: ui.final_screen(game_window, 'loose') if move: dx, dy = move player = engine.verify_move_is_possible( dx, dy, board, player, level, monsters.monsters_overview()) footsteps_sound = pygame.mixer.Sound("walk.wav") footsteps_sound.set_volume(0.2) footsteps_sound.play(maxtime=1000) if engine.is_next_level(player["position"]["x"], player["position"]["y"], board, ui.EXIT_SYMBOL): level += 1 board = engine.create_board(level) player['position']['x'] = player_def.PLAYER_START_X player['position']['y'] = player_def.PLAYER_START_Y player['lvl'] += 1 player['experience'] += level * 15 player['strenght'] += level * 15 if go_to_inventory: ui.display_inventory(player, game_window) if fullscreen: libtcod.console_set_fullscreen( not libtcod.console_is_fullscreen()) if exit: return True except IndexError: print('You went out of board bounds, please start the game again')
def main(): inventory = {} player_characteristics = engine.player_characteristics() level_one_board = engine.level_one() level_two_board = engine.level_two() level_three_board = engine.level_three() # boss_level_board_1 = engine.boss_level_1() util.clear_screen() # loop condition is_running = True # first position on level one player = engine.create_player(3, 1) # level one loop while is_running: engine.put_player_on_board(level_one_board, player) ui.display_board(level_one_board) ui.print_characteristics(player_characteristics) key = util.key_pressed() engine.player_movement(level_one_board, player, key) engine.player_inventory(level_one_board, player, inventory) if level_one_board[player['PLAYER_height']][player['PLAYER_width']] == colored('/', 'yellow'): util.clear_screen() break if key == 'q': is_running = False while key == 'i': util.clear_screen() ui.display_board(level_one_board) ui.print_inventory(inventory) key = util.key_pressed() util.clear_screen() util.clear_screen() # first position on level two player = engine.create_player(3, 1) # level two loop while is_running: engine.put_player_on_board(level_two_board, player) ui.display_board(level_two_board) ui.print_characteristics(player_characteristics) key = util.key_pressed() engine.player_movement(level_two_board, player, key) engine.player_inventory(level_two_board, player, inventory) if level_two_board[player['PLAYER_height']][player['PLAYER_width']] == colored('/', 'yellow'): util.clear_screen() break if key == 'q': is_running = False while key == 'i': util.clear_screen() ui.display_board(level_two_board) ui.print_inventory(inventory) key = util.key_pressed() util.clear_screen() util.clear_screen() # first position on level three player = engine.create_player(2, 1) # level three loop while is_running: engine.put_player_on_board(level_three_board, player) ui.display_board(level_three_board) ui.print_characteristics(player_characteristics) key = util.key_pressed() engine.player_movement(level_three_board, player, key) engine.player_inventory(level_three_board, player, inventory) if level_three_board[player['PLAYER_height']][player['PLAYER_width']] == colored('/', 'yellow'): util.clear_screen() break if key == 'q': is_running = False while key == 'i': util.clear_screen() ui.display_board(level_three_board) ui.print_inventory(inventory) key = util.key_pressed() util.clear_screen() util.clear_screen() # first position on boss level player = engine.create_player(3, 1) # boss level loop while is_running: boss_level_board = engine.boss_level() engine.put_player_on_board(boss_level_board, player) ui.display_board(boss_level_board) ui.print_characteristics(player_characteristics) key = util.key_pressed() engine.player_movement_boss_level(boss_level_board, player, key) engine.player_inventory(boss_level_board, player, inventory) if boss_level_board[player['PLAYER_height']][player['PLAYER_width']] == colored('/', 'yellow'): util.clear_screen() break if key == 'q': is_running = False while key == 'i': util.clear_screen() ui.display_board(boss_level_board) ui.print_inventory(inventory) key = util.key_pressed() util.clear_screen() util.clear_screen()