From de166d4f8aee66efffdc87ae377641a7d9130eb7 Mon Sep 17 00:00:00 2001 From: Jesus Graterol Date: Thu, 30 Nov 2023 11:14:36 -0400 Subject: [PATCH] Upgrade the README.md file --- README.md | 119 +++++++++++++++++++++++++++++--- readme-assets/screenshot-01.png | Bin 0 -> 26319 bytes 2 files changed, 111 insertions(+), 8 deletions(-) create mode 100644 readme-assets/screenshot-01.png diff --git a/README.md b/README.md index 3066e89..e09c74b 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,117 @@ -# Tic Tac Toe Project +# Tic Tac Toe -This repository implements [The Odin Project's](https://www.theodinproject.com/) Tic Tac Tow -Project with Vanilla CSS & JavaScript. For more information about this project, please visit: +![Tic Tac Toe](./readme-assets/screenshot-01.png) -[https://www.theodinproject.com/lessons/node-path-javascript-tic-tac-toe](https://www.theodinproject.com/lessons/node-path-javascript-tic-tac-toe) +This application allows the user to draw anything on a canvas with the mouse and it is the submission for [The Odin Project: Tic Tac Toe](https://www.theodinproject.com/lessons/node-path-javascript-tic-tac-toe). The key features are: -A live demo of this solution can be accessed here: +- Any number of games can be played +- The computer is an implementation of the Minimax algorithm +- Cross-Platform Compatibility -[https://jesusgraterol.github.io/tictactoe_top/](https://jesusgraterol.github.io/tictactoe_top/) -A local instance can be served with: -`python3 -m http.server` \ No newline at end of file + + +## Live Demo + +[Tic Tac Toe](https://jesusgraterol.github.io/tictactoe-top/) + + + + + +## Getting Started + +### Requirements + +- GIT +- Python ^v3 + +### Installation + +1) Clone the repository +```bash +git clone git@github.com:jesusgraterol/tictactoe-top.git +``` + + + + + +## Usage + +1) Run a local server with: + +```bash +python3 -m http.server +``` + +2) Access the app through: [http://localhost:8000/](http://localhost:8000/) + + + + + +## Build Process + +N/A + + + + + +## Deployment + +Deploys to **Github Pages** automatically when commits are pushed into the `main` branch. + + + + + + +## Built With + +- HTML5 +- CSS3 +- JavaScript + + + + + +## Running the Tests + +```bash +# Unit Tests +N/A + +# Integration Tests +N/A + +# E2E Tests +N/A +``` + + + + + +## @TODO + +N/A + + + + + +## License + +[MIT](https://choosealicense.com/licenses/mit/) + + + + + +## Acknowledgments + +- [Google Fonts](https://fonts.google.com/icons) \ No newline at end of file diff --git a/readme-assets/screenshot-01.png b/readme-assets/screenshot-01.png new file mode 100644 index 0000000000000000000000000000000000000000..e855ab8deebe0dd13f85aee0a9020f952c452aee GIT binary patch literal 26319 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 literal 0 HcmV?d00001