Download presentation

Presentation is loading. Please wait.

Published byOmarion McCall Modified about 1 year ago

1
Frogs and Toads 3: FrogGame and FrogGameTester

2
Summary Pad class Pond class FrogGame class FrogGameTester class

3
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!

4
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

5
Represents: A single lily pad in our game board Instance variables: int startState, currentState; Methods PadPad(int startState) Creates a new lily pad with a given initial state int getStatus() Returns current state of the lily pad (FROG, etc)getStatus boolean isSolved() Returns true if this lily pad is in the solved stateisSolved void reset() Restores the lily pad to the start statereset void setStatus(int status) Changes the current state of the lilypadsetStatus String toString() Returns the string representation of the lily pad.toString Pad class

6
Pond Class Represents: A 2D array of lily pads (Game board) Instance variables: int size; Pad [][] grid; Methods: PondPond(int size) Creates a grid of lily pads with height and width = size PadPad getPad(int row, int column) Returns Pad object at the row,colgetPad int getSize() Returns the width of the pondgetSize boolean isSolved() Indicates whether or not all lily pads solvedisSolved void reset() Resets the pond to the state it was in originallyreset String toString() Returns the current state of the pond as a StringtoString

7
FrogGame Represents: An active Frog Game Instance variables: int size; Pond gameBoard; Methods FrogGameFrogGame(int size) Creates a new game with the given size PondPond getPond() Returns the pond object (Game Board)getPond boolean isSolved() Indicates whether puzzle has been solved. isSolved void moveAmphibian(int row, int column) Moves Frog/Toad at given location to Vacant pad (if possible). Making row, column the new Vacant padmoveAmphibian boolean moveStillPossible() Indicates if legal move is still possiblemoveStillPossible void print() Prints the game board (using the Pond object). print int statusOfPad(int row, int column) returns status of the pad at row, colstatusOfPad 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).validMove

8
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

9
FrogGame fg = new FrogGame(3); FFT FOT FTT gameBoard size3 fg

10
Result of fg.moveAmphibian(2,1) FFT FTT FOT gameBoard size3 fg

11
Result of fg.moveAmphibian(2,0) FFT FTT OFT gameBoard size3 fg

12
Result of fg.isValid(1,0) true Result of fg.isValid(2,1) false FFT FTT OFT gameBoard size3 fg

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google