Project

Simple Tic-Tac-Toe (Java)

Hard
8042 completions
~ 14 hours
4.2

After finishing this project, you'll get to know a lot about planning and developing a complex program from scratch, using methods, nested lists, list comprehension, handling errors, and processing user input.

Provided by

JetBrains Academy JetBrains Academy

About

Everybody remembers this paper-and-pencil game from childhood: Tic-Tac-Toe, also known as Noughts and crosses or Xs and Os. A single mistake usually costs you the game, but thankfully it is simple enough that most players discover the best strategy quickly. Let’s program Tic-Tac-Toe and get playing!

Training project icon

Training project

This project allows you to practice and strengthen your coding skills, helping you get ready for more advanced tasks ahead.

What you'll learn

Once you choose a project, we'll provide you with a study plan that includes all the necessary topics from your course to get it built. Here’s what awaits you:
Now it’s time to analyze user input and print the state of the field depending on it. You’ll learn to address specific positions in a string to achieve the required outcome.
Now we’re going to write a fully-functioning multi-line program that responds to the user’s actions and analyzes the state of the field. Not only will it tell you who is winning, but it will also determine if the situation on a given field is theoretically possible!
Tic-tac-toe is not all about analysis – a game is meant to be played! Write a program that can change the state of the field, as your first real step toward a fully-functioning game application!
Finally! Thanks to this app, you can always challenge a friend to play a quick game of Tic-Tac-Toe!

Reviews

Mike Johnston avatar
Mike Johnston
1 week ago
I read somewhere in commends on an exercise to just solve the problem and don't try to make it too elegant. So that is what I did. The best solution runs about 132 lines of code. Mine is a mere 327. I did learn a lot about program flow and static variables and that was valuable. I will need to ...
Kevin Rebakure avatar
Kevin Rebakure
4 weeks ago
This was by far the hardest project. I did it all in one Main.java class because I couldn't find a way to break it down into multiple classes.
Diogo Víctor de Souza Nogueira avatar
Diogo Víctor de Souza Nogueira
4 weeks ago
Poderiam colocar o desafio de criar uma "CPU" que joga contra o jogador.

4.2

Learners who completed this project within the Introduction to Java course rated it as follows:
Usefulness
4.4
Fun
4.3
Clarity
4.1