I decided to code a little cricket game for my E71, a la IPL. To begin with, I thought I'll start with designing my player classes. I've come up with the following classes:
public abstract class Player {
 private Team team;
 private String firstName;
 private String lastName;
 private boolean isRightHanded;
 private String fieldingPosition;
 // all players bat
 public void bat() {
  // ... implementation ...
 }
 // all players field
 public void field() {
  if(fieldingPosition.equals(FieldingPosition.WICKETKEEPER)
   keepWickets();
  else
   field(fieldingPosition);
 }
}
public interface Bowler {
 // Given that each player bowls differently, action, guide, etc.
 public void bowl();
}All this is fine, until I decided we can add a few new characteristics. In which case, some players will need their own classes. Par example:
public class TurbanedMumbaiIndianOffSpinner extends Player implements Bowler {
 
 public void slapPlayer(Player p) {
  // ... implementation ...
  p.isSlapped(this);
 }
 
}
public class AppamLikeBowlers implements Bowler {
 
 private boolean radarOn;
 
 public AppamLikeBowlers {
  radarOn = false;
 }
 
 public void cry() {
  // ... implementation ...
 }
 
 public void isSlapped(Player slappingPlayer) {
  cry();
 }
 
}Making some progress, I guess.
 
