{"action":"created","issue":{"url":"https://api.github.com/repos/tommyyx/TicTacToe/issues/1","labels_url":"https://api.github.com/repos/tommyyx/TicTacToe/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/tommyyx/TicTacToe/issues/1/comments","events_url":"https://api.github.com/repos/tommyyx/TicTacToe/issues/1/events","html_url":"https://github.com/tommyyx/TicTacToe/issues/1","id":77905563,"number":1,"title":"Add New Functions","user":{"login":"tommyyx","id":12495381,"avatar_url":"https://avatars.githubusercontent.com/u/12495381?v=3","gravatar_id":"","url":"https://api.github.com/users/tommyyx","html_url":"https://github.com/tommyyx","followers_url":"https://api.github.com/users/tommyyx/followers","following_url":"https://api.github.com/users/tommyyx/following{/other_user}","gists_url":"https://api.github.com/users/tommyyx/gists{/gist_id}","starred_url":"https://api.github.com/users/tommyyx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tommyyx/subscriptions","organizations_url":"https://api.github.com/users/tommyyx/orgs","repos_url":"https://api.github.com/users/tommyyx/repos","events_url":"https://api.github.com/users/tommyyx/events{/privacy}","received_events_url":"https://api.github.com/users/tommyyx/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/tommyyx/TicTacToe/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"closed","locked":false,"assignee":{"login":"tommyyx","id":12495381,"avatar_url":"https://avatars.githubusercontent.com/u/12495381?v=3","gravatar_id":"","url":"https://api.github.com/users/tommyyx","html_url":"https://github.com/tommyyx","followers_url":"https://api.github.com/users/tommyyx/followers","following_url":"https://api.github.com/users/tommyyx/following{/other_user}","gists_url":"https://api.github.com/users/tommyyx/gists{/gist_id}","starred_url":"https://api.github.com/users/tommyyx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tommyyx/subscriptions","organizations_url":"https://api.github.com/users/tommyyx/orgs","repos_url":"https://api.github.com/users/tommyyx/repos","events_url":"https://api.github.com/users/tommyyx/events{/privacy}","received_events_url":"https://api.github.com/users/tommyyx/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2015-05-19T02:58:26Z","updated_at":"2015-05-20T01:55:25Z","closed_at":"2015-05-20T01:55:25Z","body":"1. Add a proper win screen\r\n2. Display the game is draw if the board is filled up with no winner\r\n3. Prevent Further play if a game is won until new game has started\r\n4. Add a menu/mode selection for player vs player and player vs NPC\r\n5. Add NPC opponent and possibly AI\r\n6. Load a background image\r\n7. Clean up visuals and make the game more appealing\r\n"},"comment":{"url":"https://api.github.com/repos/tommyyx/TicTacToe/issues/comments/103720654","html_url":"https://github.com/tommyyx/TicTacToe/issues/1#issuecomment-103720654","issue_url":"https://api.github.com/repos/tommyyx/TicTacToe/issues/1","id":103720654,"user":{"login":"tommyyx","id":12495381,"avatar_url":"https://avatars.githubusercontent.com/u/12495381?v=3","gravatar_id":"","url":"https://api.github.com/users/tommyyx","html_url":"https://github.com/tommyyx","followers_url":"https://api.github.com/users/tommyyx/followers","following_url":"https://api.github.com/users/tommyyx/following{/other_user}","gists_url":"https://api.github.com/users/tommyyx/gists{/gist_id}","starred_url":"https://api.github.com/users/tommyyx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tommyyx/subscriptions","organizations_url":"https://api.github.com/users/tommyyx/orgs","repos_url":"https://api.github.com/users/tommyyx/repos","events_url":"https://api.github.com/users/tommyyx/events{/privacy}","received_events_url":"https://api.github.com/users/tommyyx/received_events","type":"User","site_admin":false},"created_at":"2015-05-20T01:55:25Z","updated_at":"2015-05-20T01:55:25Z","body":"Did some research regarding the issues.\r\n\r\n1. Best method to add a win/lose screen is through implementation of a state machine which manages the game state.\r\n2. Add logic to when the board is fully filled, and no winner declared, game id draw, but also same as above, implement state machine for displaying the screen.\r\n3. Add state machine.\r\n4. Add state machine.\r\n5. NPC opponent AI, either make npc play randomly (stupid npc) or make smart NPC which requires the usage of MinMax Algorithm.\r\n6. Unimportant issue.\r\n7. Unimportant issue.\r\n\r\nAs the owner of the project, I have decided to treat the game as completed as it now has the basic functionalities. Further improvements is unneccessary and over the top for this simple game. Except maybe for the implementation of a game state machine/manager.\r\n\r\nIt could be easier to start from scratch with the implementation of the state manager in a new game so I shall do that in my next project.\r\n\r\nFor adding AI, I have researched the minmax Algorithm and decided I will implement that at a later stage, once I understood the basic game programming tasks, then I will look into programming AI.\r\n\r\nThe next project I will make will be Pong, as this has motion and collision detection, it will provide more challenges for me."}}