Bug: Program crashes when board is full in Tic Tac Toe game

Open Beginner friendly
#297 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
python
Domain
game-dev

Research direction

Start at the Tic Tac Toe game’s compMove() and insertLetter() functions, then trace the computer-turn path when the board has no open positions. Handle the full-board case as a tie before indexing the board, and verify that a completed board prints a tie instead of raising the reported TypeError.

Written by the indexing model from the issue text.

Description

After the board is filled in the Tic Tac Toe game, the program crashes with an error:

TypeError: list indices must be integers or slices, not NoneType
Cause:
The compMove() function returns None when no moves are left, but the program tries to insert at board[None].

Suggested Solution:
Before calling insertLetter("O", move), check if move is None and handle it as a tie.

Example:
if move == 0 or move is None:
print("Tie game")
else:
insertLetter("O", move)
print(f"Computer placed O on position {move}")
printBoard(board)

Additional Suggestion:
In compMove(), add a check:
if len(possibleMoves) == 0:
return None

Happy to work on fixing this if you would like! 🚀

Dominant language
Python
Stars
583
Forks
441
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Shahrayar123/Python-Projects

All issues in Shahrayar123/Python-Projects

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.