import time
import math

class Boat:
    def __init__(self, pace, spm, var=0.5):
        self.pace = pace    #average velocity of the boat in m/s
        self.sps = spm/60.0 #strokes per second
        self.var = var      #variation in speed from 0-1
        self.totalT = 0     #total time
        self.distance = 0   #distance traveled

    def move(self, deltaT):
        self.totalT += deltaT
        timeCalc = self.totalT + self.var * -math.sin(self.totalT * self.sps * 2.0 * math.pi)
        self.distance = self.pace * timeCalc

boat1 = Boat(10.0, 20.0, 0.4)
prevDist = 0.0
print "Time\t\tDistance\tDeltaDistance"
for index in range(0,30):
    boat1.move(0.1)
    print "%.2f\t\t%.2f\t\t%.2f" % (index / 10.0, boat1.distance, boat1.distance - prevDist)
    prevDist = boat1.distance
    time.sleep(0.1)
    
print "Rowed 3 seconds, distance: %.2f" % (boat1.distance)