Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Battle #510

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

AlyaVKravchenko
Copy link

No description provided.

Copy link

@mateacademy-ai-mentor mateacademy-ai-mentor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


Thank you for your hard work on the Battleship game implementation! 🎮 Your code is well-structured and meets many of the task requirements, but there are a couple of critical issues that need to be addressed before we can approve the pull request:

  1. Neighboring Cells Check: The logic for checking neighboring cells is not correctly implemented. The self.field is populated in _place_ships, which means the adjacency check will always pass since the field is empty at this point. Please restructure the code to ensure that ships are checked for adjacency before they are placed on the field.

  2. Adjacent Cells Logic: The condition for determining adjacent cells is incorrect. It currently excludes the actual ship cells from being considered adjacent. Please revise the logic to correctly identify all adjacent cells, including the start and end cells of the ship.

Once these issues are resolved, your code will be in great shape! Keep up the great work, and don't hesitate to reach out if you need any help. 😊

✨ Please rate this review in the Platform's notification center. I will be grateful for your feedback! ✨

🔄 Fix the issues, commit the changes, and then re-request my review using the Re-request review button in the Reviewers tab.

app/main.py Outdated
Comment on lines 106 to 107
if ((row, col) != (start[0], start[1]) and (row, col)
!= (end[0], end[1])):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The condition here is incorrect for determining adjacent cells. It should include the start and end cells as well, otherwise, it will exclude the actual ship cells from being considered adjacent. Consider revising the logic to correctly identify all adjacent cells.

app/main.py Outdated
Comment on lines 90 to 94
# Check that ships are not in neighboring cells
for ship_coords in ships:
for (row, col) in self._get_adjacent_cells(ship_coords):
if (row, col) in self.field:
raise ValueError("Ships cannot be in neighboring cells.")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logic for checking neighboring cells is not correctly implemented. The self.field is populated in _place_ships, so this check will always pass as the field is empty at this point. Consider restructuring the code to ensure that ships are checked for adjacency before they are placed on the field.

Copy link

@mateacademy-ai-mentor mateacademy-ai-mentor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

Your implementation of the Battleship game is mostly well-structured and covers the main functionalities required for the game. Great job! 🎉 However, there are a couple of critical issues that need your attention:

  1. Neighboring Cells Check: The logic for checking neighboring cells is implemented, but it seems to be executed after the ship is already created. This could lead to incorrect placements if the adjacency check fails. Consider restructuring the code to perform this check before creating and placing the ship on the field.

  2. Ship Placement Logic: Ensure that the logic for placing ships correctly adheres to the rules of the game, especially regarding the adjacency of ships. The current implementation might not fully prevent ships from being placed adjacent to each other.

Despite these issues, your code meets the task requirements and constraints. The decision to approve is made to help you move forward with your learning. Please review the comments to improve your code. Addressing these critical issues in the future will help you avoid similar problems and enhance your coding skills. Keep up the good work and continue learning from your experiences! 🚀

✨ Please rate this review in the Platform's notification center. I will be grateful for your feedback! ✨

Comment on lines +58 to +61
# First, check if the ship is adjacent to any other ship
if self._check_adjacent_cells(start, end):
raise ValueError("Ships cannot be in neighboring cells.")
ship = Ship(start, end)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The adjacency check is performed after the ship is created. Consider performing this check before creating the ship to prevent incorrect placements.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants