I want to try to implement the Tetris Game using TDD.
From what I've come to understand when reading Growing Object-Oriented Software, Guided by Tests, I should start by defining what would be my Acceptance tests. If I am right, Acceptance tests when doing TDD are defined just like Use Cases.
It is of great importance to define a good first Acceptance Test that will work as "skeleton" of the App, so it should be kind of simple.
I've choosen the following 2 Acceptance Tests as my first to implement:
- The Game starts and the Player closes it.
- The Game starts and the Player does nothing. He eventually loses.
Are these 2 acceptance tests good starting tests? What would be good next acceptance tests? I could think of something like
- The game starts and only square pieces drop. The player puts them all in such a way that the lines always "explode", making the Game after 100 game-steps still be not over.
but I feel this is kind of awkward, as in a real Tetris game you would always have different pieces falling, and that is what Acceptance Testing should be about.
Also, I feel kind of tempted to just try to implement everything in one go when doing (2), which I think is not one pretends when implementing the second Acceptance Test. I guess the idea would be to only have the game implemented after like 6-7 of them, not on the second. Am I right?
Thanks