Project: Tic-Tac-Toe
This project will take you off-platform and get you started in your own developer environment! Never done that before? Not to worry - we’ve shared some resources to help you down below. This project can be completed entirely on your own - or, you can join our Community Discord and find someone to work with! Jump to the community support section to hear more about this.
The project is broken down into a set of user stories for you to follow. User stories are likely something you will see more and more of as you progress in your journey as a developer. They are short, simple descriptions of a feature told from the perspective of the individual using that feature. The goal of each user story is to describe to you, the developer, what the feature or application needs to do, while providing you with enough flexibility to determine the best way to make that happen.
Overview
Objective
Build a console application that allows the user to play tic-tac-toe versus an AI using minimax.
Prerequisites
In order to complete this project, we suggest that you have familiarity with the content in the following courses or lessons from the Codecademy Computer Science Path:
-
Milestone 1
-
Milestone 2
-
Milestone 3
-
Milestone 5
-
Milestone 10
-
Milestone 11
-
Milestone 14
*** This project requires firm grasp of the ENTIRE Computer Science Path curriculum, including some additional supplemental material on minimax (see project-specific resources) ***
Suggested Technologies
Depending on where you are on your Path, there may be multiple technology options you can use to complete this project - we suggest the following:
- Python
- Command Line
Project Tasks
Basic Requirements
User Story: As a user I want to clearly see the board at all times.
User Story: As a user I want to be able to choose my next move.
User Story: As a user I want to clearly see the moves made by the dealer.
User Story: As a user I want to clearly see who won and why.
User Story: As a user I want to be able to quit the game or go again after each cycle.
Additional Challenges
Intermediate Challenge
User Story: As a user I want to clearly see my tournament score (wins/losses/ties).
Advanced Challenge
User Story: As a user I would like to be able to save the tournament state during my turn and be able to resume at a later time.
Resources & Support
Project-specific resources
- Tic-tac-toe
- Recursion
- Depth-first search
- Python file input/output
- Minimax
- Codecademy
- MIT pdf resource #1
- MIT pdf resource #2
- MIT lecture video
General Resources
Community Support
Looking for additional help or someone to work with (or somewhere to brag about your finished project)? Join our Community Discord to meet other learners like yourself!
Once you’re done…
Share in the Forums for feedback and to see some other ways of solving this problem!