Esempio n. 1
0
def main():
    logging.basicConfig(level = logging.DEBUG,
                        format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
    team = int(sys.argv[1])
    password = sys.argv[2]
    logging.info("Logging in with team %s and password %s" % (team, password))
    service = RpcService(codebots_pb2.CodebotsService_Stub, 12345, "localhost")
    res = service.login(codebots_pb2.LoginRequest(team = team, password = password))
    session = res.session
    logging.info("Initiated session %s" % (session))
    try:
        while True:
            # Getting the status (a bit stupid, but I need testing)
            res = service.getShortStatus(codebots_pb2.ShortStatusRequest(session = session))
            turn = res.turnNum
            res = service.getStatus(codebots_pb2.StatusRequest(session = session))
            fieldStatus = res.fieldStatus
            print "TURN %d" % (turn)

            # Getting last differential
            res = service.getDifferential(codebots_pb2.GetDifferentialRequest(session = session, turn = turn-1))
            print Differential.from_protobuf(res)

            # Performing a random request
            req = codebots_pb2.AddRequestsRequest(session = session, turn = turn)
            for tank in fieldStatus.tanks:
                tankReq = req.requests.add()
                tankReq.id = tank.id
                tankReq.move = random.randint(0, 3)
            res = service.addRequests(req)
            print res

            # Waiting for next step
            res = service.waitForSimulation(codebots_pb2.WaitForSimulationRequest(session = session))
            
            print
    except KeyboardInterrupt:
        logging.info("Shutting down")
    finally:
        logging.info("Logging out")
        res = service.logout(codebots_pb2.LogoutRequest(session = session))
        logging.info("Finished!")