@startuml !include skinparams.puml actor "Human Player" as player actor "GUI Program" as gui actor "Human User" as user usecase "Play a match" as play usecase "Use as backend for machine player" as backend usecase "Generate a move" as genMove usecase "Train the engine" as train player --> play gui --> backend user --> genMove gui --> genMove user --> train @enduml