Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Create a file named minesweeper.py Create a function that takes a grid of # and -, where each hash (#) represents a mine and each

Create a file named minesweeper.py

Create a function that takes a grid of # and -, where each hash (#) represents a mine and each dash (-) represents a mine-free spot. Return a grid, where each dash is replaced by a digit, indicating the number of mines immediately adjacent to the spot i.e. (horizontally, vertically, and diagonally).

Example of an input: [ ["-", "-", "-", "#", "#"], ["-", "#", "-", "-", "-"], ["-", "-", "#", "-", "-"], ["-", "#", "#", "-", "-"], ["-", "-", "-", "-", "-"] ]

Example of the expected output: [ ["1", "1", "2", "#", "#"], ["1", "#", "3", "3", "2"], ["2", "4", "#", "2", "0"], ["1", "#", "#", "2", "0"], ["1", "2", "2", "1", "0"] ]

Here is a tip. When checking adjacent positions to a specific position in the grid, the following table might assist you in determining adjacent indexes:

NW position = current_row - 1 current_col - 1

N position = current_row - 1 current_col

NE position = current_row - 1 current_col + 1

W position = current_row current_col - 1

Current position = current_row current_col

E position = current_row current_col + 1

SW position = current_row current_col + 1

S position = current_row +1 current_col

SE position = current_row + 1 current_col + 1

Also ensure that when checking adjacent positions in the grid that you take into account that on the edges of the grid, you may go out of bounds. Lastly, you could make use of the enumerate function in Python to keep track of the index points and values without having to create a count variable and explicitly iterate the count variable to keep track of the current row or column index. Below is an example of how the enumerate function works. #list to be iterated through values = ["a", "b", "c"] # "count" here is used to keep track of the index point # "value" is the value of the current element in the loop # The enumerate method takes 2 arguments the iterable and the starting # value for count which we set at 0 to represent the index of the first # index in the list. for count, value in enumerate(values, start = 0): print(f'Index {count} contains the value {value}') Below is the output generated:

Index 0 contains the value a

Index 1 contains the value b

Index 2 contains the value c

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

T Sql Fundamentals

Authors: Itzik Ben Gan

4th Edition

0138102104, 978-0138102104

More Books

Students also viewed these Databases questions

Question

Use a three-step process to develop effective business messages.

Answered: 1 week ago