/rlglue/tests/test_message_agent.go

https://code.google.com/p/go-glue/ · Go · 43 lines · 40 code · 3 blank · 0 comment · 8 complexity · 56220a35ca76cbe78a570c947052c82e MD5 · raw file

  1. package main
  2. import (
  3. "go-glue.googlecode.com/hg/rlglue"
  4. )
  5. type MessageAgent struct {
  6. whichEpisode int
  7. emptyAction rlglue.Action
  8. }
  9. func (ea *MessageAgent) AgentInit(taskString string) {
  10. ea.whichEpisode = 0
  11. ea.emptyAction = rlglue.NewAction([]int32{}, []float64{}, []byte{})
  12. }
  13. func (ea *MessageAgent) AgentStart(obs rlglue.Observation) (act rlglue.Action) {
  14. return ea.emptyAction
  15. }
  16. func (ea *MessageAgent) AgentStep(reward float64, obs rlglue.Observation) (act rlglue.Action) {
  17. return ea.emptyAction
  18. }
  19. func (ea *MessageAgent) AgentEnd(reward float64) {
  20. }
  21. func (ea *MessageAgent) AgentCleanup() {
  22. }
  23. func (ea *MessageAgent) AgentMessage(message string) (reply string) {
  24. reply = message
  25. if message == "" {
  26. reply = "empty"
  27. }
  28. if message == "empty" {
  29. reply = ""
  30. }
  31. if message == "null" {
  32. reply = ""
  33. }
  34. return
  35. }
  36. func main() {
  37. if err := rlglue.LoadAgent(new(MessageAgent)); err != nil {
  38. panic(err)
  39. }
  40. }