Python Asincio взаимодействие через stdin и stdout
Есть у меня программа, которая играет, скажем, в крестики-нолики. Она принимает данные в input() и печатает следующий ход. Примерно вот так:
while True:
current_data = input()
result = calc(current_data)
print(result)
Хочу написать программу, которая сталкивает две такие программы и заставляет их играть друг с другом. Скорее всего это функция asyncio.create_subprocess_shell. Пытаюсь читать документацию, но пока понимаю что ничего не понимаю. В javascript оно как-то попроще было на коллбеках.
Наверняка кто-то уже писал что-то подобное, подскажите, пожалуйста!