{"id":15450894,"url":"https://github.com/dansantander/tictactoe","last_synced_at":"2025-05-16T06:09:12.070Z","repository":{"id":125331093,"uuid":"248270072","full_name":"dansantander/tictactoe","owner":"dansantander","description":"A project for building a Tic Tac Toe game with pure Ruby.","archived":false,"fork":false,"pushed_at":"2020-03-26T18:34:45.000Z","size":46,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"development","last_synced_at":"2025-02-17T16:52:30.601Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dansantander.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-18T15:28:53.000Z","updated_at":"2020-05-19T00:20:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"550df62b-550e-491a-bfb3-867eb460c95f","html_url":"https://github.com/dansantander/tictactoe","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dansantander%2Ftictactoe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dansantander%2Ftictactoe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dansantander%2Ftictactoe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dansantander%2Ftictactoe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dansantander","download_url":"https://codeload.github.com/dansantander/tictactoe/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478193,"owners_count":22077676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T21:20:35.304Z","updated_at":"2025-05-16T06:09:07.062Z","avatar_url":"https://github.com/dansantander.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TIC TAC TOE\n\nThe purpose of this project is to build a pure Ruby Tic-Tac-Toe game for running on the command line of your terminal.\nThe game is made for two human players to play against each other. For visual purposes, the game board is displayed between turns and player's markers are differentiated by colors.\n\nProject: Object Oriented Programming - Tic Tac Toe\n\n\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** I'm using markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n*** See the bottom of this document for the declaration of the reference variables\n*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.\n*** https://www.markdownguide.org/basic-syntax/#reference-style-links\n--\u003e\n[![Contributors][contributors-shield]][contributors-url]\n\n\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \n  \u003ch2 align=\"center\"\u003eTic Tac Toe\u003c/h2\u003e\n\n  \u003cp align=\"center\"\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/dansantander/tictactoe\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    ·\n    \u003ca href=\"https://github.com/dansantander/tictactoe/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/dansantander/tictactoe/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n## Table of Contents\n\n* [Getting Started](#getting-started)\n* [Instructions](#instructions)\n* [About the Project](#about-the-project)\n* [Built With](#built-with)\n* [License](#license)\n* [Contact](#contact)\n\n\u003c!-- GETTING STARTED--\u003e\n## Getting Started\n\nFor starters, the game will ask for both Player 1 and Player 2 names. Automatically, the game will asign marker 'X' to Player 1 and marker 'O' to player 2. Those will be each player's chips for using throghout the game. Afterwards, a 3x3 cells board will be shown at it's initial state:\n\u003cpre\u003e\n\u003ccode\u003e\n 1 | 2 | 3 \n---+---+---\n 4 | 5 | 6 \n---+---+---\n 7 | 8 | 9 \n\u003c/code\u003e\n\u003c/pre\u003e\n\nEach player will be asked to choose a cell number taking turns. \nGame is won by player who is able to get three of its marks on a straight line, whether it's vertically, horizontally or diagonally.\nScores will be displayed after each game.\n\n\u003c!-- INSTRUCTIONS--\u003e\n## Instructions\n\nDownload the project in your computer and open terminal/command prompt.\nThis game uses the 'Colorize' ruby gem to make it easier for players to distinguish between every shot, so you'll need to run command 'gem install colorize' on your terminal.\nThen, navigate to the project folder, run command 'bin/main.rb' and off you go! \n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\nProject built following the next Microverse requirements:\n\n#### Milestone 1: Project Setup\n\n- [x] Setup project as it is described in requirements.\n- [x] In addition, create 2 main directories:\nlib - for the game logic.\nbin - with the [executable file] called main.rb.\n- [x] main.rb file should be responsible for user interaction. This is the only one place where puts and get.chomp can be used.\n- [x] Make your main.rb file displaying “Hello world!” when you use bin/main.rb as a bash command.\n\n#### Milestone 2: User Interface\n\n- [x] main.rb file should be responsible for user interaction. In this milestone you should only create content in this file.\n- [x] Display prompts for users (hint: puts/print), collect user input (hint: get.chomp) and only mock the basic flow of the game.\n- [x] Make sure that you can run your game with your executable file and play with the basic flow.\n- [x] The final point of this milestone is to make sure that you thought about all actions needed to play Tic Tac Toe. It does not need to work yet - this will be done in the next milestone.\n\n#### Milestone 3: Game Logic\n\n- [x] Add real logic for your game - get rid of all inline comments and mocked logic used in previous milestone.\n- [x] As main.rb file should be responsible for user interaction, this is the only(!) one place where puts/print and get.chomp can be used.\n- [x] Think how you can encapsulate diffrent parts of game logic in classes. Do not create one class for everything.\n- [x] Read about DRY rule and use it.\n- [x] Think about the diffrence between attr_readers/attr_writers and atrr_acessors. Use atrr_acessors only if you really need it.\n- [x] Remember about single responsibility rule. Always.\n- [x] Remember to cover edge cases: think what player could try to do to cheat the game and make sure that your program does not allow to perform invalid action.\n\n#### Milestone 4: Game Instructions and final touches\n\n- [x] Add full description of game rules in README file - remember that some people might not be familiar with Tic Tac Toe game rules.\n- [x] Make sure that you informed your players on how to start your game - they might not be programmers.\n- [x] Improve anything you want to improve in order to make your game perfect.\n\n\nProject built making use of to the following lessons:\nhttps://www.theodinproject.com/courses/ruby-programming/lessons/object-oriented-programming\n\n\n## Built With\nRuby - Programming language used\nVS Code - The code editor used\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\nDaniel Santander - [Github profile](https://github.com/dansantander)\u003cbr\u003e\nRodolfo Rodriguez Mata - [Github profile](https://github.com/RodolfoRodriguezMata)\u003cbr\u003e\nProject Link: [https://github.com/dansantander/tictactoe](https://github.com/dansantander/tictactoe)\n\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/othneildrew/Best-README-Template.svg?style=flat-square\n[contributors-url]: https://github.com/RodolfoRodriguezMata/enumerable-methods/contributors\n[forks-shield]: https://img.shields.io/github/forks/othneildrew/Best-README-Template.svg?style=flat-square\n[forks-url]: https://github.com/othneildrew/Best-README-Template/network/members\n[stars-shield]: https://img.shields.io/github/stars/othneildrew/Best-README-Template.svg?style=flat-square\n[stars-url]: https://github.com/othneildrew/Best-README-Template/stargazers\n[issues-shield]: https://img.shields.io/github/issues/othneildrew/Best-README-Template.svg?style=flat-square\n[issues-url]: https://github.com/othneildrew/Best-README-Template/issues\n[license-shield]: https://img.shields.io/github/license/othneildrew/Best-README-Template.svg?style=flat-square\n[license-url]: https://github.com/othneildrew/Best-README-Template/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://linkedin.com/in/othneildrew\n[product-screenshot]: images/screenshot.png","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdansantander%2Ftictactoe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdansantander%2Ftictactoe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdansantander%2Ftictactoe/lists"}