def main(): my_hero = Hero() goblin = Goblin() zombie = Zombie() medic = Medic() shadow = Shadow() while (goblin.alive() or zombie.alive()) and my_hero.alive(): my_hero.print_status() print() print("What do you want to do?") print("1. fight goblin") print("2. fight zombie") print("3. fight medic") print("4. fight shadow") print("5. do nothing") print("6. flee") print("> ",) user_input = input() if user_input == "1": goblin.print_status() # my_hero attacks goblin my_hero.attack(goblin) if goblin.health > 0: # Goblin attacks my_hero goblin.attack(my_hero) elif user_input == "2": zombie.print_status() my_hero.attack(zombie) zombie.attack(my_hero) zombie.alive() elif user_input == "3": medic.print_status() my_hero.attack(medic) medic.attack(my_hero) medic.alive() elif user_input == "4": shadow.print_status() shadow.attack(my_hero) my_hero.attack(shadow) shadow.alive() elif user_input == "5": pass elif user_input == "6": print("Goodbye.") break else: print("Invalid input %r" % user_input)
def main(args): zombie = Zombie(args['field'], args['position'], args['infected'], args['infection_radius'], args['infection_cooldown']) mqtt_server_addr = args['server'][0] mqtt_queue = args['server'][1] producer = get_producer_connection(mqtt_server_addr, KAFKA_CONNECTION_TRIES) kill = Event() zombie_broadcast = Thread(target=thread_zombie_broadcast, args=(kill, zombie, args['zombie_port'])) zombie_listen = Thread(target=thread_zombie_listen, args=(kill, zombie, args['zombie_port'])) server_con_thread = Thread(target=thread_server_con, args=(kill, zombie, mqtt_server_addr, mqtt_queue, producer)) zombie_broadcast.start() zombie_listen.start() server_con_thread.start() if args['interactive']: interactive(zombie) else: automatic(zombie, args) zombie.alive = False kill.set() zombie_broadcast.join() zombie_listen.join() server_con_thread.join() logging.info('program ended')