FrogGame and Tester

Report
Frogs and Toads 3:
FrogGame and
FrogGameTester
Summary
•
•
•
•
Pad class
Pond class
FrogGame class
FrogGameTester class
Dealing with complexity
• The full has much variability:
– a variable game board size means we are forced to
generalize everything
– this could be challenging as we are just learning
many new skills
– beginners often freeze in these situations
• A Winning Strategy?
– SIMPLIFICATION!
How can we simplify Frogs And Toads
• And still have an interesting experience?
– Reduce the board size? – only do 3x3
– Change the rules?
• Any frog or toad can move any direction into vacant
square
• Like one of those tile puzzles, very easy to solve
• Still needs
• Solving simpler version gives insights into
harder version
Represents:
A single lily pad in our game board
Instance variables: int startState,
Pad class
currentState;
Methods
Pad(int startState)
Creates a new lily pad with a given initial state
int getStatus()
Returns current state of the lily pad (FROG, etc)
boolean isSolved()
Returns true if this lily pad is in the solved state
void reset()
Restores the lily pad to the start state
void setStatus(int status) Changes the current state of the lilypad
String toString()
Returns the string representation of the lily pad.
Represents:
A 2D array of lily pads (Game board)
Instance variables:
int size;
Pond Class
Pad [][] grid;
Methods:
Pond(int size) Creates a grid of lily pads with height and width = size
Pad getPad(int row, int column)
int getSize()
Returns the width of the pond
boolean isSolved()
void reset()
Returns Pad object at the row,col
Indicates whether or not all lily pads solved
Resets the pond to the state it was in originally
String toString() Returns the current state of the pond as a String
Represents:
An active Frog Game
Instance variables:
Methods
FrogGame(int size)
int size;
FrogGame
Pond gameBoard;
Creates a new game with the given size
Pond getPond() Returns the pond object (Game Board)
boolean isSolved() Indicates whether puzzle has been solved.
void moveAmphibian(int row, int column) Moves Frog/Toad at given location to
Vacant pad (if possible). Making row, column the new Vacant pad
boolean moveStillPossible() Indicates if legal move is still possible
void print() Prints the game board (using the Pond object).
int statusOfPad(int row, int column) returns status of the pad at row, col
boolean validMove(int row, int column) Returns true if the given coordinates
represent a Pad that has an amphibian that can make a legal move (hint: you
may want to use the statusOfPad method to make your job easier).
FrogGame
Tester
• A demo app that tries out the different
features of Frog Game.
• Just has a main method
• Lets look at some example scenarios
– using "original" move rules
FrogGame fg = new FrogGame(3);
fg
size
3
gameBoard
F
F
T
F
O
T
F
T
T
Result of fg.moveAmphibian(2,1)
fg
size
3
gameBoard
F
F
T
F
T
T
F
O
T
Result of fg.moveAmphibian(2,0)
fg
size
3
gameBoard
F
F
T
F
T
T
O
F
T
Result of fg.isValid(1,0)
Result of fg.isValid(2,1)
fg
size
true
false
3
gameBoard
F
F
T
F
T
T
O
F
T

similar documents