binding-swift/ExampleAgent.playground/Contents.swift (22 lines of code) (raw):

import Foundation let baseDirectory = "/tmp/swift-example-agent" // Create a client let client = GymClient(baseURL: URL(string:"http://localhost:5000")!) // Make a new environment with the CartPole task let id = client.create(envID: "CartPole-v0") // Verify action and observation space print(client.actionSpace(instanceID: id)) print(client.observationSpace(instanceID: id)) print(client.containsObservation(instanceID: id, observations: ["name":"Box"])) // Start recording, and wipe out old recordings client.startMonitor(instanceID: id, directory: baseDirectory, force: true, resume: false, videoCallable: true) // Refresh to get our first observation let obs = client.reset(instanceID: id) print("First observation: \(obs)") var count = 0 while true { // Find a random action purely as a demonstration. Replace with an action chosen by your algorithm. let action = client.sampleAction(instanceID: id) // Execute the action in the environment let result = client.step(instanceID: id, action: action) print("Result on iteration \(count). \nReward: \(result.reward). Observation: \(result.observation).") count += 1 if result.done { // Uncomment the following line to endlessly repeat // client.reset(instanceID: id) break } } // Clean up client.closeMonitor(instanceID: id) client.close(instanceID: id) // Get your api key from https://gym.openai.com/users/{your_name} // client.uploadResults(directory: baseDirectory, apiKey: nil, algorithmID: nil)