{"action":"created","issue":{"url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/291","labels_url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/291/labels{/name}","comments_url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/291/comments","events_url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/291/events","html_url":"https://github.com/Axelrod-Python/Axelrod/issues/291","id":104876794,"number":291,"title":"Is a strategy that pays attention to which strategy it is playing against considered \"honest\"?","user":{"login":"daira","id":643204,"avatar_url":"https://avatars.githubusercontent.com/u/643204?v=3","gravatar_id":"","url":"https://api.github.com/users/daira","html_url":"https://github.com/daira","followers_url":"https://api.github.com/users/daira/followers","following_url":"https://api.github.com/users/daira/following{/other_user}","gists_url":"https://api.github.com/users/daira/gists{/gist_id}","starred_url":"https://api.github.com/users/daira/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daira/subscriptions","organizations_url":"https://api.github.com/users/daira/orgs","repos_url":"https://api.github.com/users/daira/repos","events_url":"https://api.github.com/users/daira/events{/privacy}","received_events_url":"https://api.github.com/users/daira/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Axelrod-Python/Axelrod/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/Axelrod-Python/Axelrod/labels/in%20progress","name":"in progress","color":"ededed"}],"state":"open","locked":false,"assignee":{"login":"meatballs","id":338846,"avatar_url":"https://avatars.githubusercontent.com/u/338846?v=3","gravatar_id":"","url":"https://api.github.com/users/meatballs","html_url":"https://github.com/meatballs","followers_url":"https://api.github.com/users/meatballs/followers","following_url":"https://api.github.com/users/meatballs/following{/other_user}","gists_url":"https://api.github.com/users/meatballs/gists{/gist_id}","starred_url":"https://api.github.com/users/meatballs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/meatballs/subscriptions","organizations_url":"https://api.github.com/users/meatballs/orgs","repos_url":"https://api.github.com/users/meatballs/repos","events_url":"https://api.github.com/users/meatballs/events{/privacy}","received_events_url":"https://api.github.com/users/meatballs/received_events","type":"User","site_admin":false},"milestone":null,"comments":19,"created_at":"2015-09-04T11:55:28Z","updated_at":"2015-09-05T23:46:10Z","closed_at":null,"body":"https://axelrod.readthedocs.org/en/latest/contributing.html#is-your-strategy-honest says:\r\n\r\n\"The rules for an ‘honest’ strategy are very simple:\r\n\r\n* It does not change what it’s opponents do/know.\r\n* It forgets everything every time it starts playing someone (this is implemented with the reset method).\"\r\n\r\nConsider a strategy that obtains the class name or code of its opponent (so that it is able to simulate, but not change, what its opponent will do in response to its own move). Is this honest? It seems to meet the definition."},"comment":{"url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/comments/138010136","html_url":"https://github.com/Axelrod-Python/Axelrod/issues/291#issuecomment-138010136","issue_url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/291","id":138010136,"user":{"login":"daira","id":643204,"avatar_url":"https://avatars.githubusercontent.com/u/643204?v=3","gravatar_id":"","url":"https://api.github.com/users/daira","html_url":"https://github.com/daira","followers_url":"https://api.github.com/users/daira/followers","following_url":"https://api.github.com/users/daira/following{/other_user}","gists_url":"https://api.github.com/users/daira/gists{/gist_id}","starred_url":"https://api.github.com/users/daira/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daira/subscriptions","organizations_url":"https://api.github.com/users/daira/orgs","repos_url":"https://api.github.com/users/daira/repos","events_url":"https://api.github.com/users/daira/events{/privacy}","received_events_url":"https://api.github.com/users/daira/received_events","type":"User","site_admin":false},"created_at":"2015-09-05T23:46:10Z","updated_at":"2015-09-05T23:46:10Z","body":"I suggest ``inspects_opponent`` and ``interferes_with_opponent``.\r\n\r\n@drvinceknight wrote:\r\n> Also, just to add that by default we can have a classifier set to None which would indicate no classification for a given strategy on that particular dimension which means that adding a new dimension is not a big pain.\r\n\r\n+1. Perhaps we can expose an ``opponent.get(classifier)`` method iff the strategy being run has the ``inspects_opponent`` classifier.\r\n\r\n(Of course Python can't enforce that code doesn't use various other tricks to find out about its opponent, but this would make new strategies easy to review.)"}}