def play(): """Main game function. Runs game""" name = input('Enter your name: ') while True: option = input('Enter start if you are not a loser: ') if option == START: player = Player(name) level = 1 enemy = Enemy(level) while True: try: player.attack(enemy) player.defence(enemy) except EnemyDown: level += 1 enemy = Enemy(level) player.score += 5 elif option == SHOW_SCORES: with open('scores.txt', 'r') as score: print(score.read()) elif option == EXIT: raise KeyboardInterrupt elif option == HELP: print('Option list:') print("\n".join(OPTIONS)) else: print('You mist. Type "help" if you need help')
def init_db(): with open("smb.json", "r") as file: data = json.loads(file.read()) game = Game(name=data[0].get("table_data").get("Game")) game.save() for row in data: enemies = [] for elem in row["enemies"]: amount = elem["amount"] if isinstance(elem["amount"], int) else 1 enemy = Enemy(name=elem["name"], amount=amount) enemy.save() enemies.append(enemy) powerups = [] for elem in row["statistics"]: powerup = Powerup(name=elem["name"], amount=elem["amount"]) powerup.save() powerups.append(powerup) level = Level( description=row.get("description"), name=jsonpath(row, "table_data.World-Level")[0], world=jsonpath(row, "table_data.World")[0], time_limit=jsonpath(row, "table_data.Time limit")[0].split(" ")[0], boss=row.get("table_data").get("Boss"), enemies=enemies, game=game, powerups=powerups, ) level.save()
def main(): try: name = input("Enter your name: \n").strip() if " " in name: name = name.replace(' ', '_') print(name) while True: command = input( "Enter start, exit, show scores or help\n").strip().lower() if command == 'start': user = Player(name, settings.HP, settings.SCORE, settings.ALLOWED_ATTACK) enemy = Enemy(settings.ENEMY_LEVEL) print(f'Enemy level is {settings.ENEMY_LEVEL}\n') while True: try: if user.allowed_attack: user.attack(enemy) user.allowed_attack = 0 else: user.allowed_attack = 1 user.defense(enemy) except EnemyDown as err: print("Creating new enemy") settings.ENEMY_LEVEL += 1 enemy = Enemy(settings.ENEMY_LEVEL) print(f'Enemy level is {settings.ENEMY_LEVEL}\n') user.allowed_attack = 1 user.score += 5 print(err) elif command == 'show scores': with open('scores.txt', 'r') as file: for line in file: print(line, end='') print('-' * 10) elif command == 'help': for key in settings.COMMS.keys(): print(f'command {key} {settings.COMMS[key]}') elif command == 'exit': raise KeyboardInterrupt else: print(f'unknown commad {command}') except GameOver as err: err.write_score(user) finally: print('goodbye')
def play(): level = 1 player_name = input('Enter your name Player! \n') print(f"Welcome to The Hunger Games. And may luck always be on your side! {player_name}\n") player = Player(player_name) enemy_name = 'Enemy monster' enemy = Enemy(enemy_name, level) while True: command = input( f"{player_name}, Please enter \"START\" to start the game\n" f"or enter \"HELP\" to enter setup\n") # .lower() if command == "start": print(f'Your enemy name is {enemy_name}!') while True: try: player.allowed_attack = input('Please make a choice for attack: ' '\'1\' - Wizard, \'2\' - Warrior,' ' \'3\' - Rogue \n') player.attack(enemy) print(f'Your lives: {player.lives} | {enemy_name} lives: {enemy.lives}\n') player.allowed_attack = input('Please make a choice for defence: ' '\'1\' - Wizard, \'2\' - Warrior,' ' \'3\' - Rogue \n') player.defence(enemy) print(f'Your lives: {player.lives} | {enemy_name} lives: {enemy.lives}\n') except EnemyDown: player.score += 5 player.level += 1 level += 1 print(f'\n---------------------------------------------------------\n' f' You killed {enemy_name}. Your score: ' f'{player.score}. Level: {player.level}.\n' f'---------------------------------------------------------\n') # format(self.enemy_name, )) enemy_name = 'goga' enemy = Enemy(enemy_name, level) print(f'\nYour enemy name is {enemy_name}!\n') except InvalidLiteral: print('\nONLY 3 classes of fighters!!! 1-2-3\n') elif command == "help": settings.show_commands() elif command == "show scores": print('\n') Scores.show_score() print('\n') elif command == "exit": raise KeyboardInterrupt
def play(): """ method play. :) """ pl_name = input("Enter your name : ") player = Player(pl_name) level = 1 enemy = Enemy(1) while True: try: player.attack(enemy) player.defence(enemy) except EnemyDown: level += 1 player.score += 5 enemy = Enemy(level)
def play(): """Main function""" print('Hello in my AWESOME GAME!!!') name = input('Tell me yor NAME, my brave player: ') player = Player(name) enemy = Enemy() score = Score('scores.txt') while True: print('_' * 50) print('{}, make your choice!'.format(player.name)) print('For start the GAME type "START"') print('For help about GAME type "HELP"') print('For view the scores of game type "SCORE"') print('For exit from GAME type "EXIT"') choice = input('>>> ').lower() while choice not in ALLOWED_COMMANDS: choice = input('You are funny one))))\n' 'Try one more time: ') if choice == 'start': start(player, enemy) elif choice == 'help': _help() elif choice == 'score': score.print_score() else: raise KeyboardInterrupt
def enemiesTable(monster, session): hpmod = int( int(monster['hit_dice'].split('d')[0]) * int( ((int(monster['constitution']) - 10) / 2))) enemy = Enemy( name=monster['name'], size=monster['size'], type=monster['type'], alignment=monster['alignment'], ac=monster['armor_class'], armorType='natural armor', #not showing up hp=f"{monster['hit_dice']}+{hpmod}", speed=monster['speed'], STR=monster['strength'], DEX=monster['dexterity'], CON=monster['constitution'], INT=monster['intelligence'], WIS=monster['wisdom'], CHA=monster.get('charisma', None), challenge=monster['challenge_rating'], senses=monster['senses'], languages=monster['languages'], damage_vulnerabilities=monster['damage_vulnerabilities'], damage_resistances=monster['damage_resistances'], damage_immunities=monster['damage_immunities'], condition_immunities=monster['condition_immunities']) session.add(enemy)
def create_enemies(self): for i in range(len(self.lines)): for j in range(len(self.lines[i])): if self.lines[i][j] == 'E': enemy_hp = randint(50 * self.hero.level, 100 * self.hero.level) enemy_mana = randint(50 * self.hero.level, 100 * self.hero.level) enemy_dmg = randint(5 * self.hero.level, 10 * self.hero.level) enemy = Enemy(health=enemy_hp, mana=enemy_mana, damage=enemy_dmg) enemy.position = [i, j] # Here we can add a chance to equip weapon or learn a spell self.enemies.append(enemy)
def play(): print('Enter your name: ') name = input() player = Player(name) level = 1 enemy = Enemy(level) while player.lives > 0: try: player.attack(enemy) player.defence(enemy) print(player.score) print(player.lives) except exeptions.EnemyDown: level += 1 player.score += 5 enemy = Enemy(level)
def create(event, context): logger.debug(f'Event received: {json.dumps(event)}') data = _get_body(event) try: characters = data['characters'] character_list = [ Character(id=x['id'], attack_speed=x['attack_speed'], crit_chance=x['crit_chance'], curr_hp=x['curr_hp'], prev_hp=x['curr_hp'], base_hp=x['curr_hp'], min_damage=x['min_damage'], max_damage=x['max_damage']) for x in characters ] fight = FightModel(id=str(uuid4()), created_at=datetime.utcnow(), characters=character_list, connectionId=data.get('connectionId', '')) enemy_data = data['enemy'] enemy = Enemy(id=enemy_data['id'], can_block=enemy_data['can_block'], can_dodge=enemy_data['can_dodge'], block_amt=enemy_data['block_amt'], block_pct=enemy_data['block_pct'], dodge_pct=enemy_data['dodge_pct'], base_hp=enemy_data['hit_points'], curr_hp=enemy_data['hit_points'], prev_hp=enemy_data['hit_points'], min_damage=enemy_data.get('min_damage', 0), max_damage=enemy_data.get('max_damage', 0), can_crit=enemy_data.get('can_crit', False), crit_chance=enemy_data.get('crit_chance', 0), attack_speed=enemy_data.get('attack_speed', 0)) fight.enemy = enemy fight.save() for char in fight.characters: char_fight = CharacterFightModel(char_id=char.id, fight_id=fight.id, enemy_id=fight.enemy.id) char_fight.save() response = _get_response(200, json.dumps(fight, cls=ModelEncoder)) logger.debug(f'Response: {json.dumps(response)}') return response except Exception as ex: logger.error(f'Could not create fight: {ex}') response = _get_response(500, 'Could not create a fight') return response
def play(): """ Method to start the game""" name = input("Enter your name : ") player = Player(name) start = input("Enter 'start' when you are ready for battle: ") if start == 'start': print('Get ready') else: play() level = 1 enemy = Enemy(1) while True: try: player.attack(enemy) player.defense(enemy) except EnemyDown: level += 1 player.score += 5 enemy = Enemy(level)
def test_spawn_enemy_not_herro(self): exp = None c = "levels_and_treasures/level1.txt" d = Dungeon(c) e = Enemy(health=100, mana=20, damage=10) try: d.spawn(e) except TypeError as error: exp = error self.assertIsNotNone(exp)
def play(): """Start game, input Player, attack and defense """ player_name = input("Lets play!\nPlease enter your name:\n > ") while not player_name.isalpha(): if not player_name.isalpha(): player_name = input("You entered wrong name") return player_name player = Player(player_name) enemy = Enemy(1) print(f'score table {Score.check_scores()}') while True: try: print(player.attack(enemy)) print(player.defense(enemy)) print(f'You have {player.lives} lives') print(f'Enemy has {enemy.lives} lives') except EnemyDown: enemy = Enemy(enemy.level + 1) print( f'!!! ENEMY DOWN !!!\nAnother enemy appears! (level {enemy.level}).' ) player.score += 5
def play(): """ - Entering the player's name - Creating a player object - level = 1 - Creating an enemy object - calls the attack and defense methods of the player object in an endless loop - when an exception occurs, EnemyDown raises the game level, creates a new Enemy object with a new level, adds +5 points to the player.""" level = 1 player = Player(Inputs.input_player_name(), LIVES) Inputs.input_start() enemy = Enemy(level) while True: try: player.attack(enemy) player.defence(enemy) except EnemyDown: level += 1 enemy = Enemy(level) player.score += ENEMY_DOWN_SCORE print(cli_color(f'{ENEMY_DOWN_STRING} {player.score}', 'c')) print(LIVES_STRING, player.lives) except GameOver: scores = Scores() # read scores from file try: scores.read_from_file(SCORE_FILE) except FileNotFoundError: pass # write score to scores file scores.new_result(player, SCORE_FILE) raise GameOver
def encounter(): form = HeroStats() if form.validate_on_submit(): hstam = int(form.hstam.data) hskill = int(form.hskill.data) hluck = int(form.hluck.data) estam = int(form.estam.data) eskill = int(form.eskill.data) print load_user hstats = Hero(hstam=hstam, hskill=hskill, hluck=hluck, user_id=load_user) estats = Enemy(estam=estam, eskill=eskill, user_id=load_user) db.session.add(hstats) db.session.add(estats) db.session.commit() return redirect(url_for('fight')) return render_template('encounter.html', form=form)
def spawn_enemy(self, dt): def get_random_with_probability(prob_distr): assert prob_distr r = random.uniform(0, 1) s = 0 for item in prob_distr: s += item[1] if s >= r: return item[0] if len(self.enemies) < constants.MAX_ENEMIES and not self.game_ended: enemy_type = get_random_with_probability( [[0, 0.9], [constants.HEALTH_BONUS_TYPE, 0.05], [constants.KILLALL_BONUS_TYPE, 0.05]]) enemy = Enemy( self, (random.randint(30, self.width - 30), self.height + 50), bonus_type=enemy_type) self.enemies.append(enemy) self.add(enemy.sprite) self.event_manager.dispatch_event('on_enemy_spawn', self)
def start(player, enemy): """Start fight""" while True: try: player.attack(enemy) player.defense(enemy) print('-' * 50) print('{}, you have {} lives and you score is {}'.format( player.name, player.lives, player.score)) print('Start the NEXT ROUND! FIGHT!!!') print('-' * 50) except EnemyDown: player.score += 5 enemy = Enemy() print('!' * 50) print('CONGRATULATIONS! {}, you WON this fight!'.format( player.name)) print('{}, you score - {}'.format(player.name, player.score)) print('!' * 50) print('Welcome to LEVEL {}! Let`s START to fight!'.format( enemy.level)) except GameOver: print('#' * 50) print('ACHTUNG!!! {}, you DIED in this GAME!!!'.format( player.name)) print('{}, you final score - {}'.format(player.name, player.score)) for key, item in player.result.items(): print('{}: {}'.format(key, item)) print('#' * 50) score = Score('scores.txt') score.save_score(player) choice = input( '{}, did you want to START another GAME (Y/N)? '.format( player.name)).lower() if choice != 'y': raise KeyboardInterrupt player = Player(player.name)
def play(player): level = 1 enemy = Enemy(level) while True: player.attack(enemy) player.defence(enemy)
if not AttackModel.exists(): AttackModel.create_table(read_capacity_units=5, write_capacity_units=5, wait=True) if not CharacterFightModel.exists(): CharacterFightModel.create_table(read_capacity_units=5, write_capacity_units=5, wait=True) for result in AttackModel.scan(): print(json.dumps(result, cls=ModelEncoder)) # print(AttackModel.scan()) fight = FightModel(id=str(uuid4())) enemy = Enemy(id="1", can_block=True, can_dodge=True, block_pct=0.05, block_amt=.54, dodge_pct=0.07, base_hp=2500, curr_hp=2500, prev_hp=2500) char1 = Character(id="1", attack_speed=1600, crit_chance=0.17, curr_hp=1000, prev_hp=1500, min_damage=55, max_damage=128) char2 = Character(id="2", attack_speed=2700, crit_chance=0.27, curr_hp=1250, prev_hp=3000, min_damage=65, max_damage=155) char3 = Character(id="3", attack_speed=1800, crit_chance=0.19, curr_hp=1300, prev_hp=1800, min_damage=51, max_damage=132) char4 = Character(id="4", attack_speed=2100, crit_chance=0.21, curr_hp=1199, prev_hp=3500, min_damage=35, max_damage=149) fight.enemy = enemy fight.characters = [char1, char2, char3, char4] fight.save()
save_score() menu_start() tick_timer += 1 # босс появляется спустя 30 сек if float(time.time()) >= timer + 30: if not exists: enemies_with_boss_group.add(boss) all_sprites.add(boss) exists = True if tick_timer > 60: tick_timer = 0 if random.random() < 0.4: new_enemy = Enemy() all_sprites.add(new_enemy) enemies_with_boss_group.add(new_enemy) enemy_group.add(new_enemy) if tick_timer == 0: for enemy in enemies_with_boss_group: if random.random() <= 0.5: sound2.play() enemy.shoot() enemy_lasers.add(enemy.laser_group) all_sprites.add(enemy.laser_group) all_sprites.update() hits = pygame.sprite.groupcollide(enemy_group, lasers, True, True)