Skip to content

Minesweeper program with bugs, suitable to experiment with Approval testing with TextTest

License

Notifications You must be signed in to change notification settings

emilybache/Minesweeper-Approval-Kata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minesweeper

This repo contains a simple program that could be a part of a minesweeper game. The detailed requirements are listed below. There are two sample input files included in this repo:

demo.txt
ATInput.txt

For the latter, the expected program output is included in 'ATOutput.txt'.

The program also produces a log file when it runs: 'minesweeper.log'.

The minesweeper program in the 'python' folder is buggy. For example if you give it the file 'ATInput.txt' it does not produce the expected output 'ATOutput.txt'.

Your task is to create test cases to expose the bug(s), and then fix them. The suggestion is to use the tool 'TextTest' to create the tests.

Detailed Requirements

Have you ever played Minesweeper? It's a cute little game which comes within a certain Operating System whose name we can't really remember. Well, the goal of the game is to find all the mines within an MxN field. To help you, the game shows a number in a square which tells you how many mines there are adjacent to that square. For instance, take the following 4x4 field with 2 mines (which are represented by an * character):

*...
....
.*..
....

The same field including the hint numbers described above would look like this:

*100
2210
1*10
1110

You should write a program that takes input as follows:

The input will consist of an arbitrary number of fields. The first line of each field contains two integers n and m (0 < n,m <= 100) which stands for the number of lines and columns of the field respectively. The next n lines contains exactly m characters and represent the field. Each safe square is represented by an "." character (without the quotes) and each mine square is represented by an "*" character (also without the quotes). The first field line where n = m = 0 represents the end of input and should not be processed.

Your program should produce output as follows:

For each field, you must print the following message in a line alone:

Field #x:

Where x stands for the number of the field (starting from 1). The next n lines should contain the field with the "." characters replaced by the number of adjacent mines to that square. There must be an empty line between field outputs.

Credit: This problem originated here: http://acm.uva.es/p/v101/10189.html (unfortunately that link no longer works)

About

Minesweeper program with bugs, suitable to experiment with Approval testing with TextTest

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published