I have started to write card game applications.Some model classes:CardSuit, CardValue, CardDeck, IDeckCreator, RegularDeckCreator, DoubleDeckCreatorBoardHandand some game classes:Turn, TurnHandlerIPlayer, ComputerPlayer, HumanPlayerIAttackStrategy, SimpleAttachStrategy, IDefenceStrategy, SimpleDefenceStrategyGameData, Gameare already written. My idea is to create engine, where two computer players could play game and then later I could add UI part.Already for some time I'm reading about Test Driven Development (TDD) and I have idea to start writing application from scratch, as currently I have tendency to write not needed code, which seems usable in future. Also code doesn't have any tests and it is hard to add them now.Seems that TDD could improve all these issue - minimum of needed code, good test coverage and also could help to come to right application design.But I have one issue - I can't decide from where to start TDD? Should I start from bottom - Card related classes or somewhere on top - Game, TurnHandler, ... ?With which class you would start? And what would be the next 5 to 7 tests? (use the card game you know the best)I would like to start TDD with your help and then continue on my own!
Which class to start TDD of card game application? What's the next 5-7 tests?
development process;tdd;game development
How about the below.  The {} is the hints for the next step and after that I would get into specific attributes too.A pack of cards exists {Pack}The pack has 52 cards {Card and Pack - number of cards}The cards have 4 suits {Card attribute}Each suit has A,2-10,J,Q,K {Card attribute}A game is selected. {Game instance}Players are selected {Player instances}Cards are shuffled. {Shuffle method(s)}Cards are dealt. {Deal method(s)}Each person plays. {Play method(s)}One person wins. {Part of Play method, maybe call to Win method}End Game. {EndGame method}