Files
Clover-Edition/console_play.py
T
2019-11-01 12:54:28 -06:00

112 lines
3.1 KiB
Python

import os
from story.utils import *
from google.cloud import storage
import json
from story.story_manager import *
from generator.web.web_generator import *
from generator.ctrl.ctrl_generator import *
import tensorflow as tf
import textwrap
import sys
CRED_FILE = "./AI-Adventure-2bb65e3a4e2f.json"
# Set the key
def console_print(str, pycharm=False):
if pycharm:
LINE_WIDTH=80
print((textwrap.fill(str, LINE_WIDTH)))
else:
print(str)
def play_unconstrained():
generator = CTRLGenerator()
#generator = WebGenerator(CRED_FILE)
prompt = get_story_start("apocalypse")
context = get_context("apocalypse")
story_manager = UnconstrainedStoryManager(generator)
story_manager.start_new_story(prompt, context=context)
print("\n")
print(context)
console_print(str(story_manager.story))
while (True):
action = input("> ")
if action != "":
action = action.strip()
action = action[0].lower() + action[1:]
if action[-1] == "." or action[-1] == "?" or action[-1] == "!":
action = action[:-1]
if "you " == action.lower()[0:4]:
action = action[4:]
if "i " == action.lower()[0:2]:
action = action[2:]
action = " You " + action + ". "
action = first_to_second_person(action)
result = story_manager.act(action)
console_print("\n\n" + action + result)
def play_constrained():
print("\n")
#generator = WebGenerator(CRED_FILE)
generator = CTRLGenerator()
prompt = get_story_start("apocalypse")
context = get_context("apocalypse")
story_manager = CTRLStoryManager(generator)
story_manager.start_new_story(prompt, context=context)
console_print(story_manager.story_context())
possible_actions = story_manager.get_possible_actions()
while (True):
console_print("\nOptions:")
for i, action in enumerate(possible_actions):
console_print(str(i) + ") " + action)
result = None
while(result == None):
action_choice = input("Which action do you choose? ")
if action_choice is "print story":
print(story_manager.story)
continue
print("\n")
result, possible_actions = story_manager.act(action_choice)
console_print(result)
def play_cached():
generator = WebGenerator(CRED_FILE)
story_manager = ConstrainedStoryManager(generator)
story_manager.enable_caching(CRED_FILE)
story_manager.start_new_story(get_story_start("classic"), 0)
console_print(str(story_manager.story))
possible_actions = story_manager.get_possible_actions()
while (True):
console_print("\n\nOptions:")
for i, action in enumerate(possible_actions):
console_print(str(i) + ") " + action)
result = None
while(result == None):
action_choice = input("Which action do you choose? ")
print("\n")
result, possible_actions = story_manager.act(action_choice)
console_print(result)
if __name__ == '__main__':
play_unconstrained()